Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid updating the effect state object if it's not changed | Chris Robinson | 2016-05-12 | 1 | -1/+3 |
| | |||||
* | Provide (mostly) lockless updates for effect slots | Chris Robinson | 2016-05-12 | 1 | -5/+39 |
| | | | | | | | | | | | | | | | | | Similar to the listener, separate containers are provided atomically for the mixer thread to apply updates without needing to block, and a free-list is used to reuse container objects. A couple things to note. First, the lock is still used when the effect state's deviceUpdate method is called to prevent asynchronous calls to reset the device from interfering. This can be fixed by using the list lock in ALc.c instead. Secondly, old effect states aren't immediately deleted when the effect type changes (the actual type, not just its properties). This is because the mixer thread is intended to be real-time safe, and so can't be freeing anything. They are cleared away when updates reuse the container they were kept in, and they don't incur any extra processing cost, but there may be cases where the memory is kept around until the effect slot is deleted. | ||||
* | Update a comment | Chris Robinson | 2016-04-15 | 1 | -2/+2 |
| | |||||
* | Avoid unnecessary loops for setting up effect slot b-format buffer mixing | Chris Robinson | 2016-04-14 | 1 | -1/+1 |
| | |||||
* | Store the effect's output buffer in the effect state | Chris Robinson | 2016-03-17 | 1 | -0/+3 |
| | |||||
* | Mix to multichannel for effects | Chris Robinson | 2016-01-28 | 1 | -2/+17 |
| | | | | | | This mixes to a 4-channel first-order ambisonics buffer. With ACN ordering and N3D scaling, this makes it easy to remain compatible with effects that only care about mono input since channel 0 is an unattenuated mono signal. | ||||
* | Pass a pointer to the input samples array for effect processing | Chris Robinson | 2016-01-27 | 1 | -2/+2 |
| | |||||
* | Separate calculating ambisonic coefficients from the panning gains | Chris Robinson | 2016-01-25 | 1 | -2/+2 |
| | |||||
* | Pas the output device channel count to ALeffectState::process | Chris Robinson | 2014-11-07 | 1 | -2/+2 |
| | |||||
* | Use generic atomics in more places | Chris Robinson | 2014-07-22 | 1 | -1/+1 |
| | |||||
* | Add a GCC-specific STATIC_UPCAST macro that checks the object type | Chris Robinson | 2014-04-19 | 1 | -1/+1 |
| | | | | | The check is compile time, and is functionally identical to the old/alternate version. | ||||
* | Use C11 alignas when available | Chris Robinson | 2014-04-19 | 1 | -1/+3 |
| | |||||
* | Remove the click removal buffers for auxiliary effect slots | Chris Robinson | 2014-03-23 | 1 | -3/+0 |
| | |||||
* | Use a void* for the effect state Delete method param | Chris Robinson | 2014-03-21 | 1 | -2/+3 |
| | |||||
* | Move ALfloatBUFFERSIZE to a common location | Chris Robinson | 2013-11-27 | 1 | -4/+0 |
| | |||||
* | Move some inline methods to their appropriate headers | Chris Robinson | 2013-11-04 | 1 | -0/+4 |
| | |||||
* | Use a helper macro for making vtable thunks | Chris Robinson | 2013-10-29 | 1 | -15/+13 |
| | |||||
* | Fix effect slot struct declarations so KDevelop doesn't barf on them | Chris Robinson | 2013-10-07 | 1 | -16/+15 |
| | |||||
* | Implement the Compressor effect | Chris Robinson | 2013-10-03 | 1 | -0/+1 |
| | |||||
* | Implement the Autowah effect. | Chris Robinson | 2013-10-03 | 1 | -0/+1 |
| | |||||
* | Fix up the naming convention of effect methods | Chris Robinson | 2013-05-29 | 1 | -12/+15 |
| | |||||
* | Cleanup the ALeffectStateFactory_create methods | Chris Robinson | 2013-05-27 | 1 | -5/+3 |
| | | | | | Get rid of the ALeffectStateFactory_create macro, and use the VCALL_NOARGS helper (requires adding the 'this' factory parameter). | ||||
* | Use generic VCALL[_NOARGS] macros instead of type-specific wrappers | Chris Robinson | 2013-05-27 | 1 | -5/+0 |
| | |||||
* | Use an ALeffectProps union to store the effect properties | Chris Robinson | 2013-05-25 | 1 | -1/+2 |
| | |||||
* | Use a Delete method for deletable objects | Chris Robinson | 2013-05-25 | 1 | -10/+5 |
| | |||||
* | Move the AL_EFFECT_NULL state into a separate file | Chris Robinson | 2013-05-23 | 1 | -0/+1 |
| | |||||
* | Use restrict instead of RESTRICT | Chris Robinson | 2013-05-22 | 1 | -2/+2 |
| | |||||
* | Rename the effect state's Destroy method to Destruct | Chris Robinson | 2013-05-21 | 1 | -5/+5 |
| | |||||
* | Use factories to create and destroy effect states | Chris Robinson | 2013-05-21 | 1 | -16/+49 |
| | |||||
* | Remove some unused code | Chris Robinson | 2013-05-21 | 1 | -5/+2 |
| | |||||
* | Auto-generate wrappers to upcast objects before calling user methods | Chris Robinson | 2013-05-21 | 1 | -8/+17 |
| | |||||
* | Use macros to help define vtables for effect states | Chris Robinson | 2013-05-21 | 1 | -12/+33 |
| | |||||
* | Implement distortion and equalizer effects | Chris Robinson | 2013-05-18 | 1 | -0/+2 |
| | | | | Code provided by Mike Gorchak | ||||
* | Add Chorus and Flanger effects | Chris Robinson | 2013-03-13 | 1 | -0/+2 |
| | | | | Code provided by Mike Gorchak | ||||
* | Add the RESTRICT keyword to a function pointer definition's parameters | Chris Robinson | 2012-10-25 | 1 | -1/+1 |
| | |||||
* | Explicitly give the wet buffer 1 channel | Chris Robinson | 2012-09-16 | 1 | -1/+1 |
| | |||||
* | Implement an SSE MixSend method | Chris Robinson | 2012-09-16 | 1 | -1/+1 |
| | |||||
* | Fix up some more header includes | Chris Robinson | 2012-09-14 | 1 | -10/+8 |
| | |||||
* | Use a non-interleaved DryBuffer | Chris Robinson | 2012-09-11 | 1 | -1/+1 |
| | |||||
* | Don't use all caps for enum value names | Chris Robinson | 2012-06-28 | 1 | -1/+1 |
| | |||||
* | Remove an unused field | Chris Robinson | 2012-04-19 | 1 | -2/+0 |
| | |||||
* | Use a consistent name for the self-id field | Chris Robinson | 2012-04-19 | 1 | -2/+2 |
| | |||||
* | Pass the device to InitializeEffect and return the error enum from it | Chris Robinson | 2012-03-13 | 1 | -1/+1 |
| | |||||
* | Pass a device to the effect update functions | Chris Robinson | 2012-03-13 | 1 | -1/+1 |
| | |||||
* | Avoid duplicating some initialization code | Chris Robinson | 2012-01-20 | 1 | -2/+2 |
| | |||||
* | Add a global option to apply a reverb effect on source send 0 | Chris Robinson | 2012-01-19 | 1 | -0/+1 |
| | | | | | | 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. | ||||
* | Rename the ALEffect_ macros to ALeffectState_ to reflect what they work on | Chris Robinson | 2011-09-12 | 1 | -4/+4 |
| | |||||
* | Remove the effect slot parameter from the effect process method | Chris Robinson | 2011-09-12 | 1 | -5/+5 |
| | |||||
* | Avoid holding the context lock when setting auxiliary slot properties | Chris Robinson | 2011-09-11 | 1 | -3/+3 |
| | |||||
* | Combine the reverb effects | Chris Robinson | 2011-09-01 | 1 | -2/+1 |
| | | | | | | | 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. |