Chris Robinson
eca8825ab4
Explicitly suspend the context being processed for mixing
2009-10-20 13:38:02 -07:00
Chris Robinson
93361118b7
Store a device's contexts in a dynamic array
2009-10-20 11:54:04 -07:00
Chris Robinson
50f963f6c6
Don't try to clamp the listener-to-source velocity for local sources
...
Local sources will always have a 0 VLS value
2009-10-20 11:03:16 -07:00
Chris Robinson
67c3e47ed4
Avoid handling NaN when scaling float samples for output
2009-10-20 09:48:09 -07:00
Chris Robinson
790aa68621
Reduce indentation for CalcSourceParams
2009-10-19 13:25:40 -07:00
Chris Robinson
c7c4cf221a
Make the dry buffer part of the device
2009-10-09 01:06:33 -07:00
Chris Robinson
2a77e840cc
Fix type casts for 7.1 output
2009-09-30 16:02:49 -07:00
Chris Robinson
af8e7ab984
Check the source start position in alSourcePlayv instead of the mixer
2009-09-24 12:24:10 -07:00
Chris Robinson
83734aff0e
Slightly improve the multi-channel mixing loops
2009-09-24 08:52:51 -07:00
Chris Robinson
8ea8b49464
Avoid locking a NULL context when a device is disconnected
2009-09-21 23:31:04 -07:00
Chris Robinson
9f037e8980
Pass the device to aluMixData
2009-09-15 19:30:27 -07:00
Chris Robinson
12f81bcbb9
Move the stereo-to-binaural filter to the device
2009-09-15 19:06:47 -07:00
Chris Robinson
6636131d3b
Pass the frame count to aluMixData
2009-09-15 18:19:00 -07:00
Chris Robinson
eeea9631ce
Split the source mixing loop into a separate function
...
Helps reduce the function size and indentation levels
2009-09-15 17:56:31 -07:00
Chris Robinson
7976de05a5
Add base support for ALC_EXT_disconnect
...
Individual backends need to be updated to handle disconnection events
2009-08-26 19:15:17 -07:00
Chris Robinson
dc26261065
Support 32-bit float output
2009-08-15 13:20:35 -07:00
Chris Robinson
9bea67fb1c
Use a function to convert float to unsigned byte
2009-08-15 11:33:38 -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
7e01e53445
Fix parsing of layout configuration string
2009-07-02 20:31:36 -07:00
Chris Robinson
c6f3a4e062
Move a couple inline functions into the header
2009-06-07 20:16:41 -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
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
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
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
Chris Robinson
e9a6a1d6f5
Use a 2-pole filter for the wet path low-pass filter
...
This should help keep CPU use from increasing a lot when the number of sends
increases. Also changes the function names to reflect the difference
2009-04-14 22:04:18 -07:00
Chris Robinson
f245f0ef87
Make the number of source sends variable
...
The highest value is clamped to MAX_SENDS
2009-04-13 20:33:41 -07:00
Chris Robinson
a30f431b63
Reduce the number of send loops
2009-04-13 02:50:40 -07:00
Chris Robinson
55c790c9ff
Add the Echo effect
2009-04-12 16:01:10 -07:00
Chris Robinson
65b69f3308
Fix air absorption
2009-04-11 20:27:55 -07:00
Chris Robinson
c67fbd72dd
Pay attention to the MAX_SENDS value
2009-04-11 20:04:46 -07:00
Chris Robinson
1c54018111
Move the WetBuffer into the effect slot object
...
This should make it easier to support multiple slots
2009-04-11 17:04:55 -07:00
Chris Robinson
a8a4ff8af1
Constify some parameters
2009-03-13 23:08:15 -07:00
Chris Robinson
8a857c35ee
Calculate filter coefficients in aluMixData
2009-03-13 22:58:54 -07:00
Chris Robinson
8348d719cd
Clamp gain of multichannel sources
2009-02-10 15:15:49 -08:00
Chris Robinson
57c2e9b5f8
Include assert.h for assert()
2009-02-02 11:18:33 -08:00
Chris Robinson
7d7fc39035
Use calculated distance from reference for air absorption
2009-01-30 10:56:25 -08:00
Chris Robinson
351105b3df
Fix incorrect comment
2009-01-30 10:53:09 -08:00
Chris Robinson
cbfc33215b
Use M_PI since it is sure to be defined
2009-01-27 07:11:58 -08:00
Chris Robinson
1f4c69c17a
Use a matrix for up- and down-mixing channels
2009-01-25 22:11:07 -08:00
Chris Robinson
f5b19fad20
Duplicate stereo onto the side channels as well as the back
2009-01-25 19:54:50 -08:00
Chris Robinson
bc60818e9a
Don't read stereo layout when output is mono
2009-01-25 19:33:52 -08:00
Chris Robinson
f82c88f016
Add options for user-configurable speaker arrangements
2009-01-25 19:20:47 -08:00
Chris Robinson
98e86decad
6.1 uses front- and back-center, not left- and right-back channels
2009-01-24 15:13:14 -08:00
Chris Robinson
aaf2c0ebd4
Seperate mixing loops depending on source channel configuration
2009-01-24 13:57:01 -08:00