aboutsummaryrefslogtreecommitdiffstats
path: root/al
Commit message (Collapse)AuthorAgeFilesLines
* Add an extension to change a buffer's unpack ambisonic orderChris Robinson2020-04-041-0/+13
|
* Track a buffer's ambisonic orderChris Robinson2020-04-043-21/+42
|
* Add an ambisonic order parameter to the buffer channel countChris Robinson2020-04-032-19/+18
|
* Remove a couple outdated commentsChris Robinson2020-04-031-2/+2
|
* Rename ALvoice and related structs to VoiceChris Robinson2020-03-281-45/+45
|
* Get rid of MAX_INPUT_CHANNELSChris Robinson2020-03-282-8/+10
|
* Avoid AL[C]boolean for internal useChris Robinson2020-03-286-18/+18
|
* Avoid some extraneous uses of AL type aliasesChris Robinson2020-03-251-88/+88
|
* Dynamically allocate voice channel dataChris Robinson2020-03-251-13/+13
| | | | | | | 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.
* Clean up ALfilter someChris Robinson2020-03-232-140/+149
| | | | | | Use inline methods instead of macros Fix indentation Add some consts
* Add a macro to disable class-specific new/deleteChris Robinson2020-03-236-0/+13
|
* Use inline initialization more for sourcesChris Robinson2020-03-232-89/+46
|
* Move the FPUCtl methods to its own sourceChris Robinson2020-03-201-1/+1
|
* Fix voices being forced to update without valid propertiesChris Robinson2020-03-041-2/+3
| | | | | | | | | | | | | | | | 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.
* Avoid redundantly setting voice membersChris Robinson2020-03-041-26/+24
|
* Don't change flags after InitVoiceChris Robinson2020-03-041-11/+9
|
* Use a new voice state to indicate a pending source offset changeChris Robinson2020-03-041-6/+7
|
* Avoid unnecessarily reclearing some variablesChris Robinson2020-03-031-51/+36
|
* Add a helper to wait for the device mixChris Robinson2020-03-032-22/+13
|
* Simplify getting a voice for a new source offsetChris Robinson2020-02-281-17/+21
|
* Use a VoiceChange object to change the offset of a playing sourceChris Robinson2020-02-261-61/+138
|
* Rename the voice's PendingStop to PendingChangeChris Robinson2020-02-261-6/+6
|
* Move voice initialization to a separate functionChris Robinson2020-02-261-97/+103
|
* Avoid storing the source offset when it's just read and resetChris Robinson2020-02-261-27/+27
|
* Make the source's send array static instead of dynamicChris Robinson2020-02-252-17/+10
|
* Handle playing voices after disconnectionChris Robinson2020-02-241-5/+11
|
* Improve searching for the next voice when playing multiple sourcesChris Robinson2020-02-241-4/+5
| | | | | Instead of searching from the beginning of the voice list for each source, just continue searching from the last source's voice.
* Ignore VoiceChange objects while disconnectedChris Robinson2020-02-241-0/+9
| | | | | And try to improve ALvoice/VoiceChange handling when attempting to recover a lost device.
* Simplify replaying a sourceChris Robinson2020-02-231-6/+3
|
* Fix voice allocation increase amountChris Robinson2020-02-221-1/+1
|
* Remove a couple unnecessary type aliasesChris Robinson2020-02-221-2/+2
|
* Use an array of ALvoice pointers for the active voicesChris Robinson2020-02-211-25/+34
| | | | | | 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.
* Set the voice's property update after the source IDChris Robinson2020-02-211-3/+3
| | | | Otherwise the mixer has a chance to throw it out before realizing it's needed.
* Handle playing and pausing with VoiceChangesChris Robinson2020-02-211-71/+71
|
* Prepare VoiceChange objects one at a timeChris Robinson2020-02-211-62/+35
|
* Don't unnecessarily count all voices when playing sourcesChris Robinson2020-02-211-9/+8
|
* Asynchronously stop and rewind voicesChris Robinson2020-02-201-36/+44
|
* Asynchronously stop voices if its source is being deletedChris Robinson2020-02-201-12/+52
|
* Add a voice flag to indicate a voice has a pending stopChris Robinson2020-02-201-2/+4
| | | | Pending/asynchronous stops to be implemented soon.
* Flag the voice as callback-based when given a callback bufferChris Robinson2020-02-171-1/+7
|
* Don't bother looping the calculated source offsetChris Robinson2020-02-171-14/+6
| | | | | The offset shouldn't be in a non-wrapped state when playing, and when not playing it's always 0 anyway.
* Don't allow setting a source offset for a callbackChris Robinson2020-02-171-0/+6
|
* Handle running the buffer callback in the voiceChris Robinson2020-02-173-7/+6
|
* Prevent queueing a callback bufferChris Robinson2020-02-171-3/+10
| | | | Also prevent setting it on multiple sources
* Set and retrieve a buffer's callbackChris Robinson2020-02-172-8/+147
|
* Stub out an interface for a callback-driven bufferChris Robinson2020-02-161-0/+41
|
* Always start streaming sources from the start of the queueChris Robinson2020-02-151-1/+1
| | | | | | For sources that don't start with an offset, at least. This is necessary so the completed buffer event will give the correct count if it starts with null or empty buffers that become processed.
* Only sort active effect slots as neededChris Robinson2020-01-181-0/+4
|
* Use struct methods to get a buffer's format infoChris Robinson2020-01-183-20/+21
|
* Combine identical arraysChris Robinson2020-01-041-13/+3
|