Chris Robinson
87b3520d02
Fix GetMovingHrtfCoeffs return type
2011-07-17 07:16:10 -07:00
Chris Robinson
a7a1f802a8
Invert the device channel map
2011-07-17 01:55:25 -07:00
Chris Robinson
163cc62a00
Add a couple new functions to handle deferred updates
...
Currently no-ops, they will be used in place of alcSuspendContext and
alcProcessContext for batching updates since the mentioned functions have no
coherent functionality between system implementations.
2011-07-16 16:59:20 -07:00
Chris Robinson
5f566ebf05
Fade between HRTF coefficients, to reduce noise from sudden changes
2011-07-16 16:24:01 -07:00
Chris Robinson
17773c5644
Rename the ERROR macro to ERR
2011-07-13 01:43:00 -07:00
Chris Robinson
58466a304b
Use a flag to signifiy that all sources need updating
2011-07-11 01:05:42 -07:00
Chris Robinson
b64156aa2b
Add some macros for logging at various levels, and use them
2011-07-10 21:30:25 -07:00
Chris Robinson
5cb4129bc7
Use a per-device lock instead of a global one
2011-07-06 05:07:36 -07:00
Chris Robinson
bed264ad77
Use a Lock/UnlockDevice function instead of locking a NULL context
2011-07-06 02:58:43 -07:00
Chris Robinson
d307ee8c2f
Implement a lerped lookup of the HRTF coefficients/delays
...
Code supplied by Christopher Fitzgerald
2011-07-04 07:20:38 -07:00
Chris Robinson
202f57552a
Use a proper enum for the distance model
2011-07-03 19:39:19 -07:00
Chris Robinson
ac7ca07221
Get rid of a couple typedefs
2011-07-02 21:33:53 -07:00
Chris Robinson
7b87519c15
Move functions to where they're used
2011-07-02 02:54:05 -07:00
Chris Robinson
14bfe0293a
Use separate functions to find valid ALC loopback device formats
2011-07-02 02:51:33 -07:00
Chris Robinson
931d422443
Use separate ALC enums for loopback device formats
2011-07-02 02:25:34 -07:00
Chris Robinson
a5ccae5779
Do air absorption with linear gain values
...
This copies the way the calculation is done with the wet path
2011-07-01 02:30:15 -07:00
Chris Robinson
723755788d
Rename Suspend/ProcessContext since they are locking a mutex
2011-06-30 18:10:04 -07:00
Chris Robinson
5736bbc3e4
Add a source property to skip channel virtualization for multi-channel buffers
...
With virtualization disabled, channels are mapped directly from input to output
and any input channel that is missing an output is dropped. Any virtualization
effects (such as HRTF filters) for positional cues are also skipped.
The idea is to allow applications a way to play pre-filtered audio that channel
vitualization effects could interfere with.
2011-06-29 23:18:49 -07:00
Chris Robinson
212b187447
Add a function to check if a device is compatible with the Hrtf filter
2011-06-25 21:39:36 -07:00
Chris Robinson
96b6cd46e6
Add a FreeBSD sndio backend
2011-06-22 19:29:13 -07:00
Chris Robinson
edf78b077e
Use separate lines for HRTF history and values
2011-06-17 16:22:39 -07:00
Chris Robinson
7f4dcefc80
Remove the databuffer functions and structs
...
It's been disabled for a while now, and not likely to be re-enabled.
2011-06-15 23:46:35 -07:00
Chris Robinson
14d6ab384d
Use a flag to specify when a device is running
2011-06-15 01:59:07 -07:00
Chris Robinson
53c5275aa4
Use a proper enum for the probe type
2011-06-14 04:02:58 -07:00
Chris Robinson
39088b2035
Uninline the timeGetTime wrapper
2011-06-12 05:04:36 -07:00
Chris Robinson
8db05b8c17
Avoid defining a macro twice
2011-06-12 04:45:03 -07:00
Chris Robinson
ba069ded40
Add an OpenSL backend
...
Currently for Android's OpenSL ES implementation
2011-06-12 04:41:42 -07:00
Chris Robinson
ccf62fc525
Add wrappers to handle dyanmically loading libs
2011-06-12 04:36:24 -07:00
Chris Robinson
7ddfacb58f
Use a minimum phase HRTF data set
...
This reduces the coefficient size from 128 down to 32, with a set of delays
2011-06-03 01:06:00 -07:00
Chris Robinson
884f668855
Uninline a couple more functions
2011-05-29 03:28:34 -07:00
Chris Robinson
2bbe9d1b1f
Uninline a couple mutex wrapper functions
2011-05-29 03:08:26 -07:00
Chris Robinson
7da2eea8f0
Add a 5.1 device format that uses side channels instead of back
2011-05-28 19:35:32 -07:00
Chris Robinson
a9d9553fff
Use a multi-dimensional array for the panning LUT
2011-05-21 17:45:54 -07:00
Chris Robinson
7396aaf2c2
Fix HRTF elevation calculation
2011-05-19 17:57:14 -07:00
Chris Robinson
2940b0f390
Add a skeleton backend for MMDevApi
2011-05-15 20:26:25 -07:00
Chris Robinson
b3902c8950
Add functions to get strings from the device format
2011-05-15 04:03:15 -07:00
Chris Robinson
c9ac4f06ff
Remove an unused macro and rename another
2011-05-07 04:35:49 -07:00
Chris Robinson
a8fdcd30a5
Some minor cleanups
2011-05-07 04:31:43 -07:00
Chris Robinson
db3cb23c1d
Add an option to reverse Z panning of mono sources
...
Applications that are not built around OpenAL's orientation system need to
convert their given vectors to it. Depending on how this is done, it can lead
to proper stereo (left-right) panning with improper surround sound (front-back)
panning, which thusly sounds correct with stereo output and incorrect with 4+
channel output.
This option is intended to help fix playback of such applications on surround
sound systems, without having to resort to forcing stereo output.
2011-05-07 03:54:46 -07:00
Chris Robinson
4198f3062c
Remove the device channel matrix
2011-05-06 04:42:54 -07:00
Chris Robinson
e608317e70
Fix device flag value
2011-05-06 01:59:32 -07:00
Chris Robinson
1363e044ac
Remove the head_dampen option
...
Now that HRTF is properly supported, it's not needed
2011-05-06 00:38:10 -07:00
Chris Robinson
679f2480c9
Add a device flag for channel config requests
2011-05-03 17:11:07 -07:00
Chris Robinson
ba236ad108
Add a frequency-request device flag
2011-05-03 02:29:26 -07:00
Chris Robinson
24aaa24b5c
Check for the C99 restrict keyword
...
GCC does not default to C99 mode yet, so does not know restrict, however it
still allows using __restrict in its place
2011-05-02 17:06:32 -07:00
Chris Robinson
eea86ab891
Use flags instead of separate bools
2011-05-01 18:18:37 -07:00
Chris Robinson
56d9418119
Add an HRTF filter for mono sources
...
The data is based on the KEMAR HRTF data provided by MIT, which can be found at
<http://sound.media.mit.edu/resources/KEMAR.html >. The compact measurements
were used. See hrtf_tables.inc for more information.
The filter is only available for stereo output, using a 44100hz playback rate.
Note also that it currently only applies to mono sounds, and the cf_level and
head_dampen config options are ignored while it is active.
2011-05-01 13:59:44 -07:00
Chris Robinson
0109104027
Add some source fields for HRTF data
2011-05-01 13:21:56 -07:00
Chris Robinson
c9c965ef85
Add a device flag for enabling HRTF
2011-05-01 13:19:23 -07:00
Chris Robinson
63f07db303
Add the SOFT moniker for the loopback extension functions and enums
2011-04-28 11:37:23 -07:00