Chris Robinson
4e4c9aef15
Calculate the buffer size and frame size when needed
2009-08-14 13:08:25 -07:00
Chris Robinson
4031ee5ef0
Fix speaker override check
2009-08-14 07:27:19 -07:00
Chris Robinson
e079291202
Remove unnecessary function parameters
2009-08-13 19:36:14 -07:00
Chris Robinson
826c641668
Hold the lock while finding a capture device to open
2009-08-13 19:19:16 -07:00
Chris Robinson
6ae845fd9e
Don't let the device frequency change when PortAudio gets a new context
2009-08-13 17:13:37 -07:00
Chris Robinson
a78fd58dca
Create PulseAudio's playback stream when the AL context is created
2009-08-13 17:08:47 -07:00
Chris Robinson
a8ae610489
Set context frequency only if it successfully starts
2009-08-13 15:35:10 -07:00
Chris Robinson
45552a68ce
Hold the lock while initializing context playback
2009-08-13 13:32:42 -07:00
Chris Robinson
d46655fbb2
Support the ALC_FREQUENCY context attribute
2009-08-13 13:28:35 -07:00
Chris Robinson
87fee8c504
Start DSound playback at context creation
2009-08-13 13:11:05 -07:00
Chris Robinson
9ff0617807
Don't clamp the wave writer's update size
2009-08-13 12:35:42 -07:00
Chris Robinson
243939f94f
Allow delaying playback start until context creation, and don't use UpdateSize to store the buffer size
...
This will make it possible to support the context attributes (frequency,
refresh, etc) for some backends
2009-08-13 12:28:46 -07:00
Chris Robinson
a8973514ba
Don't load functions if libpulse failed to open
2009-07-07 12:51:18 -07:00
Chris Robinson
0ac9e57d28
Store the requested mono/stereo source count and sends in the device
...
Although the properties are set as context attributes, they are queried from
the device. If multiple contexts per device are ever supported, it would not
be straight forward about where to read the values from. This way, the
attributes can be treated as device-specific attributes that are updated when
a new context is created.
2009-07-06 03:09:01 -07:00
Chris Robinson
5460e85c40
Set the right access mode for non-mmap capture
2009-07-02 20:50:12 -07:00
Chris Robinson
432f0ba34c
Specify the right format for ALSA recording
2009-07-02 20:32:19 -07:00
Chris Robinson
7e01e53445
Fix parsing of layout configuration string
2009-07-02 20:31:36 -07:00
Chris Robinson
ef68e5d0ff
Protect ring buffer access with the lock
2009-06-07 21:34:05 -07:00
Chris Robinson
c6f3a4e062
Move a couple inline functions into the header
2009-06-07 20:16:41 -07:00
Chris Robinson
87ed53c7f6
Don't read deprecated config files
2009-06-07 20:12:01 -07:00
Alam Arias
89e9437b84
add check for _WAVEFORMATEXTENSIBLE_ and define _WIN32_IE before inlcuding any header
2009-06-07 19:43:42 -07:00
Chris Robinson
1454c46b5f
Use a thread-safe static inline function for printing
2009-06-07 15:42:15 -07:00
Chris Robinson
0fac1e9115
Store the max number of auxiliary slots in the device
2009-06-07 14:53:22 -07:00
Chris Robinson
3c122b0bef
Set an error if effect creation fails
2009-05-31 11:54:49 -07:00
Chris Robinson
45b16ff456
Use the generic FILTER object for the master effect filter
...
Also fix a couple comments
2009-05-30 12:54:53 -07:00
Chris Robinson
9341f4f884
Fixup panning gain calculations
...
Clamp the panning vector magnitude to 1, and use an energy-reduction method as
the vector magnitude increases (to simulate reverb area occlusion)
2009-05-30 00:32:17 -07:00
Chris Robinson
2c20f26784
Apply slot gain on slot output, not input
2009-05-29 16:51:00 -07:00
Chris Robinson
2a21a449b4
Slot gain changes should have an immediate effect
2009-05-29 13:50:58 -07:00
Chris Robinson
74dc7090fd
Don't expose effect-specific structures
2009-05-29 13:30:50 -07:00
Chris Robinson
34ea7eba9e
Add preliminary support for the EAX Reverb effect
...
Not all parameters are supported yet, though it is a little more fuctional than
standard reverb
2009-05-29 01:32:54 -07:00
Chris Robinson
6d3ba44f55
Don't update the devicevalues before returning success
2009-05-27 07:02:33 -07:00
Chris Robinson
5a8ad67660
Lock the context before getting the mmap region to update
2009-05-26 14:54:59 -07:00
Chris Robinson
f1e442408b
Set the correct data size
2009-05-26 14:51:57 -07:00
Chris Robinson
a946af4463
Simplify ALSA PCM parameter retrieval
2009-05-26 10:08:27 -07:00
Chris Robinson
e01cd92d56
Set avail_min so snd_pcm_wait will wait for the full update to be ready
2009-05-26 10:03:17 -07:00
Chris Robinson
923af8c3a6
Don't update the source's gains in the sample mixing loop
...
Update copies stored on the stack instead, then update the source after mixing
2009-05-26 09:23:49 -07:00
Chris Robinson
ac04cf57fa
Make sure _CRT_SECURE_NO_WARNINGS is always defined for MSVC
2009-05-26 06:02:40 -07:00
Chris Robinson
1f6c4e01db
Properly fall back to non-mmap capture if the parameters fail
2009-05-25 16:06:03 -07:00
Chris Robinson
04135723a2
Get rid of the ugly ok() macro
2009-05-25 13:07:49 -07:00
Chris Robinson
93fbdb1e6c
Redo OSS mixing loop
2009-05-25 12:12:37 -07:00
Chris Robinson
c1de15f840
Update in descrete amounts using the update size
2009-05-25 12:01:14 -07:00
Chris Robinson
3be399c555
Do not open pulseaudio if it didn't load
2009-05-19 06:37:22 -07:00
Chris Robinson
1f5453075c
Dynamically load PulseAudio
2009-05-19 06:35:12 -07:00
Chris Robinson
33a74f1594
Clear the filter history directly
2009-05-17 22:50:07 -07:00
Chris Robinson
1bfa7609d2
Make the filter functions global inline, and use it for echo
2009-05-16 23:34:26 -07:00
Chris Robinson
7e8501123a
Set some common macros in alu.h
2009-05-16 23:26:39 -07:00
Chris Robinson
c447eeb2c7
Use the source reference distance to specify full panning magnitude
...
Sources that are closer than the specified reference distance will not pan to
full magnitude, thus providing a smoother transition as it moves around near
the listener
2009-05-16 03:54:16 -07:00
Chris Robinson
ad19cea6e0
Make sure DSSPEAKER_5POINT1 is defined
2009-05-14 05:24:18 -07:00
Chris Robinson
0ce29863e3
Prevent spawning PulseAudio if it's not already running
2009-05-06 00:19:35 -07:00
Chris Robinson
7a7a4844f4
Make the filter history buffer size flexible
...
This lets the filter history buffer be as big as needed for a given use, so
that it can have a size large enough for the more demanding cases, but not be
wasteful for lesser-demanding cases, while not incuring the overhead of an
added pointer indirection
2009-04-16 05:43:09 -07:00