Chris Robinson
b283dd3682
Use a read-write lock to protect access to the UInt maps
2011-08-29 19:15:22 -07:00
Chris Robinson
72beb577b6
Lock the context as needed for the defer and process calls
2011-08-29 13:22:07 -07:00
Chris Robinson
de65ee08c9
Make ALCcontext's DeferUpdates field volatile
2011-08-29 11:55:01 -07:00
Chris Robinson
0abe13e3ad
GCC's atomic built-ins were introduced in 4.1.0, so check for that version
2011-08-29 10:51:58 -07:00
Chris Robinson
2ac808ffa2
Fix typo
2011-08-29 01:01:20 -07:00
Chris Robinson
58078e2c1e
Use atomic exchanges when checking for updates to objects' internal parameters
2011-08-29 00:50:55 -07:00
Chris Robinson
01503f8a7b
Use an enum instead of an boolean for some flags
...
They still only hold AL_TRUE or AL_FALSE, but some systems can't properly
handle atomic swaps of 1-byte types.
2011-08-29 00:03:09 -07:00
Chris Robinson
783375af56
Use a list of contexts in the device instead of an array
2011-08-28 19:28:41 -07:00
Chris Robinson
5eceb593e9
Emulate pthread TLS functions in Windows
2011-08-28 17:21:01 -07:00
Chris Robinson
82244f298c
Add reference counting to the ALC contexts
2011-08-28 15:44:03 -07:00
Chris Robinson
7e2155d937
Return an ALC error enum from the OpenCapture backend method
2011-08-24 14:44:15 -07:00
Chris Robinson
c696d4dbb2
Return an ALC error enum from the OpenPlayback backend method
2011-08-24 14:24:48 -07:00
Chris Robinson
22ad15e1f1
Move some functions into a separate helper source file
2011-08-20 04:01:07 -07:00
Chris Robinson
8148626ba3
Allow the backend init functions to return failure
2011-08-17 06:05:26 -07:00
Chris Robinson
38a4d9a6c5
Get rid of the remaining min/max usage
2011-08-16 18:53:04 -07:00
Chris Robinson
2f3bd5b5d9
Move an include to where it makes more sense to be
2011-07-23 05:53:53 -07:00
Chris Robinson
13f9dbe582
Look for ieeefp.h and include it when appropriate
2011-07-23 04:06:29 -07:00
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