Chris Robinson
5c449de73f
Improve UHJ2 encoding
2018-12-26 13:20:59 -08:00
Chris Robinson
3b9defa4af
Improve some post-process handlers
2018-12-26 12:46:01 -08:00
Chris Robinson
5cc545f157
More aggressively try to decrement an effect's refcount in-place
2018-12-26 12:25:34 -08:00
Chris Robinson
38537a35cc
Avoid using a local for a temporary
2018-12-25 22:32:30 -08:00
Chris Robinson
a7c58decfb
Add a couple more ASSUMEs for number of channels and sends
2018-12-25 18:49:12 -08:00
Chris Robinson
9e19acd9e1
Avoid making static local copies of constexpr values
2018-12-25 10:06:17 -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
bbf9e6931c
Propagate an effectslot target property
2018-12-24 15:17:38 -08:00
Chris Robinson
ae86aef4db
Provide effect target parameters through a common struct
2018-12-24 13:29:36 -08:00
Chris Robinson
95631aa358
Make the Compressor more class-like
2018-12-24 09:17:00 -08:00
Chris Robinson
68352d3188
Apply the limiter before distance compensation
2018-12-24 07:30:01 -08:00
Chris Robinson
ef10152361
Assume alignment for some buffers
2018-12-23 20:56:27 -08:00
Chris Robinson
1f966c11ef
Add some more ASSUMEs
2018-12-23 17:56:01 -08:00
Chris Robinson
e218999b4f
Dynamically sort the effect slots when mixing
...
This is to be able to support effects that output to other effects. When an
effect outputs to another effect, the former needs to process first, so the
former mixes to the latter's buffer before the latter is processed.
This sorting needs to happen in the mixer because the effect slot's "Target"
property changes asynchronously.
2018-12-22 22:31:26 -08:00
Chris Robinson
334b3a905a
Clean up some math stuff
2018-12-22 16:01:14 -08:00
Chris Robinson
d4d98e2fe9
Fix for C++11 compatibility
...
std::array::operator[] isn't constexpr until C++14.
2018-12-22 11:41:03 -08:00
Chris Robinson
b955c5cf5d
A bit of cleanup for CalcPanningAndFilters
2018-12-22 10:00:06 -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
5a283c66ee
Use proper classes for Vector and Matrix types
2018-12-12 04:22:11 -08:00
Chris Robinson
19c5c41c70
Cleanup alu.cpp some
2018-12-12 01:09:04 -08:00
Chris Robinson
e5db9b2378
Avoid static global initialization functions
2018-12-08 21:58:44 -08:00
Chris Robinson
5ea3c8fb60
Use member functions for BFormatDec and AmbiUpsampler
2018-12-08 02:50:34 -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
e60d0886d0
Use class methods for BandSplitter and SplitterAllpass filters
2018-12-05 15:38:05 -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
f79b0e24d4
Avoid a few more explicit loops
2018-12-04 15:30:39 -08:00
Chris Robinson
a0967967de
Read atomic variables in the reverse order they're set
2018-12-04 14:48:08 -08:00
Chris Robinson
7b1548af3c
Handle source state changed events uniquely in the event loop
...
To avoid the need of constructing the string in the mixer thread, which is
commonly formatted anyway.
2018-11-30 21:39:59 -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
14d746e7c2
Don't sever a paused source from its voice on disconnect
2018-11-28 14:38:26 -08:00
Chris Robinson
ec2927cd32
Small cleanup for ~ALCcontext_struct
2018-11-27 21:19:30 -08:00
Chris Robinson
f26083e9ed
Make and use a semaphore class
2018-11-27 13:41:30 -08:00
Chris Robinson
df057d4118
Make the context VoiceCount atomic
2018-11-23 16:16:31 -08:00
Chris Robinson
fb94cdcfd3
Restructure and clean up alu.cpp a bit
2018-11-23 13:12:48 -08:00
Chris Robinson
84f0f74d07
Use standard types for the device clock times
2018-11-22 12:53:16 -08:00
Chris Robinson
9c155a57fb
Use unique_ptr for DirectHrtfState
2018-11-22 07:54:29 -08:00
Chris Robinson
ab6db9a589
Clean up some unnecessary specifiers
2018-11-22 06:59:32 -08:00
Chris Robinson
9d73e03aaa
Use unique_ptr for bs2b
2018-11-22 06:49:37 -08:00
Chris Robinson
b3b4220182
Use unique_ptr for BFormatDec and AmbiUpsampler
2018-11-22 05:37:35 -08:00
Chris Robinson
671ed1abf8
Use a unique_ptr for the FrontStablizer
2018-11-22 04:53:29 -08:00
Chris Robinson
cc3e2a838f
Use a unique_ptr for the Compressor
2018-11-21 16:46:52 -08:00
Chris Robinson
eefc379a23
Use a unique_ptr for Uhj2Encoder
2018-11-21 15:31:32 -08:00
Chris Robinson
9f2a77f788
Use RAII when handling the mixer's FPU state
2018-11-21 09:07:02 -08:00
Chris Robinson
757c42c74b
Use a normal vector for the distance buffer storage
2018-11-21 05:06:31 -08:00
Chris Robinson
1df42c4a0f
Use a unique_ptr for the default effect slot
2018-11-20 05:01:08 -08:00