Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Re-update effect slots when context properties change | Chris Robinson | 2017-09-27 | 1 | -3/+5 |
| | | | | | Also keep all free property update structs together in the context instead of per-object. | ||||
* | Pass the context to the auxiliary effect update method | Chris Robinson | 2017-09-21 | 1 | -2/+2 |
| | |||||
* | Fix source sends' initial HF absorption and decay calculation | Chris Robinson | 2017-05-27 | 1 | -1/+1 |
| | | | | | | | | The HF absorption is applied given the source distance, as relative to the source's immediate environment, with additional absorption being applied given the room/reverb environment. This does double up the amount of absorption compared to the dry path, but it can be assumed the initial reflections travel a longer distance. | ||||
* | Apply more proper air absorption to the wet path | Chris Robinson | 2017-05-19 | 1 | -0/+2 |
| | | | | | | | | This properly accounts for the room rolloff factor for normal air absorption (which makes it none by default, like distance attenuation), and uses the reverb's decay time, decay hf ratio, decay hf limit, and room air absorption properties to calculate an initial hf decay with the WetGainAuto flag. This mirrors the behavior of the initial distance decay. | ||||
* | Change some ALuint parameters to ALsizei | Chris Robinson | 2017-05-02 | 1 | -2/+2 |
| | |||||
* | Use an array of pointers for effects instead of a linked list | Chris Robinson | 2017-03-27 | 1 | -2/+6 |
| | |||||
* | Use an atomic flag to mark auxiliary effect slot updates | Chris Robinson | 2017-03-23 | 1 | -2/+3 |
| | |||||
* | Remove unnecessary atomic members | Chris Robinson | 2017-03-08 | 1 | -4/+4 |
| | |||||
* | Use ALsizei in more places | Chris Robinson | 2017-01-18 | 1 | -2/+2 |
| | |||||
* | Properly defer effect slot changes | Chris Robinson | 2016-08-25 | 1 | -0/+3 |
| | | | | | | | | Note that this now also causes all playing sources to update when an effect slot is updated. This is a bit wasteful, as it should only need to re-update sources that are using the effect slot (and only when a relevant property is changed), but it's good enough. Especially with deferring since all playing sources are going to get updated on the process call anyway. | ||||
* | Add a ref count to ALeffectState | Chris Robinson | 2016-08-25 | 1 | -0/+2 |
| | | | | | This is mostly just reorganizing the effects to call the Construct method which initializes the ref count. | ||||
* | Remove broken autowah effect code | Chris Robinson | 2016-07-26 | 1 | -1/+0 |
| | | | | | It's been disabled forever, and I have no idea how to make it work properly. Better to just redo it when making something that works. | ||||
* | Remove some unnecessary volatile keywords | Chris Robinson | 2016-06-03 | 1 | -2/+2 |
| | |||||
* | Hold the effectslot map lock while handling it | Chris Robinson | 2016-05-29 | 1 | -2/+11 |
| | |||||
* | Use a linked list for active effect slots | Chris Robinson | 2016-05-29 | 1 | -0/+2 |
| | |||||
* | Avoid using a flag to specify if the effect state needs to be updated | Chris Robinson | 2016-05-15 | 1 | -3/+1 |
| | | | | | This fixes a potential missed state change if an update with a new state got replaced with one that doesn't. | ||||
* | Get rid of an unnecessary copy of ALeffectProps | Chris Robinson | 2016-05-13 | 1 | -3/+2 |
| | |||||
* | 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 |