aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alAuxEffectSlot.c
Commit message (Collapse)AuthorAgeFilesLines
* Rename Suspend/ProcessContext since they are locking a mutexChris Robinson2011-06-301-22/+22
|
* Allow alThunkAddEntry to return a proper errorChris Robinson2011-06-171-3/+3
|
* Avoid calling some AL functions from under the context lockChris Robinson2011-06-161-18/+30
| | | | | | | 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.
* Add support for ALC_EXT_DEDICATEDChris Robinson2011-03-121-0/+4
|
* Rename OUTPUTCHANNELS to something more descriptiveChris Robinson2010-12-011-1/+1
|
* Use the number of sends the device is configured for in more placesChris Robinson2010-11-061-2/+4
|
* Reduce some more indentationChris Robinson2010-09-211-24/+25
|
* Reduce some indentationChris Robinson2010-09-211-48/+42
|
* Improve some range checksChris Robinson2010-09-211-2/+4
|
* Handle clicks by watching changes between updatesChris Robinson2010-08-161-0/+3
|
* Add click removal for wet sendsChris Robinson2010-08-151-0/+2
|
* Use a map for the effects listChris Robinson2010-05-181-3/+2
|
* Use a UIntMap for the effect slot listChris Robinson2010-05-121-59/+45
|
* Use a map to store sources and buffersChris Robinson2010-05-011-3/+3
| | | | And do a lookup using a binary search instead of linear
* Implement a skeleton Ring Modulator effectChris Robinson2010-04-081-0/+2
|
* Shorten some variable namesChris Robinson2010-03-261-32/+32
|
* Remove unnecessary NULL checkChris Robinson2010-03-241-2/+1
|
* Mark extension functions with AL_API/ALC_APIChris Robinson2010-03-231-11/+11
|
* Cleanup and fixup Release* functionsChris Robinson2010-03-201-3/+2
|
* Avoid calling alDelete* from alGen*Chris Robinson2010-03-201-3/+13
|
* Get rid of more alIs* callsChris Robinson2010-03-161-30/+26
|
* Pass the context to alSetErrorChris Robinson2010-03-161-27/+25
|
* Rename some struct members for consistencyChris Robinson2010-03-161-11/+11
|
* Call the Update effect method for null effectsChris Robinson2009-11-281-4/+2
|
* Update source parameters only when they need changingChris Robinson2009-11-251-0/+26
|
* Handle NULL effect objects as AL_EFFECT_NULL effectsChris Robinson2009-11-051-20/+18
|
* Handle setting AL_EFFECT_NULL effect types on a slotChris Robinson2009-11-051-0/+43
|
* Add a method to update device-dependant effect parameters.Chris Robinson2009-10-201-1/+6
| | | | The effect state's update method will be called afterwards
* Be context-agnostic in the effect Create functionsChris Robinson2009-10-191-3/+3
| | | | | | | This allows the effect Update functions to handle the playback frequency being changed. By default the effects assume a maximum frequency of 192khz, however, it can go higher at the cost of the sample buffers being cleared and the risk of an abort() if reallocation fails
* Print source and auxiliary slot debug warnings from alcDestroyContextChris Robinson2009-08-161-5/+0
|
* More modifications and fixes for context checksChris Robinson2009-08-161-56/+12
|
* Use a function to retrieve the current context in an already-locked stateChris Robinson2009-08-161-22/+11
| | | | | This should help prevent race-conditions with a context being destroyed between breing retrieved and locked
* Store the max number of auxiliary slots in the deviceChris Robinson2009-06-071-1/+3
|
* Set an error if effect creation failsChris Robinson2009-05-311-11/+14
|
* Apply slot gain on slot output, not inputChris Robinson2009-05-291-1/+1
|
* Don't expose effect-specific structuresChris Robinson2009-05-291-25/+16
|
* Add preliminary support for the EAX Reverb effectChris Robinson2009-05-291-14/+13
| | | | | Not all parameters are supported yet, though it is a little more fuctional than standard reverb
* Add the Echo effectChris Robinson2009-04-121-0/+20
|
* Make auxiliary effect slot count configurableChris Robinson2009-04-111-2/+1
|
* Move the WetBuffer into the effect slot objectChris Robinson2009-04-111-1/+3
| | | | This should make it easier to support multiple slots
* Implement a new reverb effectChris Robinson2008-11-161-42/+9
| | | | Code created and graciously provided by Christopher Fitzgerald
* Use a new low-pass filter, based on the I3DL2 specChris Robinson2008-10-021-2/+0
| | | | Many thanks to Christopher Fitzgerald, for helping with it
* Don't export extension function symbols from the libChris Robinson2008-09-061-11/+11
|
* Use arrays instead of pointer-to-arrays for the low-pass filterChris Robinson2008-07-261-3/+0
|
* Implement yet another low-pass filterChris Robinson2008-07-251-0/+5
| | | | This one using the Butterworth IIR filter design
* Clarify implicit destruction warningsChris Robinson2008-07-221-1/+1
|
* Preserve data and position when reallocating the reverb effectChris Robinson2008-02-181-3/+7
| | | | Still not perfect, but better for when the size doesn't change
* Remove effect slot thunk entry when deallocated forcefullyChris Robinson2008-01-211-0/+1
|
* Clean a couple debug messagesChris Robinson2008-01-191-1/+1
|
* Implement AL_EFFECT_REVERBChris Robinson2008-01-181-7/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Here is a quick description of how the reverb effect works: +--->---+*(4) | V new sample +-----+---+---+ | |extra|ltr|ref| <- +*(1) +-----+---+---+ (3,5)*| |*(2) +-->| V out sample 1) Apply master reverb gain to incoming sample and place it at the head of the buffer. The master reverb gainhf was already applied when the source was initially mixed. 2) Copy the delayed reflection sample to an output sample and apply the reflection gain. 3) Apply the late reverb gain to the late reverb sample 4) Copy the end of the buffer, applying a decay gain and the decay hf ratio, and add to the late reverb. 5) Copy the late reverb sample, adding to the output sample. Then the head and sampling points are shifted forward, and done again for each new sample. The extra buffer length is determined by the Reverb Density property. A value of 0 gives a length of 0.1 seconds (long, with fairly distinct echos) , and 1 gives 0.075 seconds (short, indistinct echos). The decay gain is calculated such that after a number of loops to satisfy the Decay Time, a sample will be 1/32768th as powerful (virtually insignificant to the resulting output, and only getting further reduced). It is calculated as: DecayGain = pow(1.0f/32768.0f, 1.0/(DecayTime/ExtraLength)); Things to note: Reverb Diffusion is not currently handled, nor is Decay HF Limit. Decay HF Ratios above 1 probably give incorrect results. Also, this method likely sucks, but it's the best I can come up with before release. :)