Chris Robinson
189add1d5a
Use a separate array for the auxiliary slots in the mixer
2011-08-30 20:13:42 -07:00
Chris Robinson
cc67f45892
Use the reference counting functions for the buffer and auxiliary slot refs
2011-08-29 23:10:02 -07:00
Chris Robinson
e4a2b69b37
Make specific functions to lock/unlock UIntMap access
2011-08-29 20:21:28 -07:00
Chris Robinson
8eaa9bb469
Manually lock the map while iterating through its contents
2011-08-29 20:05:50 -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
c06f4eb7f7
Hold a reference on the global context
2011-08-29 11:10:17 -07:00
Chris Robinson
aa99e1220b
Increment the context reference count when locking
2011-08-28 23:49:50 -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
1d9f21f6dc
Avoid a global list of contexts
2011-08-28 18:53:23 -07:00
Chris Robinson
0900c281a3
Check if the context is valid only if it's replacing the current thread context
2011-08-28 18:17:06 -07:00
Chris Robinson
f8c4b16c30
Hold a reference on the context when being set as current on the thread
...
This should vastly improve efficiency for retrieving the current thread
context, as we can be assured the stored context pointer will always be valid.
2011-08-28 18:08:48 -07:00
Chris Robinson
c567339718
Rename ALCcontext_Deref to ALCcontext_DecRef
2011-08-28 17:38:55 -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
1d4dc7d7a9
Add AL_SOFTX_deferred_updates to the context's extension list
2011-08-22 18:57:28 -07:00
Chris Robinson
199df253ca
Always use the thunk functions to get object IDs
2011-08-22 07:40:14 -07:00
Chris Robinson
9b615a0add
Remove some spaces
2011-08-20 04:58:50 -07:00
Chris Robinson
4540034039
Move the GUID initialization to the helper
2011-08-20 04:55:11 -07:00
Chris Robinson
29d58f3d84
Set the loopback backend functions first
2011-08-20 04:43:47 -07:00
Chris Robinson
22ad15e1f1
Move some functions into a separate helper source file
2011-08-20 04:01:07 -07:00
Chris Robinson
b036bc9e04
More closely emulate pthread_once in Windows
2011-08-20 01:07:27 -07:00
Chris Robinson
ba4456d24a
Use the proper variable type
2011-08-19 23:05:54 -07:00
Chris Robinson
b40aa8636b
Remove a couple unneeded variables
2011-08-19 03:01:57 -07:00
Chris Robinson
b3645df56f
Delete the mutex if the device fails to open
2011-08-19 02:58:21 -07:00
Chris Robinson
711f0a29ec
Make sure there's a valid backend before trying to open a device
2011-08-19 02:55:36 -07:00
Chris Robinson
3d722b9ba0
Don't remove backends that fail to initialize
2011-08-19 01:54:55 -07:00
Chris Robinson
4ac0a507e0
Use only the first available backend for playback or capture devices
...
This should help cut down on the number of duplicate devices when enumerating
on a system that supports multiple backends. It will also avoid the problem of
backends that don't play well with others (eg, PulseAudio).
2011-08-19 01:41:16 -07:00
Chris Robinson
6ba5128f72
Use separate lists for playback and capture backends
2011-08-19 00:30:05 -07:00
Chris Robinson
c96a6c2b1b
Remove a typedef
2011-08-18 23:58:00 -07:00
Chris Robinson
057fef88ae
Remove backends that fail to initialize
2011-08-17 06:15:43 -07:00
Chris Robinson
8148626ba3
Allow the backend init functions to return failure
2011-08-17 06:05:26 -07:00
Chris Robinson
7e3d02d991
Make sure there's a buffer to render loopback samples to
2011-08-12 15:44:21 -07:00
Chris Robinson
a72c0f7470
Use an existing function to clear and free the context
2011-08-12 05:40:09 -07:00
Chris Robinson
3e2bc847d8
Avoid closing devices and deinitializing backends on process exit
...
They are still closed and deinitialized when the DLL is simply being detached
(via FreeLibrary), however.
2011-08-03 09:46:18 -07:00
Chris Robinson
b5092a6212
Delay reading the config file on Windows, too
2011-08-03 09:37:58 -07:00
Chris Robinson
1b0a55f44c
Use real-time priority by default on Windows
...
It's actually "time-critical", but it seems normal priority doesn't cope as
well when the system is under moderate load.
2011-07-23 05:44:55 -07:00
Chris Robinson
7cd6327969
Use DSound notifications to wake up the mixer thread
2011-07-21 02:48:09 -07:00
Chris Robinson
77128d298e
Add an option to emulate EAX reverb using standard reverb
2011-07-20 22:53:46 -07:00
Chris Robinson
1e8a379a03
Add a config option to boost reverb output
2011-07-20 22:26:16 -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
3bd7256dc8
Pass the effect slot to the effect update method
2011-07-16 03:02:16 -07:00
Chris Robinson
da2429a1d0
Allow effect slots to be updated asynchronously
...
Updates when the slot changes effect type is still sychronous, however, to
ensure a proper state for the Process method call. Fixing this would
essentially require all effects to work from the same state.
2011-07-16 02:41:02 -07:00
Chris Robinson
54b5f35125
Warn about HRTF being disabled in the compatibility check function
2011-07-16 00:39:13 -07:00
Chris Robinson
17773c5644
Rename the ERROR macro to ERR
2011-07-13 01:43:00 -07:00
Chris Robinson
2bb3d31d5c
Avoid holding the global list lock while calling some capture methods
2011-07-13 01:21:30 -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
22ccaf7f4a
Trace device update size and count
2011-07-11 00:05:53 -07:00