Chris Robinson
0ceea27b44
Remove the effect slot parameter from the effect process method
2011-09-12 00:44:52 -07:00
Chris Robinson
d9cb2baf4a
Don't increment the context reference count when locked
2011-09-11 09:29:24 -07:00
Chris Robinson
8f456f68ff
Remove GetLockedContext
2011-09-11 09:28:30 -07:00
Chris Robinson
8028770901
Avoid accessing EAX-only reverb properties for non-EAX updates
2011-09-11 08:50:48 -07:00
Chris Robinson
d51b93f869
Remove the union from the effect parameter types
2011-09-11 07:42:23 -07:00
Chris Robinson
ccd8cbc2a9
Make some listener properties volatile
2011-09-11 01:26:09 -07:00
Chris Robinson
1075cce7b3
Mark some source properties volatile
2011-09-11 01:18:57 -07:00
Chris Robinson
c19a7408d9
Add a comment about when FreeContext and FreeDevice are called
2011-09-10 20:52:19 -07:00
Chris Robinson
c7b9d27b85
Trace the device pointer when warning about leftover objects
2011-09-10 20:49:16 -07:00
Chris Robinson
30510dc478
Set the device-connected flag to false first when handling a disconnect
2011-09-10 19:22:46 -07:00
Chris Robinson
b788ae52b0
Condense some code
2011-09-10 19:19:32 -07:00
Chris Robinson
ccbd67eab6
Clean up some code comments
2011-09-10 19:14:14 -07:00
Chris Robinson
f21b1eefda
Lock the lists while probing devices
2011-09-10 09:12:02 -07:00
Chris Robinson
6cd55a0a10
Clean up some comments
2011-09-10 09:00:01 -07:00
Chris Robinson
0c5c63f4ba
Slightly modify a warning
2011-09-10 07:49:35 -07:00
Chris Robinson
3dcd1e793e
Properly destroy contexts that are left on the device when it's closed
2011-09-10 07:35:48 -07:00
Chris Robinson
419294cddd
Avoid locking the device when adding and removing contexts
...
Also, don't keep track of the number of contexts per device
2011-09-10 07:18:29 -07:00
Chris Robinson
b9448a476e
Avoid holding the list lock when not needed
2011-09-10 05:19:08 -07:00
Chris Robinson
238a747414
Warn about contexts that are errantly left current
...
These won't show by default in release mode, unless the log level is changed to
show warnings.
2011-09-10 03:18:31 -07:00
Chris Robinson
c35433ec7a
Hold an extra reference on the device for each of its contexts
2011-09-10 03:01:24 -07:00
Chris Robinson
e8c9da0124
Add some reference counting to the device
2011-09-10 02:43:07 -07:00
Chris Robinson
18cf6e3210
Fix a parameter type
2011-09-10 02:13:52 -07:00
Chris Robinson
23d693cd06
Add an option to trap device errors in a debugger
2011-09-10 01:23:59 -07:00
Chris Robinson
724ad0d893
Add an option to trap context errors in a debugger
2011-09-10 01:12:34 -07:00
Chris Robinson
7a0df8553f
Allow PulseAudio's tlength to grow to make sure there's at least two updates
2011-09-09 22:30:24 -07:00
Chris Robinson
477215883f
Use an array to get the device format from the user config string
2011-09-09 21:33:18 -07:00
Chris Robinson
05114815ba
Avoid an unnecessary lock
2011-09-02 15:57:50 -07:00
Chris Robinson
9080d5fda0
Do an atomic compare-exchange on the global context when destroying a context
2011-09-02 02:57:21 -07:00
Chris Robinson
108b43458f
Fix multichannel wet gainhf calculation
2011-09-02 02:54:00 -07:00
Chris Robinson
3dfd67680c
Use an atomic exchange to get the old global context when setting a new one
2011-09-02 02:32:35 -07:00
Chris Robinson
3a2fa18744
Log the function name instead of the source file and line number
2011-09-02 02:00:37 -07:00
Chris Robinson
370c9f553d
Trace the reverb buffer size
2011-09-02 01:13:22 -07:00
Chris Robinson
e80aa008b2
Combine the reverb effects
...
Updating and processing still differs depending on whether standard or EAX
reverb is used or not. The only functional difference should be that the
allocated buffer (and subsequent offsets) take into account the modulation
and echo times.
2011-09-01 20:06:51 -07:00
Chris Robinson
942c8bf8a7
Combine the dedicated (dialog/LFE) effects
2011-09-01 18:01:14 -07:00
Chris Robinson
b28f48c1bd
Store the filter gains directly in the source instead of duplicate filter objects
2011-08-31 02:18:16 -07:00
Chris Robinson
f3ac3cd1e2
Don't set a thread priority if real-time isn't requested
2011-08-31 01:05:01 -07:00
Chris Robinson
dd74757319
Add a function to initialize a RWLock
2011-08-31 01:00:19 -07:00
Chris Robinson
9fb91f70aa
Rename GetReffedContext to GetContextRef
2011-08-30 23:28:38 -07:00
Chris Robinson
0a1321aaae
Add a limit to the UIntMap size and use it for sources and effect slots
2011-08-30 20:33:47 -07:00
Chris Robinson
189add1d5a
Use a separate array for the auxiliary slots in the mixer
2011-08-30 20:13:42 -07:00
Chris Robinson
7d577832cd
Add functions to retrieve the source from the source map while removing it
2011-08-30 17:32:49 -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
7408396fd4
Use a generic int type to handle enum swaps
2011-08-29 21:30:12 -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
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
c06f4eb7f7
Hold a reference on the global context
2011-08-29 11:10:17 -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
aa99e1220b
Increment the context reference count when locking
2011-08-28 23:49:50 -07:00