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
Chris Robinson
f77832fea2
Remove unnecessary NULL check
2010-03-24 03:43:37 -07:00
Chris Robinson
3e9934e810
Mark extension functions with AL_API/ALC_API
2010-03-23 17:44:01 -07:00
Chris Robinson
49db3bf916
Cleanup and fixup Release* functions
2010-03-20 21:49:02 -07:00
Chris Robinson
99f28f25b0
Avoid calling alDelete* from alGen*
2010-03-20 21:38:05 -07:00
Chris Robinson
2687155200
Get rid of more alIs* calls
2010-03-16 20:23:46 -07:00
Chris Robinson
f37cfc486d
Pass the context to alSetError
2010-03-16 17:35:51 -07:00
Chris Robinson
ec917e8e2f
Rename some struct members for consistency
2010-03-16 15:37:41 -07:00
Chris Robinson
d930fb8d3d
Call the Update effect method for null effects
2009-11-28 20:09:41 -08:00