64 Commits

Author SHA1 Message Date
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