Chris Robinson
c9e64596a4
Use a consistent name for the self-id field
2012-04-19 22:28:01 -07:00
Chris Robinson
92ccacdc77
Pass the device to InitializeEffect and return the error enum from it
2012-03-13 14:58:34 -07:00
Chris Robinson
b5ed2a5351
Pass a device to the effect update functions
2012-03-13 14:49:58 -07:00
Chris Robinson
8ef777ebbe
Restore the FPU mode in an error path
2012-03-12 23:58:12 -07:00
Chris Robinson
cc2cb1142b
Remove unused variables
2012-02-17 12:32:43 -08:00
Chris Robinson
f520257463
Avoid duplicating some initialization code
2012-01-20 16:23:15 -08:00
Chris Robinson
51e81f4867
Add a global option to apply a reverb effect on source send 0
...
A special slot on the device is created and processed, so it can be shared
across all contexts on the device. Sources that don't have a slot set on send 0
will use this special slot instead.
2012-01-19 19:30:03 -08:00
Chris Robinson
886f874ff3
Use a proper typedef for handling atomic pointer swaps
2012-01-01 15:00:03 -08:00
Chris Robinson
3c27c24dec
Set the mixer FPU mode when setting a new effect on an effect slot
2011-09-29 05:25:01 -07:00
Chris Robinson
e9da6950ee
Centralize the Lookup and Remove macros
2011-09-24 18:34:45 -07:00
Chris Robinson
0988023d30
Constify some parameters
2011-09-22 00:31:42 -07:00
Chris Robinson
404cfde33e
Rename the ALEffect_ macros to ALeffectState_ to reflect what they work on
2011-09-12 05:59:23 -07:00
Chris Robinson
0ceea27b44
Remove the effect slot parameter from the effect process method
2011-09-12 00:44:52 -07:00
Chris Robinson
0dc5837b82
Fix a possible race condition when setting an effect on a slot
2011-09-11 20:51:30 -07:00
Chris Robinson
d85c12c385
Avoid holding the context lock when setting auxiliary slot properties
2011-09-11 02:01:31 -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
812d91cbf8
Don't recreate the effect when switching between the dedicated effect types
2011-09-01 18:51:24 -07:00
Chris Robinson
942c8bf8a7
Combine the dedicated (dialog/LFE) effects
2011-09-01 18:01:14 -07:00
Chris Robinson
b6b3e2f1cc
Fix a comment
2011-08-31 14:01:15 -07:00
Chris Robinson
ee5ff943f3
Fix a potential infinite loop when removing an effect slot
2011-08-31 13:36:47 -07:00
Chris Robinson
9fb91f70aa
Rename GetReffedContext to GetContextRef
2011-08-30 23:28:38 -07:00
Chris Robinson
a32a3bcda8
Use a more appropriate error for trying to delete an effect slot that's in use
2011-08-30 20:57:14 -07:00
Chris Robinson
16dc73ff48
Hold the lock only as needed when generating and deleting effect slots
2011-08-30 20:49:49 -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
d546813c05
Don't lock the context while checking the validity of objects
2011-08-30 00:04:02 -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
199df253ca
Always use the thunk functions to get object IDs
2011-08-22 07:40:14 -07:00
Chris Robinson
c1f435cc18
Don't use the thunk array for object lookups
2011-08-22 07:22:02 -07:00
Chris Robinson
292ea0607d
Request a slot update when the gain changes
2011-07-16 03:15:28 -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
3245e992c3
Always pass the slot's effect to the update method
2011-07-11 01:51:24 -07:00
Chris Robinson
52c78194b3
Update the context when an auxiliary slot is modified
2011-07-11 01:13:58 -07:00
Chris Robinson
723755788d
Rename Suspend/ProcessContext since they are locking a mutex
2011-06-30 18:10:04 -07:00
Chris Robinson
0d39ac6528
Allow alThunkAddEntry to return a proper error
2011-06-17 23:59:25 -07:00
Chris Robinson
7d73ac4405
Avoid calling some AL functions from under the context lock
...
There are still some more occurances to clear out (deletion in gen error,
effects, some filters), which shall be coming up. There is a possibility for a
deadlock between the listlock and the global/context lock, if another attempt
to get the listlock is made while under the context lock.
2011-06-16 09:14:41 -07:00
Chris Robinson
73123bc313
Add support for ALC_EXT_DEDICATED
2011-03-12 20:11:25 -08:00
Chris Robinson
9e8fb89a52
Rename OUTPUTCHANNELS to something more descriptive
2010-12-01 18:33:17 -08:00
Chris Robinson
07346da740
Use the number of sends the device is configured for in more places
2010-11-06 14:27:33 -07:00
Chris Robinson
97daaade8a
Reduce some more indentation
2010-09-21 16:54:33 -07:00
Chris Robinson
8a1d5a21c3
Reduce some indentation
2010-09-21 15:12:08 -07:00
Chris Robinson
301a8ba3a4
Improve some range checks
2010-09-21 14:41:43 -07:00
Chris Robinson
e5cae87502
Handle clicks by watching changes between updates
2010-08-16 14:53:21 -07:00
Chris Robinson
00525274a0
Add click removal for wet sends
2010-08-15 14:52:12 -07:00
Chris Robinson
4edd7fe647
Use a map for the effects list
2010-05-18 17:41:06 -07:00
Chris Robinson
af4faaf666
Use a UIntMap for the effect slot list
2010-05-12 02:20:14 -07:00
Chris Robinson
0378422fcb
Use a map to store sources and buffers
...
And do a lookup using a binary search instead of linear
2010-05-01 19:59:41 -07:00
Chris Robinson
b273d616ad
Implement a skeleton Ring Modulator effect
2010-04-08 08:54:28 -07:00
Chris Robinson
7bdf0d5156
Shorten some variable names
2010-03-26 00:41:27 -07:00