Chris Robinson
872096958b
Rename the voice's PendingStop to PendingChange
2020-02-26 01:48:59 -08:00
Chris Robinson
814f80ec59
Move voice initialization to a separate function
2020-02-26 01:39:30 -08:00
Chris Robinson
8618571866
Avoid storing the source offset when it's just read and reset
2020-02-26 01:03:23 -08:00
Chris Robinson
795c4fcecc
Make the source's send array static instead of dynamic
2020-02-25 06:39:03 -08:00
Chris Robinson
7144cf405a
Handle playing voices after disconnection
2020-02-24 22:21:44 -08:00
Chris Robinson
fd0ed9f33f
Improve searching for the next voice when playing multiple sources
...
Instead of searching from the beginning of the voice list for each source, just
continue searching from the last source's voice.
2020-02-24 21:40:54 -08:00
Chris Robinson
52d86ad51f
Ignore VoiceChange objects while disconnected
...
And try to improve ALvoice/VoiceChange handling when attempting to recover a
lost device.
2020-02-24 11:01:45 -08:00
Chris Robinson
90d45984dc
Simplify replaying a source
2020-02-23 21:40:54 -08:00
Chris Robinson
a37932a0d0
Fix voice allocation increase amount
2020-02-22 18:01:34 -08:00
Chris Robinson
6044e0d7ca
Remove a couple unnecessary type aliases
2020-02-22 00:08:55 -08:00
Chris Robinson
a8162a77c2
Use an array of ALvoice pointers for the active voices
...
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.
2020-02-21 20:14:28 -08:00
Chris Robinson
6e6a30679e
Set the voice's property update after the source ID
...
Otherwise the mixer has a chance to throw it out before realizing it's needed.
2020-02-21 04:55:04 -08:00
Chris Robinson
0694df9014
Handle playing and pausing with VoiceChanges
2020-02-21 04:29:32 -08:00
Chris Robinson
9887c6971d
Prepare VoiceChange objects one at a time
2020-02-21 03:23:22 -08:00
Chris Robinson
9b801227d5
Don't unnecessarily count all voices when playing sources
2020-02-21 00:54:05 -08:00
Chris Robinson
9b43327f56
Asynchronously stop and rewind voices
2020-02-20 23:53:56 -08:00
Chris Robinson
bdb8ef22b0
Asynchronously stop voices if its source is being deleted
2020-02-20 22:50:37 -08:00
Chris Robinson
acf7f6f74e
Add a voice flag to indicate a voice has a pending stop
...
Pending/asynchronous stops to be implemented soon.
2020-02-20 19:18:07 -08:00
Chris Robinson
d4e01a1818
Flag the voice as callback-based when given a callback buffer
2020-02-17 17:34:17 -08:00
Chris Robinson
04e5b23286
Don't bother looping the calculated source offset
...
The offset shouldn't be in a non-wrapped state when playing, and when not
playing it's always 0 anyway.
2020-02-17 17:30:47 -08:00
Chris Robinson
d6e49b503b
Don't allow setting a source offset for a callback
2020-02-17 17:20:01 -08:00
Chris Robinson
3122c3b4a1
Handle running the buffer callback in the voice
2020-02-17 17:13:25 -08:00
Chris Robinson
a221f8671e
Prevent queueing a callback buffer
...
Also prevent setting it on multiple sources
2020-02-17 00:32:22 -08:00
Chris Robinson
8665f404a5
Always start streaming sources from the start of the queue
...
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.
2020-02-15 22:37:19 -08:00
Chris Robinson
8a9eef70af
Use struct methods to get a buffer's format info
2020-01-18 13:23:59 -08:00
Chris Robinson
cdd24c7d01
Combine identical arrays
2020-01-04 00:59:49 -08:00
Chris Robinson
701d43b41e
Start a new extension for a new direct_channels state
...
So existing behavior remains consistent for anything that needs it, and new
behavior is opt-in.
2019-12-28 11:33:19 -08:00
Chris Robinson
863171efc9
Check the voice's ambisonic order when starting
2019-12-05 00:18:01 -08:00
Chris Robinson
38037e29ba
Handle the buffer's ambisonic properties
2019-12-02 12:50:18 -08:00
Chris Robinson
b79aa32308
Store the ambisonic order for the voice
...
Currently only first-order B-Format is possible for a buffer/source, but this
will begin to allow for higher orders with an appropriate extension.
2019-12-01 15:36:25 -08:00
Chris Robinson
0cba99ed1b
Avoid static constexpr for arrays iterated over at run-time
2019-10-25 01:43:23 -07:00
Chris Robinson
cf617760b6
Separate a couple assignments from conditionals
2019-09-30 03:03:27 -07:00
Chris Robinson
d50ca464cd
Use a span for holding the source handles
2019-09-25 03:01:58 -07:00
Chris Robinson
24db8a3f4b
Make the resampler type an enum class
2019-09-22 21:19:19 -07:00
Chris Robinson
564c953e94
Make the buffer frequency unsigned
2019-09-21 16:47:33 -07:00
Chris Robinson
bf2c865d39
Clean up some more shadowing warnings
2019-09-16 07:16:31 -07:00
Chris Robinson
e4cc77ea23
Fix a few warnings from MSVC
2019-09-14 20:19:59 -07:00
Chris Robinson
807d3b64ca
Enable and fix more warnings
2019-09-14 18:35:23 -07:00
Chris Robinson
2c348cecb6
Fix some more implicit conversions noted by GCC
2019-09-14 18:35:23 -07:00
Chris Robinson
df306b5524
Make NumAuxSends unsigned
2019-09-13 04:15:05 -07:00
Chris Robinson
5ca8796d6a
Clean up some lambda definitions
2019-09-12 17:10:33 -07:00
Chris Robinson
70b58d79fe
Fix source limit check
2019-09-12 12:19:07 -07:00
Chris Robinson
6ca8fadd58
Fix counting free objects
2019-09-12 12:14:23 -07:00
Chris Robinson
2e010d29cb
Clean up implicit conversions in source.cpp
2019-09-12 11:33:04 -07:00
Chris Robinson
07e2aa3bc0
Clean up some more implicit conversions
2019-09-11 14:33:26 -07:00
Chris Robinson
987fd13796
Use a new voice when restarting a playing source
2019-09-06 21:20:20 -07:00
Chris Robinson
e5c9643dd5
Combine two functions into one
2019-09-05 15:08:22 -07:00
Chris Robinson
97c043da07
Don't set voice properties in ApplyOffset
2019-09-05 04:00:49 -07:00
Chris Robinson
ef2769af03
Use a normal vector for the voices array
2019-09-04 23:04:55 -07:00
Chris Robinson
bb35e24c9b
Avoid unnecessary placement new definitions
2019-09-01 17:54:17 -07:00