Chris Robinson
3d92e8c4df
Convert the backends to use proper inheritence
2018-12-28 22:56:20 -08:00
Chris Robinson
515edc3dee
Fix ring buffer vector methods
2018-12-27 15:05:12 -08:00
Chris Robinson
4dca2f2ee5
Use a unique_ptr for the AsyncEvents ringbuffer
2018-12-27 10:44:02 -08:00
Chris Robinson
c3f370fa41
Constify and reorder a couple device fields
2018-12-27 10:25:09 -08:00
Chris Robinson
d367093c06
Use std::array for appropriate source and listener properties
2018-12-26 22:27:34 -08:00
Chris Robinson
a4ac43b602
Avoid a lambda to find a not-null entry in an array
2018-12-26 21:55:39 -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
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
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
194e7ff815
Add an in-progress extension to set the effect slot target
2018-12-24 15:52:37 -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
68352d3188
Apply the limiter before distance compensation
2018-12-24 07:30: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
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
86caf2683e
Constify a parameter
2018-12-22 18:43:34 -08:00
Chris Robinson
334b3a905a
Clean up some math stuff
2018-12-22 16:01:14 -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
0214a11024
Use inline methods for the device format sizes
2018-12-19 05:57:36 -08:00
Chris Robinson
b49e8985a4
Don't hardcode the channel count from the device ambisonic order
2018-12-19 03:13:15 -08:00
Chris Robinson
e2896dc839
Combine handling of attribute processing
2018-12-18 09:27:00 -08:00
Chris Robinson
e0f635b20d
Move some ambisonic-related macros to a separate header
2018-12-15 03:30:47 -08:00
Chris Robinson
2d13e0af29
Add macros for the ambisonic order masks
2018-12-14 23:26:44 -08:00
Chris Robinson
d18ae81e9c
Add POPCNT32 and CTZ32 macros
2018-12-13 22:05:47 -08:00
Chris Robinson
b779ebb512
Fix some MSVC conversion warnings
2018-12-12 21:18:31 -08:00
Chris Robinson
5a283c66ee
Use proper classes for Vector and Matrix types
2018-12-12 04:22:11 -08:00
Chris Robinson
e87eb07db4
A bit more cleanup
2018-12-10 21:30:22 -08:00
Chris Robinson
ed18fd76c5
Clean up a few more loops
2018-12-10 14:49:57 -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
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
10b39d57d5
Use class methods for the NFC filters
2018-12-05 15:20:52 -08:00
Chris Robinson
6409910543
Handle EventType_BufferCompleted uniquely
2018-12-04 16:33:26 -08:00
Chris Robinson
31b54eb86a
Avoid a few more explicit loops
2018-12-03 01:41:52 -08:00
Chris Robinson
85e83bbdff
Use a std::string for the source state change message
2018-12-02 19:34:09 -08:00
Chris Robinson
45b65366bb
Improve some checks for compiler analysis
2018-12-02 15:29:26 -08:00
Chris Robinson
60254488e9
Add a couple missing source lock guards
2018-12-02 14:36:53 -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
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
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