Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't bother making ALvoiceProps dynamically sized | Chris Robinson | 2018-11-30 | 1 | -1/+0 |
| | |||||
* | Avoid using the ATOMIC() macro | Chris Robinson | 2018-11-26 | 1 | -1/+1 |
| | |||||
* | Atuomatically clean up sources with its sublist's destruction | Chris Robinson | 2018-11-25 | 1 | -2/+0 |
| | |||||
* | Use a normal vector for the source send properties | Chris Robinson | 2018-11-20 | 1 | -2/+11 |
| | |||||
* | Use atomic_flags and atomic<bools>s where appropriate | Chris Robinson | 2018-11-20 | 1 | -1/+1 |
| | |||||
* | Avoid naming a struct member the same as an enum type | Chris Robinson | 2018-11-18 | 1 | -1/+1 |
| | |||||
* | 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++ | ||||
* | Store the ALbufferlistitem's composited/max sample length | Chris Robinson | 2018-03-27 | 1 | -0/+1 |
| | |||||
* | Don't make the source state atomic | Chris Robinson | 2018-02-24 | 1 | -1/+1 |
| | |||||
* | Remove the individual source queue and buffer locks | Chris Robinson | 2018-02-02 | 1 | -1/+0 |
| | | | | | | | They're inherently protected by the mutex for their respective lists. Should those mutexes be replaced by rwlocks the individual locks should also be reinstated, but they're unlikely to be unless a lot of contention starts happening in the read-only case. | ||||
* | Store an index to a given source's voice | Chris Robinson | 2018-02-01 | 1 | -0/+5 |
| | | | | For more efficient voice lookups when needed. | ||||
* | Make some more functions static where they're used | Chris Robinson | 2018-01-27 | 1 | -14/+0 |
| | |||||
* | Allow storing multiple buffers in a ALbufferlistitem | Chris Robinson | 2017-12-15 | 1 | -1/+2 |
| | | | | | | | | | | | | | | | This will be to allow buffer layering, multiple buffers of the same format and sample rate that are mixed together prior to resampling, filtering, and panning. This will allow composing sounds from individual components that can be swapped around on different invocations (e.g. layer SoundA and SoundB on one instance and SoundA and SoundC on a different instance for a slightly different sound, then just SoundA for a third instance, and so on). The longest buffer within the list item determines the length of the list item. More work needs to be done to fully support it, namely the ability to specity multiple buffers to layer for static and streaming sources. Also the behavior of loop points for layered static sources should be worked out. Should also consider allowing each layer to have a sample offset. | ||||
* | Rename RollOff to Rolloff | Chris Robinson | 2017-05-05 | 1 | -1/+1 |
| | |||||
* | Add a property to force source spatialization on or off | Chris Robinson | 2017-05-04 | 1 | -0/+1 |
| | |||||
* | Store the resampler as part of the source | Chris Robinson | 2017-04-21 | 1 | -0/+1 |
| | |||||
* | Make the buffer list next pointer atomic | Chris Robinson | 2017-04-19 | 1 | -1/+2 |
| | |||||
* | Store the source queue head in the voice to signify looping | Chris Robinson | 2017-04-18 | 1 | -3/+2 |
| | | | | | This removes the need to access a couple more source fields in the mixer, and also makes the looping and queue fields non-atomic. | ||||
* | Store the source prop updates with the mixer voice | Chris Robinson | 2017-04-17 | 1 | -57/+0 |
| | | | | Also move its declaration and rename it for consistency. | ||||
* | Use an atomic flag to test if a source needs to update | Chris Robinson | 2017-03-20 | 1 | -1/+1 |
| | |||||
* | Don't defer source state or offset changes | Chris Robinson | 2017-03-19 | 1 | -4/+0 |
| | |||||
* | Move ALvoice declaration to alu.h | Chris Robinson | 2017-03-09 | 1 | -54/+0 |
| | |||||
* | Remove unnecessary atomic members | Chris Robinson | 2017-03-08 | 1 | -41/+41 |
| | |||||
* | Store the channel count and sample size in the voice | Chris Robinson | 2017-03-07 | 1 | -4/+7 |
| | |||||
* | Remove an unused function | Chris Robinson | 2017-03-07 | 1 | -6/+0 |
| | |||||
* | Make the voice's source pointer atomic | Chris Robinson | 2017-03-05 | 1 | -1/+1 |
| | |||||
* | Add a boolean to specify if a voice should be playing | Chris Robinson | 2017-03-02 | 1 | -3/+5 |
| | |||||
* | Move the current buffer queue entry and play position to the voice | Chris Robinson | 2017-02-27 | 1 | -11/+13 |
| | | | | | | | | | | | | | | This has a couple behavioral changes. First and biggest is that querying AL_BUFFERS_PROCESSED from a source will always return all buffers processed when in an AL_STOPPED state. Previously all buffers would be set as processed when first becoming stopped, but newly queued buffers would *not* be indicated as processed. That old behavior was not compliant with the spec, which unequivocally states "On a source in the AL_STOPPED state, all buffers are processed." Secondly, querying AL_BUFFER on an AL_STREAMING source will now always return 0. Previously it would return the current "active" buffer in the queue, but there's no basis for that in the spec. | ||||
* | Improve handling of source state reads | Chris Robinson | 2017-02-24 | 1 | -1/+1 |
| | | | | | | | This avoids using seq_cst for loading the source state when either inside the mixer, or otherwise protected from inconsistencies with async updates. It also fixes potential race conditions with getting the source offset just as a source stops. | ||||
* | Increase the default effect slot and send count | Chris Robinson | 2017-02-21 | 1 | -1/+2 |
| | | | | | | | | | | The default number of auxiliary effect slots is now 64. This can still be raised by the config file without a hard maximum, but incurs processing cost for each effect slot generated by the app. The default number of source sends is now actually 2, as per the EFX docs. However, it can be raised up to 16 via ALC_MAX_AUXILIARY_SENDS attribute requests, rather than the previous 4. | ||||
* | Dynamically allocate the ALsource Send[] array | Chris Robinson | 2017-02-21 | 1 | -1/+1 |
| | |||||
* | Make the voices' Send[] array dynamically sized | Chris Robinson | 2017-02-21 | 1 | -1/+1 |
| | | | | | The voices are still all allocated in one chunk to avoid memory fragmentation. But they're accessed as an array of pointers since the size isn't static. | ||||
* | Reorganize ALvoice members | Chris Robinson | 2017-02-15 | 1 | -7/+6 |
| | | | | | This places the Send[] array at the end of the struct, making it easier to handle dynamically. | ||||
* | Make ALsourceProps' Send array dynamically sized | Chris Robinson | 2017-02-14 | 1 | -4/+4 |
| | | | | | | ALsourceProps' Send[] array is placed at the end of the struct, and given an indeterminate size. Extra space is allocated at the end of each struct given the number of auxiliary sends set for the device. | ||||
* | Fix build with non-C11 atomics | Chris Robinson | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Make the source state atomic | Chris Robinson | 2017-02-13 | 1 | -1/+8 |
| | | | | | Since it's modified by the mixer when playback is ended, a plain struct member isn't safe. | ||||
* | Put BsincState in a generic union | Chris Robinson | 2017-02-13 | 1 | -1/+1 |
| | |||||
* | Use ALsizei in more places | Chris Robinson | 2017-01-18 | 1 | -4/+4 |
| | |||||
* | Only send source updates for sources that have updated | Chris Robinson | 2016-11-23 | 1 | -0/+2 |
| | |||||
* | Clean up finding a source's voice | Chris Robinson | 2016-11-22 | 1 | -1/+1 |
| | |||||
* | Avoid resupplying unneeded source updates | Chris Robinson | 2016-08-23 | 1 | -34/+37 |
| | | | | | 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. | ||||
* | Don't store the looping state in the voice | Chris Robinson | 2016-07-31 | 1 | -4/+2 |
| | | | | | Certain operations on the buffer queue depend on the loop state to behave properly, so it should not be deferred until the async voice update occurs. | ||||
* | Move the input channel array out of the DirectParams and SendParams | Chris Robinson | 2016-07-13 | 1 | -2/+4 |
| | |||||
* | Store the voice output buffers separate from the params | Chris Robinson | 2016-07-11 | 1 | -0/+10 |
| | |||||
* | Reorder some source fields | Chris Robinson | 2016-07-07 | 1 | -5/+5 |
| | |||||
* | Remove some unnecessary volatile keywords | Chris Robinson | 2016-06-03 | 1 | -31/+31 |
| | |||||
* | Make a function static | Chris Robinson | 2016-06-01 | 1 | -1/+0 |
| | |||||
* | Make the source position calues atomic | Chris Robinson | 2016-05-19 | 1 | -2/+2 |
| | |||||
* | Avoid redundantly storing distance model settings | Chris Robinson | 2016-05-17 | 1 | -1/+1 |
| |