Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Make sure prebuf is filled when starting pulseaudio playback | Chris Robinson | 2020-03-27 | 1 | -1/+25 |
| | |||||
* | Use "zero-copy" writes with pulseaudio playback | Chris Robinson | 2020-03-26 | 1 | -6/+20 |
| | |||||
* | Move some setup to a more logical place | Chris Robinson | 2020-03-25 | 2 | -34/+34 |
| | |||||
* | Dynamically allocate voice channel data | Chris Robinson | 2020-03-25 | 4 | -58/+48 |
| | | | | | | | Rather than allocating for a full 8 channels for each voice, when the vast majority will only need 1 or 2. The voice channel data is relatively big since it needs to hold HRTF coefficients and history, and this will allow increasing the maximum number of buffer channels without an obscene memory increase. | ||||
* | Clear the WASAPI device list when enumerating | Chris Robinson | 2020-03-24 | 1 | -15/+12 |
| | |||||
* | Don't send close messages for unopened WASAPI devices | Chris Robinson | 2020-03-24 | 1 | -2/+10 |
| | |||||
* | Simplify clamping the voice mix size | Chris Robinson | 2020-03-23 | 1 | -8/+9 |
| | |||||
* | More cleanup for the pitch shifter | Chris Robinson | 2020-03-22 | 1 | -102/+70 |
| | |||||
* | Use make_unique instead of new'ing into a unique_ptr | Chris Robinson | 2020-03-22 | 1 | -2/+2 |
| | |||||
* | Avoid assigning in a conditional expression | Chris Robinson | 2020-03-22 | 1 | -1/+3 |
| | |||||
* | Properly allocate voices | Chris Robinson | 2020-03-22 | 1 | -0/+3 |
| | |||||
* | Use the correct include for al::fstream | Chris Robinson | 2020-03-22 | 1 | -1/+1 |
| | |||||
* | Silence a potential type truncation warning | Chris Robinson | 2020-03-22 | 1 | -1/+2 |
| | |||||
* | Some type cleanup | Chris Robinson | 2020-03-22 | 2 | -42/+39 |
| | |||||
* | Clean up the pitch and frequency shifter some | Chris Robinson | 2020-03-22 | 2 | -65/+56 |
| | |||||
* | Fix the frequency shifter channel panning | Chris Robinson | 2020-03-22 | 1 | -2/+2 |
| | |||||
* | Avoid some pre-C++14 workarounds | Chris Robinson | 2020-03-22 | 6 | -23/+20 |
| | |||||
* | Add missing semicolon | Chris Robinson | 2020-03-22 | 1 | -1/+1 |
| | |||||
* | Remove the check for stat() | Chris Robinson | 2020-03-21 | 2 | -4/+0 |
| | | | | It's POSIX-2001 standard | ||||
* | Cleanup some helper code | Chris Robinson | 2020-03-20 | 1 | -31/+36 |
| | |||||
* | Move CPUCapFlags and FillCPUCaps to their own source | Chris Robinson | 2020-03-20 | 2 | -133/+147 |
| | |||||
* | Move the FPUCtl methods to its own source | Chris Robinson | 2020-03-20 | 6 | -51/+60 |
| | |||||
* | Avoid a function call to get the channel count | Chris Robinson | 2020-03-18 | 1 | -1/+1 |
| | |||||
* | Rename a method to be clearer | Chris Robinson | 2020-03-18 | 1 | -15/+13 |
| | |||||
* | Make the pulseaudio enumeration functions class methods | Chris Robinson | 2020-03-18 | 1 | -112/+113 |
| | |||||
* | Remove a couple unused methods | Chris Robinson | 2020-03-18 | 1 | -2/+0 |
| | |||||
* | Use a busy-wait when synchronizing against the mixer | Chris Robinson | 2020-03-16 | 1 | -2/+2 |
| | | | | | | | | The mixer should have higher priority than any thread that can make AL calls, so even on single-core systems, it shouldn't stall the mix. It will, however, return back to the caller as soon as it can, while yielding will give up the timeslice if there's any other thread waiting to process even if the mix is almost done. | ||||
* | Fix voices being forced to update without valid properties | Chris Robinson | 2020-03-04 | 1 | -14/+7 |
| | | | | | | | | | | | | | | | | When starting a voice, the source ID was set before its first update struct was provided, creating a small window where a listener or effect slot update could force a voice to update without it having any valid properties to update with. Supplying the update struct first would create a different race, where the mixer could see a voice without a source but with an update struct, causing the update struct to be 'freed' without being applied. The fix here is to provide the update struct before setting the source ID, and change the mixer to ignore update structs for voices without a source ID. This can pseudo-orphan the updates that get set on a voice just as it stops, leaving the struct unusable until the voice is used again, or the voice gets deleted which will clear it. But it allows the update struct to stay in place and get applied once the voice gets a source ID. | ||||
* | Use a new voice state to indicate a pending source offset change | Chris Robinson | 2020-03-04 | 2 | -8/+10 |
| | |||||
* | Add a helper to wait for the device mix | Chris Robinson | 2020-03-03 | 3 | -14/+15 |
| | |||||
* | Use an intrusive_ptr for the device's HrtfStore | Chris Robinson | 2020-03-01 | 6 | -30/+23 |
| | |||||
* | Use real-time priority by default | Chris Robinson | 2020-02-26 | 1 | -8/+3 |
| | |||||
* | Remove unnecessary locks now that the mixer doesn't require one | Chris Robinson | 2020-02-26 | 18 | -64/+17 |
| | |||||
* | Use a VoiceChange object to change the offset of a playing source | Chris Robinson | 2020-02-26 | 1 | -0/+26 |
| | |||||
* | Rename the voice's PendingStop to PendingChange | Chris Robinson | 2020-02-26 | 2 | -3/+3 |
| | |||||
* | Make the source's send array static instead of dynamic | Chris Robinson | 2020-02-25 | 1 | -18/+12 |
| | |||||
* | Reduce the maximum number of source sends to 6 | Chris Robinson | 2020-02-25 | 1 | -1/+1 |
| | |||||
* | Ignore VoiceChange objects while disconnected | Chris Robinson | 2020-02-24 | 1 | -1/+25 |
| | | | | | And try to improve ALvoice/VoiceChange handling when attempting to recover a lost device. | ||||
* | Simplify replaying a source | Chris Robinson | 2020-02-23 | 2 | -7/+29 |
| | |||||
* | Remove a couple unnecessary type aliases | Chris Robinson | 2020-02-22 | 2 | -3/+1 |
| | |||||
* | Avoid a single function call in a loop | Chris Robinson | 2020-02-21 | 1 | -68/+66 |
| | |||||
* | Use an array of ALvoice pointers for the active voices | Chris Robinson | 2020-02-21 | 4 | -87/+96 |
| | | | | | | This allows growing the array atomically with the mixer since the ALvoice objects themselves don't move, and a new larger array of them can be swapped in without blocking the mixer. | ||||
* | Handle playing and pausing with VoiceChanges | Chris Robinson | 2020-02-21 | 1 | -0/+13 |
| | |||||
* | Asynchronously stop and rewind voices | Chris Robinson | 2020-02-20 | 1 | -3/+2 |
| | |||||
* | Asynchronously stop voices if its source is being deleted | Chris Robinson | 2020-02-20 | 3 | -0/+102 |
| | |||||
* | Add a voice flag to indicate a voice has a pending stop | Chris Robinson | 2020-02-20 | 1 | -4/+7 |
| | | | | Pending/asynchronous stops to be implemented soon. | ||||
* | Add AL_SOFTX_callback_buffer to the extension list | Chris Robinson | 2020-02-19 | 1 | -0/+4 |
| | |||||
* | Workaround a 32-bit GCC/MinGW TLS bug | Chris Robinson | 2020-02-18 | 1 | -16/+22 |
| | |||||
* | Handle running the buffer callback in the voice | Chris Robinson | 2020-02-17 | 2 | -18/+77 |
| | |||||
* | Add a callback flag for voices | Chris Robinson | 2020-02-17 | 2 | -6/+17 |
| |