50 Commits

Author SHA1 Message Date
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
Chris Robinson
727217ce0a Ensure AL_STOPPED state change events are sent
With explicit calls to alSourceStop on a playing or paused source
2019-09-01 15:28:33 -07:00
Chris Robinson
aee10ef606 Hold the source lock in UpdateAllSourceProps 2019-09-01 00:29:26 -07:00
Chris Robinson
3973334a64 Store the voice fraction offset as unsigned 2019-08-31 15:49:34 -07:00
Chris Robinson
024d5d900a Dereference the correct buffer when destructing a source 2019-08-21 03:00:19 -07:00
Chris Robinson
91ff01d1ad Don't explicitly inline a particular function 2019-08-13 20:33:26 -07:00
Chris Robinson
81d17bb80f Fix some return types 2019-08-12 14:30:47 -07:00
Chris Robinson
50d16d2422 Don't use INT_MAX for unknown span lengths
32-bit doesn't like it, for some reason. Use the largest possible length it
could be.
2019-08-11 22:48:18 -07:00
Chris Robinson
7118733458 Remove multiple buffers per queue item
And simplify related code
2019-08-11 14:01:57 -07:00
Chris Robinson
dca2365051 Fix array access index 2019-08-10 20:31:08 -07:00
Chris Robinson
7c069e29ee Update some more includes 2019-08-06 23:13:05 -07:00
Chris Robinson
2fa2c35bdc Modify LIKELY and UNLIKELY to not need extra parenthesis 2019-08-04 11:59:14 -07:00
Chris Robinson
7897de31d0 Pass spans to the source get-property methods 2019-08-03 19:36:19 -07:00
Chris Robinson
7baa07e3ad Pass spans to the source set-property methods
This avoids an extra property check to get the size since the number of values
can be checked when accessed.
2019-08-03 18:57:38 -07:00
Chris Robinson
9f223898f2 Use an unsigned voice index 2019-08-02 12:38:20 -07:00
Chris Robinson
33bcced82a Use a smart pointer for holding the context's device 2019-08-01 19:44:09 -07:00
Chris Robinson
65f7fc610e Add a common base for auto-deleting ref-counted objects
Which will also work as the basis for a future intrusive_ptr
2019-08-01 13:43:32 -07:00
Chris Robinson
a0aa5bc80a Add iterators to ALbufferlistitem
And change some types to ALuint
2019-07-31 09:20:53 -07:00
Chris Robinson
f286c3fa38 Move another function to a ALCcontext method 2019-07-30 21:32:05 -07:00
Chris Robinson
ac554de67d Turn some functions into methods 2019-07-30 14:13:05 -07:00
Chris Robinson
ea76e003e7 Properly prefix ALCcontext members 2019-07-30 09:05:54 -07:00
Chris Robinson
4c9e18c5a0 Rename al/* sources to avoid camel-case 2019-07-29 17:54:07 -07:00