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
0d295cf811
Don't directly use a buffer for updating source parameters
2019-03-10 11:52:39 -07: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
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
169a11dffc
Add some preliminary fields for mix-time ambisonic upsampling
2019-02-21 04:57:56 -08:00
Chris Robinson
8ac2d34706
Allow processing some effects in higher order ambisonics
...
Reverb notably is still only first-order (any higher order channels are
dropped, and it writes to FOAOut). But others, like the equalizer, work on all
available channels.
2019-02-21 04:23:01 -08:00
Chris Robinson
7e00f646d9
Add a method to get the row of an ambisonic identity transform
2019-02-21 02:13:30 -08:00
Chris Robinson
194fcb6bb7
Rename MAX_AMBI_COEFFS and MAX_AMBI2D_COEFFS
2019-02-19 15:39:33 -08:00
Chris Robinson
dac609b29a
Move some more functions to alnumeric.h
2019-02-11 11:31:31 -08:00
Chris Robinson
69d8c6546d
Use std::arrays for HRIR coeffs and values
2019-02-07 08:38:49 -08:00
Chris Robinson
867161d55f
Constify some parameters
2019-01-12 21:08:34 -08:00
Chris Robinson
d64eaba322
Use a flexible array for DirectHrtfState and ALvoice
2019-01-12 01:25:33 -08:00
Chris Robinson
f8c2e54b47
Make the min/max/clamp functions constexpr
2019-01-11 21:04:50 -08:00
Chris Robinson
da3a916042
Replace macros with constexpr inline functions
2019-01-06 04:16:51 -08:00
Chris Robinson
3f35fcc4b5
Simplify MixParams and AmbiUpsampler
...
Since the dry buffer is always an ambisonic target now
2019-01-05 21:59:04 -08:00
Chris Robinson
a9e71c2668
Handle all input channels in MixDirectHrtf
2018-12-31 23:33:04 -08:00
Chris Robinson
d8eecc89e0
Pass a reference to an array instead of a pointer
2018-12-31 18:07:00 -08:00
Chris Robinson
5a9a1c8d7d
Further improve HRTF methods to avoid masking in the inner loops
2018-12-31 04:12:20 -08:00
Chris Robinson
9f5c9a2260
Rename BackendLock to StateLock
2018-12-30 21:38:42 -08:00
Chris Robinson
d367093c06
Use std::array for appropriate source and listener properties
2018-12-26 22:27:34 -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
208ea76922
Cleanup some includes
2018-12-25 11:09:41 -08:00
Chris Robinson
8336de6653
Rename a couple filter files for consistency
2018-12-25 10:28:02 -08:00
Chris Robinson
fbae41020d
Remove extraneous typedef, struct, and enum keywords
2018-12-24 19:29:01 -08:00
Chris Robinson
3fe38fed7c
Mix effect slot output to the effect target if it's set
2018-12-23 08:51:28 -08:00
Chris Robinson
334b3a905a
Clean up some math stuff
2018-12-22 16:01:14 -08:00
Chris Robinson
e87eb07db4
A bit more cleanup
2018-12-10 21:30:22 -08:00
Chris Robinson
efb8e076c7
Pass a reference to an array for a function parameter
2018-12-09 15:21:24 -08:00
Chris Robinson
e5db9b2378
Avoid static global initialization functions
2018-12-08 21:58:44 -08:00
Chris Robinson
c9f5617f06
Avoid several uses of memset
2018-12-08 14:22:20 -08:00
Chris Robinson
5a9a2cb1ed
Increase GAIN_MIX_MAX
2018-12-08 04:10:59 -08:00
Chris Robinson
4e17ad3ec0
Avoid a few more explicit loops
2018-12-02 13:35:07 -08:00
Chris Robinson
cc161fe7c1
Add a missing include
2018-12-01 01:12:05 -08:00
Chris Robinson
1e6e84374b
Use std::array for the voice's PrevSamples
2018-11-30 21:23:43 -08:00
Chris Robinson
c7569c31ad
Improve construction and destruction of ALvoices
2018-11-30 19:04:38 -08:00
Chris Robinson
4b7ac4a6ed
Don't bother making ALvoiceProps dynamically sized
2018-11-30 16:56:23 -08:00
Chris Robinson
8ca8da30bd
Store the source ID with the voice instead of the source pointer
2018-11-29 22:49:01 -08:00
Chris Robinson
ec2927cd32
Small cleanup for ~ALCcontext_struct
2018-11-27 21:19:30 -08:00
Chris Robinson
053599b243
Avoid using the ATOMIC() macro
2018-11-26 14:48:26 -08:00
Chris Robinson
976e49711b
Add noexcept to a bunch of inline functions
2018-11-22 19:47:41 -08:00
Chris Robinson
7433cb5f4c
Avoid naming a struct member the same as an enum type
2018-11-18 03:39:32 -08:00
Chris Robinson
e79d9bdd1a
Move the vector and matrix declarations to a separate header
2018-11-17 23:21:37 -08:00
Chris Robinson
fa3c34268d
Move the ALCcontext definition to its own header
2018-11-17 23:02:27 -08:00
Chris Robinson
d10301c209
Remove unused headers and checks
2018-11-17 19:52:54 -08:00
Chris Robinson
53373a43b8
Convert ALu.c to C++
...
Required changes to bsincgen to generate C++-friendly structures.
2018-11-16 20:32:19 -08:00
Chris Robinson
fd1361c198
Add a RESTRICT macro to help with C++ compatibility
2018-10-29 10:10:37 -07:00