53 Commits

Author SHA1 Message Date
Chris Robinson
3a39a2c790 Set the correct target gain after a fade-out HRTF mix 2019-03-12 16:45:34 -07:00
Chris Robinson
24ae12f58e Check a value where its used 2019-03-12 09:56:02 -07:00
Chris Robinson
098c7ca6ea Fix not looping when the source offset is beyond the loop end 2019-03-11 22:09:30 -07:00
Chris Robinson
24b43fe852 Remove a couple redundant local variables 2019-03-11 22:00:28 -07:00
Chris Robinson
30a7c6d86f Pass the voice state as a parameter instead of reloading it 2019-03-11 20:00:14 -07:00
Chris Robinson
2c67ab0d2c Rename ALvoice fields for consistency 2019-03-10 16:29:06 -07:00
Chris Robinson
030b24a40d Improve handling of voice's AmbiScales for upsampling 2019-03-10 15:46:46 -07:00
Chris Robinson
80e55b87ed Avoid an extra level of indentation 2019-03-10 12:50:38 -07:00
Chris Robinson
12721f94a7 Add a method to apply an HF scale without band-splitting 2019-03-10 10:30:33 -07:00
Chris Robinson
6a95189ef6 Fix for MSVC decaying arrays to pointers with ?: 2019-03-09 21:54:15 -08:00
Chris Robinson
106671d451 Fade out voices that end normally
Sometimes a sound may end with non-0 amplitude, particularly if a buffer queue
underruns. This helps avoid clicks and pops for sources that don't already end
in silence.
2019-03-09 21:32:14 -08:00
Chris Robinson
87479b4b32 Play dummy samples and force a fade out on stopping voices 2019-03-09 18:34:00 -08:00
Chris Robinson
ef0f335132 Add a Stopping state for voices
This currently doesn't do much, except have the mixer progress it to Stopped.
It's valid to have without a source or buffers, and in the future will allow
fading out when a source is paused or stopped.
2019-03-09 16:48:07 -08:00
Chris Robinson
2d14de3fb0 Use more specific names for temp buffer storage 2019-03-02 23:41:26 -08:00
Chris Robinson
cadff0f6c1 Reduce BUFFERSIZE to match the default period size
Also adds a bit more space to the temp source data buffer, to avoid needing to
loop on matching sample rates.
2019-02-24 16:13:51 -08:00
Chris Robinson
7a9d67934f Mix B-Format sources directly to the dry buffer
Now the only thing that utilizes FOAOut is reverb output.
2019-02-21 17:48:08 -08:00
Chris Robinson
69f6f56160 Avoid using internal AL[u]int64 types 2019-02-11 12:16:58 -08:00
Chris Robinson
8429770c3f Use template declarations for the HRTF mixers 2019-01-23 12:23:05 -08:00
Chris Robinson
d3842a632d Use template declarations for the normal mixing functions 2019-01-23 11:21:03 -08:00
Chris Robinson
23179d0bcd Use a template declaration for the resampler functions 2019-01-23 11:11:41 -08:00
Chris Robinson
d64eaba322 Use a flexible array for DirectHrtfState and ALvoice 2019-01-12 01:25:33 -08:00
Filip Gawin
6ddb2c36fc Remove redundant void argument list in function def 2019-01-09 19:43:54 +01:00
Filip Gawin
4169c6f37d Use c++ headers 2019-01-09 19:42:40 +01:00
Filip Gawin
0d3a0635d9 Avoid using old style casts
To think about:
examples/alffplay.cpp:600
OpenAL32/Include/alMain.h:295
2019-01-08 19:42:44 +01:00
Filip Gawin
0537414baf Use nullptr in cpp files 2019-01-07 12:37:13 +01:00
Chris Robinson
4dca2f2ee5 Use a unique_ptr for the AsyncEvents ringbuffer 2018-12-27 10:44:02 -08:00
Chris Robinson
8a0295503d Clean up the ring buffer struct and use member functions 2018-12-26 21:22:17 -08:00
Chris Robinson
4f253a935a Handle HRTF coefficients and values by reference where possible 2018-12-26 15:35:05 -08:00
Chris Robinson
b2665a503f Do some pre-mixing fading checks once before preparing to mix 2018-12-25 19:54:14 -08:00
Chris Robinson
63df7cd537 Construct AsyncEvent objects directly in the ringbuffer 2018-12-25 09:32:38 -08:00
Chris Robinson
fbae41020d Remove extraneous typedef, struct, and enum keywords 2018-12-24 19:29:01 -08:00
Chris Robinson
87724db6e3 Rename a couple HRTF structs 2018-12-22 09:20:50 -08:00
Chris Robinson
7744e4ff72 Pass RealMixParams by reference instead of pointer 2018-12-20 13:26:39 -08:00
Chris Robinson
10f87c5d26 Use std::accumulate to get the max composited buffer length loaded 2018-12-20 07:10:09 -08:00
Chris Robinson
0f24139b57 Use a constructor instead of a macro to initialize AsyncEvent 2018-12-06 22:24:20 -08:00
Chris Robinson
10b39d57d5 Use class methods for the NFC filters 2018-12-05 15:20:52 -08:00
Chris Robinson
164a86a381 Use class methods for the biquad filter 2018-12-04 22:31:08 -08:00
Chris Robinson
6409910543 Handle EventType_BufferCompleted uniquely 2018-12-04 16:33:26 -08:00
Chris Robinson
45b65366bb Improve some checks for compiler analysis 2018-12-02 15:29:26 -08:00
Chris Robinson
4e17ad3ec0 Avoid a few more explicit loops 2018-12-02 13:35:07 -08:00
Chris Robinson
607fb3e632 Use a lambda to apply the NFC mixes 2018-12-01 23:25:34 -08:00
Chris Robinson
e1af866a3d Rework source sample counting for mixing a bit 2018-12-01 13:47:56 -08:00
Chris Robinson
1e6e84374b Use std::array for the voice's PrevSamples 2018-11-30 21:23:43 -08:00
Chris Robinson
f26083e9ed Make and use a semaphore class 2018-11-27 13:41:30 -08:00
Chris Robinson
df3dcc879f Get rid of the last ATOMIC macro uses 2018-11-26 18:19:58 -08:00
Chris Robinson
05845b53e8 Clean up MixSource 2018-11-25 13:20:26 -08:00
Chris Robinson
377325e794 Use C++ methods a bit more 2018-11-24 19:16:21 -08:00
Chris Robinson
16a60dc371 Avoid an extraneous boolean 2018-11-24 15:30:28 -08:00
Chris Robinson
b508a760c8 Use a normal vector to store buffer data 2018-11-24 10:07:48 -08:00
Chris Robinson
c7472f8642 Use C++ templates instead of macro definitions more 2018-11-20 02:59:02 -08:00