Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Remove extraneous typedef, struct, and enum keywords | Chris Robinson | 2018-12-24 | 1 | -1/+1 |
| | |||||
* | Propagate an effectslot target property | Chris Robinson | 2018-12-24 | 1 | -0/+2 |
| | |||||
* | Provide effect target parameters through a common struct | Chris Robinson | 2018-12-24 | 1 | -1/+6 |
| | |||||
* | Dynamically sort the effect slots when mixing | Chris Robinson | 2018-12-22 | 1 | -0/+1 |
| | | | | | | | | | This is to be able to support effects that output to other effects. When an effect outputs to another effect, the former needs to process first, so the former mixes to the latter's buffer before the latter is processed. This sorting needs to happen in the mixer because the effect slot's "Target" property changes asynchronously. | ||||
* | Constify a parameter | Chris Robinson | 2018-12-22 | 1 | -1/+1 |
| | |||||
* | Avoid using the ATOMIC() macro | Chris Robinson | 2018-11-26 | 1 | -2/+2 |
| | |||||
* | Avoid a separate function to clean up effect slots | Chris Robinson | 2018-11-25 | 1 | -1/+0 |
| | |||||
* | Use atomic_flags and atomic<bools>s where appropriate | Chris Robinson | 2018-11-20 | 1 | -1/+1 |
| | |||||
* | Avoid another case of a variable named the same as a type | Chris Robinson | 2018-11-19 | 1 | -1/+1 |
| | |||||
* | Use proper inheritence for the effect state objects | Chris Robinson | 2018-11-19 | 1 | -44/+15 |
| | |||||
* | Use proper inheritence for EffectStateFactory | Chris Robinson | 2018-11-19 | 1 | -22/+3 |
| | |||||
* | Use constructors/destructors for ALeffectslot | Chris Robinson | 2018-11-18 | 1 | -24/+28 |
| | |||||
* | Add and use new/delete operators to ALeffectslot | Chris Robinson | 2018-11-18 | 1 | -2/+5 |
| | |||||
* | Remove unused headers and checks | Chris Robinson | 2018-11-17 | 1 | -1/+0 |
| | |||||
* | Avoid using ATOMIC_FLAG | Chris Robinson | 2018-11-13 | 1 | -1/+1 |
| | | | | | Although it cant potentially be better than a regular atomic, it presents compatibility issues when non-C11 atomics are mixed with C++ | ||||
* | Replace restrict with RESTRICT | Chris Robinson | 2018-10-29 | 1 | -2/+2 |
| | |||||
* | Remove another duplicate function | Chris Robinson | 2018-09-19 | 1 | -2/+2 |
| | |||||
* | EFX: Autowah implementation | Raulshc | 2018-07-25 | 1 | -0/+1 |
| | | | Add autowah effect using biquad peaking filter and envelope follower | ||||
* | EFX: Frequency Shifter implementation | Raulshc | 2018-05-20 | 1 | -0/+1 |
| | | | Add frequency shifter effect using discrete Hilbert transform. Only mono signal processing by now (LEFT_DIRECTION). | ||||
* | EFX:Pitch Shifter implementation | Raulshc | 2018-03-18 | 1 | -0/+1 |
| | | | Add pitch shifter effect using standard phase vocoder, based on work of Stephan Bernsee. Only mono signal processing by now. | ||||
* | Apply a distance decay on the source send for the reverb's DecayLFRatio | Chris Robinson | 2018-03-11 | 1 | -0/+1 |
| | |||||
* | Fix struct forward declaration typo | Chris Robinson | 2018-03-08 | 1 | -1/+1 |
| | |||||
* | Fix a comment regarding the effect slot channel scaling | Chris Robinson | 2018-02-28 | 1 | -3/+3 |
| | |||||
* | Avoid AL prefix on internal effect state factory types | Chris Robinson | 2018-02-28 | 1 | -20/+21 |
| | | | | Also avoid using the generic V/V0 macros for them | ||||
* | Use a fixed array for the effect state factory list | Chris Robinson | 2018-01-28 | 1 | -3/+0 |
| | |||||
* | Use a vector to store the effect slot pointers | Chris Robinson | 2018-01-27 | 1 | -14/+0 |
| | | | | And make the ID a simple index into it (1-base, to avoid ID 0). | ||||
* | Avoid unnecessarily using type aliases | Chris Robinson | 2018-01-14 | 1 | -0/+5 |
| | |||||
* | 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. |