Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Simplify some statements | Filip Gawin | 2018-10-29 | 1 | -2/+2 |
| | |||||
* | Use an internal event to more timely release old effect states | Chris Robinson | 2018-09-21 | 1 | -0/+3 |
| | |||||
* | Check the effect slot list size only when there's no free entries | Chris Robinson | 2018-09-14 | 1 | -6/+7 |
| | | | | | The list can contain (reuable) NULL entries, so the max - current_size doesn't indicate how many can be allocated. | ||||
* | 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 adding to and removing from the active effect slots | Chris Robinson | 2018-03-08 | 1 | -21/+35 |
| | | | | | It wasn't properly removing all duplicates on insertion, and didn't remove the first effect slot when removing them. | ||||
* | Properly limit the max number of effect slots to 2^31 - 1 | Chris Robinson | 2018-03-08 | 1 | -9/+1 |
| | |||||
* | Use a plain mutex for the property lock | Chris Robinson | 2018-03-03 | 1 | -4/+4 |
| | |||||
* | Avoid AL prefix on internal effect state factory types | Chris Robinson | 2018-02-28 | 1 | -19/+19 |
| | | | | Also avoid using the generic V/V0 macros for them | ||||
* | Use separate functions to add and remove active effect slots | Chris Robinson | 2018-02-23 | 1 | -56/+83 |
| | |||||
* | Remove the unused thunk code | Chris Robinson | 2018-02-02 | 1 | -1/+0 |
| | |||||
* | Fix the effect slot limit check | Chris Robinson | 2018-01-28 | 1 | -1/+1 |
| | |||||
* | Use a fixed array for the effect state factory list | Chris Robinson | 2018-01-28 | 1 | -28/+24 |
| | |||||
* | Don't allocate more effect slots than allowed | Chris Robinson | 2018-01-27 | 1 | -0/+8 |
| | |||||
* | Move some inline functions into a header instead of copying them | Chris Robinson | 2018-01-27 | 1 | -8/+6 |
| | | | | | Unfortunately does not include the Lookup* functions, which need the full type declaration to offset the pointer. | ||||
* | Store effects in an array of lists | Chris Robinson | 2018-01-27 | 1 | -3/+17 |
| | |||||
* | Use a vector to store the effect slot pointers | Chris Robinson | 2018-01-27 | 1 | -61/+82 |
| | | | | And make the ID a simple index into it (1-base, to avoid ID 0). | ||||
* | Construct error messages using parameterized values | Chris Robinson | 2018-01-25 | 1 | -36/+35 |
| | |||||
* | Provide messages for the remaining AL errors | Chris Robinson | 2018-01-24 | 1 | -26/+36 |
| | |||||
* | Move the FPU mode declarations to a separate header | Chris Robinson | 2018-01-11 | 1 | -0/+1 |
| | | | | Also don't use inheritance with FPUCtl. | ||||
* | Re-update effect slots when context properties change | Chris Robinson | 2017-09-27 | 1 | -23/+11 |
| | | | | | Also keep all free property update structs together in the context instead of per-object. | ||||
* | Use macros to set and restore the mixer FPU mode | Chris Robinson | 2017-07-13 | 1 | -4/+3 |
| | |||||
* | 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. | ||||
* | Use a different way to get the size of structs with flexible array members | Chris Robinson | 2017-04-18 | 1 | -6/+2 |
| | |||||
* | Allow increasing the maximum source limit | Chris Robinson | 2017-04-14 | 1 | -1/+1 |
| | | | | | | | | If the requested number of mono and stereo sources exceeds 256, the source limit will be expanded. Any config file setting overrides this. If the device is reset to have fewer sources than are currently allocated, excess sources will remain and be usable as normal, but no more can be generated until enough are delated to go back below the limit. | ||||
* | Use separate atomic macros for pointers | Chris Robinson | 2017-04-14 | 1 | -11/+7 |
| | |||||
* | Use an array of pointers for effects instead of a linked list | Chris Robinson | 2017-03-27 | 1 | -43/+70 |
| | |||||
* | Fix handling of the PropsClean flags | Chris Robinson | 2017-03-23 | 1 | -1/+1 |
| | |||||
* | Use an atomic flag to mark auxiliary effect slot updates | Chris Robinson | 2017-03-23 | 1 | -4/+3 |
| | |||||
* | Remove unnecessary atomic members | Chris Robinson | 2017-03-08 | 1 | -14/+11 |
| | |||||
* | Avoid duplicating code using a macro | Chris Robinson | 2016-12-21 | 1 | -5/+1 |
| | |||||
* | Use separate macros for atomics that don't take a memory order | Chris Robinson | 2016-12-20 | 1 | -11/+11 |
| | |||||
* | Stop using almemory_order_consume | Chris Robinson | 2016-11-17 | 1 | -1/+1 |
| | |||||
* | Remove unnecessary consts | Chris Robinson | 2016-08-31 | 1 | -4/+4 |
| | | | | They were causing GCC's built-in atomic cmpxchg to complain. | ||||
* | Avoid directly replacing the effect slot Update pointer | Chris Robinson | 2016-08-25 | 1 | -14/+10 |
| | |||||
* | Properly defer effect slot changes | Chris Robinson | 2016-08-25 | 1 | -11/+28 |
| | | | | | | | | 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. | ||||
* | Track all references for effect states | Chris Robinson | 2016-08-25 | 1 | -21/+47 |
| | | | | | | | | This allows us to not have to play around with trying to avoid duplicate state pointers, since the reference count will ensure they're deleted as appropriate. The only caveat is that the mixer is not allowed to decrement references, since that can cause the object to be freed (which the mixer code is not allowed to do). | ||||
* | Add a ref count to ALeffectState | Chris Robinson | 2016-08-25 | 1 | -0/+8 |
| | | | | | This is mostly just reorganizing the effects to call the Construct method which initializes the ref count. | ||||
* | Avoid resupplying unneeded source updates | Chris Robinson | 2016-08-23 | 1 | -1/+1 |
| | | | | | The source's voice holds a copy of the last properties it received, so listener updates can make sources recalculate internal properties from that stored copy. | ||||
* | Avoid a NULL deref when creating 0 auxiliary effect slots | Chris Robinson | 2016-07-26 | 1 | -12/+9 |
| | |||||
* | 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. | ||||
* | Avoid using memcpy to copy a single struct | Chris Robinson | 2016-07-06 | 1 | -3/+3 |
| | |||||
* | Use separate arrays for UIntMap keys and values | Chris Robinson | 2016-07-04 | 1 | -2/+2 |
| | |||||
* | Hold the effectslot map lock while handling it | Chris Robinson | 2016-05-29 | 1 | -0/+24 |
| | |||||
* | Use a linked list for active effect slots | Chris Robinson | 2016-05-29 | 1 | -36/+31 |
| | |||||
* | Use the backend lock for the effectstate's deviceUpdate call | Chris Robinson | 2016-05-27 | 1 | -8/+4 |
| | |||||
* | Avoid duplicate effect state objects in the freelist | Chris Robinson | 2016-05-15 | 1 | -12/+25 |
| | | | | | | | If an unapplied update was superceded, it would be placed in the freelist with its effect state object intact. This would cause another update with the same effect state object to be placed into the freelist as well, or worse, cause it to get deleted while in use when the container had its effect state cleared. |