Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Reorganize ALvoice members | Chris Robinson | 2017-02-15 | 2 | -10/+9 |
| | | | | | 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 | 3 | -19/+19 |
| | | | | | | 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 | 2 | -3/+3 |
| | |||||
* | Make the source state atomic | Chris Robinson | 2017-02-13 | 2 | -27/+28 |
| | | | | | 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 | 2 | -2/+6 |
| | |||||
* | Fix more uses of unsigned sizes and offsets | Chris Robinson | 2017-02-10 | 1 | -1/+1 |
| | |||||
* | Remove a couple context lock wrapper functions | Chris Robinson | 2017-02-07 | 2 | -23/+17 |
| | |||||
* | Remove __android_log_print calls for TRACEREF | Chris Robinson | 2017-01-27 | 1 | -1/+0 |
| | | | | | TRACEREFs aren't normally important, and for as often as it happens, the added function calls are wasteful even if they end up doing nothing. | ||||
* | Also log to __android_log_print on Android | Chris Robinson | 2017-01-26 | 1 | -0/+11 |
| | |||||
* | Move the B-Format HRTF virtual speaker stuff to InitHrtfPanning | Chris Robinson | 2017-01-18 | 1 | -12/+20 |
| | | | | | This keeps the decoder matrices and coefficient mapping together for if it changes in the future. | ||||
* | Replace some ALvoid with void | Chris Robinson | 2017-01-18 | 1 | -3/+3 |
| | |||||
* | Use ALsizei in more places | Chris Robinson | 2017-01-18 | 6 | -39/+39 |
| | |||||
* | Pass the left and right buffers to the hrtf mixers directly | Chris Robinson | 2017-01-17 | 1 | -5/+5 |
| | |||||
* | Use ALsizei and ALint for sizes and offsets with resamplers and filters | Chris Robinson | 2017-01-16 | 3 | -4/+5 |
| | |||||
* | Use ALsizei for sizes and offsets with the mixer | Chris Robinson | 2017-01-16 | 2 | -18/+18 |
| | | | | | | Unsigned 32-bit offsets actually have some potential overhead on 64-bit targets for pointer/array accesses due to rules on integer wrapping. No idea how much impact it has in practice, but it's nice to be correct about it. | ||||
* | Use second-order ambisonics for basic HRTF rendering | Chris Robinson | 2017-01-15 | 1 | -2/+2 |
| | | | | | | This should improve positional quality for relatively low cost. Full HRTF rendering still only uses first-order since the only use of the dry buffer there is for first-order content (B-Format buffers, effects). | ||||
* | Reorder filter coefficients | Chris Robinson | 2016-12-21 | 1 | -1/+1 |
| | |||||
* | Avoid duplicating code using a macro | Chris Robinson | 2016-12-21 | 3 | -16/+3 |
| | |||||
* | Convert the SndIO backend to the updated API | Chris Robinson | 2016-12-21 | 1 | -3/+0 |
| | |||||
* | Trace the commit ID and branch the library was built from | Chris Robinson | 2016-12-21 | 1 | -0/+2 |
| | |||||
* | Use separate macros for atomics that don't take a memory order | Chris Robinson | 2016-12-20 | 6 | -57/+60 |
| | |||||
* | Fix an infinite loop | Chris Robinson | 2016-11-23 | 1 | -0/+1 |
| | |||||
* | Only send source updates for sources that have updated | Chris Robinson | 2016-11-23 | 2 | -1/+12 |
| | |||||
* | Clean up finding a source's voice | Chris Robinson | 2016-11-22 | 2 | -27/+30 |
| | |||||
* | Improve seqlock behavior | Chris Robinson | 2016-11-21 | 1 | -24/+32 |
| | |||||
* | Stop using almemory_order_consume | Chris Robinson | 2016-11-17 | 3 | -3/+3 |
| | |||||
* | Workaround some systems having an ECHO macro | Chris Robinson | 2016-10-30 | 3 | -23/+23 |
| | |||||
* | Add some more 'restrict' keywords | Chris Robinson | 2016-10-06 | 1 | -1/+1 |
| | |||||
* | Remove an unused struct | Chris Robinson | 2016-10-05 | 1 | -6/+0 |
| | |||||
* | Pass current and target gains directly for mixing | Chris Robinson | 2016-10-05 | 1 | -2/+3 |
| | |||||
* | Make some pointer-to-array parameters const | Chris Robinson | 2016-10-04 | 2 | -2/+45 |
| | |||||
* | Finalize AL_SOFT_gain_clamp_ex | Chris Robinson | 2016-10-03 | 1 | -5/+0 |
| | |||||
* | Add a volume-adjust config option to adjust the source output volume | Chris Robinson | 2016-09-24 | 2 | -5/+7 |
| | | | | | | | | | Designed for apps that either don't change the listener's AL_GAIN, or don't allow the listener's AL_GAIN to go above 1. This allows the volume to still be increased further than such apps may allow, if users find it too quiet. Be aware that increasing this can easily cause clipping. The gain limit reported by AL_GAIN_LIMIT_SOFT is also affected by this. | ||||
* | Remove some more unnecessary volatiles | Chris Robinson | 2016-09-24 | 1 | -5/+5 |
| | |||||
* | Call ALfilterState_processC directly | Chris Robinson | 2016-09-12 | 2 | -5/+2 |
| | | | | | | It's the only implementation currently, so there's no point to having it stored as a function pointer in the filter struct. Even if there were SIMD versions, it'd be a global selection, not per-instance. | ||||
* | Mark a global variable declaration as extern | Chris Robinson | 2016-09-11 | 1 | -1/+1 |
| | |||||
* | Use unsigned int shifts for device flags | Chris Robinson | 2016-09-07 | 1 | -5/+5 |
| | |||||
* | Make the SelectMixer function sharable | Chris Robinson | 2016-09-06 | 1 | -0/+2 |
| | |||||
* | Remove use of DECL_CONST | Chris Robinson | 2016-09-06 | 3 | -14/+12 |
| | | | | | No idea if it was really gaining us anything, but removing it fixes a crash I was getting with libs built with Clang. | ||||
* | Use a predefined identity matrix | Chris Robinson | 2016-09-05 | 1 | -0/+1 |
| | |||||
* | Rename MatrixMixerFunc to RowMixerFunc | Chris Robinson | 2016-09-02 | 1 | -3/+3 |
| | |||||
* | Remove unnecessary consts | Chris Robinson | 2016-08-31 | 1 | -4/+4 |
| | | | | They were causing GCC's built-in atomic cmpxchg to complain. | ||||
* | Reorganize sample type conversion functions | Chris Robinson | 2016-08-31 | 1 | -286/+129 |
| | | | | To help avoid redundant manual definitions. | ||||
* | Initialize some enums to dummy values | Chris Robinson | 2016-08-31 | 1 | -8/+9 |
| | |||||
* | Remove the upper limit from AL_MIN_GAIN and AL_MAX_GAIN | Chris Robinson | 2016-08-29 | 1 | -2/+2 |
| | | | | As per the current AL_SOFT_gain_clamp_ex proposal. | ||||
* | Add a query for the maximum source gain limit | Chris Robinson | 2016-08-28 | 2 | -0/+31 |
| | |||||
* | Clamp the maximum mixing gain boost to 16 | Chris Robinson | 2016-08-27 | 1 | -0/+2 |
| | | | | | | The combined source and listener gains now can't exceed a multiplier of 16 (~24dB). This is to avoid mixes getting out of control with large volume boosts, which reduces the effective precision given by floating-point. | ||||
* | Allow sources to play while alcSuspendContext is in effect | Chris Robinson | 2016-08-26 | 3 | -8/+19 |
| | | | | | | | | | | | | | | This appears to be how Creative's Windows drivers handle it, and is necessary for at least the Windows version of UT2k4 (otherwise it tries to play a source while suspended, checks and sees it's stopped, then kills it before it's given a chance to start playing). Consequently, the internal properties it gets mixed with are determined by what the source properties are at the time of the play call, and the listener properties at the time of the suspend call. This does not change alDeferUpdatesSOFT, which will still hold the play state change until alProcessUpdatesSOFT. | ||||
* | 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 | 2 | -11/+31 |
| | | | | | | | | 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. |