55 Commits

Author SHA1 Message Date
Chris Robinson
5ff5fd8ecc Use a standard bitset for bitfield flags 2021-01-22 00:00:10 -08:00
Chris Robinson
7fe9d8d20c Remove extraneous semicolor 2020-12-28 02:50:15 -08:00
Chris Robinson
ffa7d1b1a7 Reduce a few lines 2020-12-27 14:37:43 -08:00
Chris Robinson
43d053cb32 Reorder some device fields 2020-12-27 12:23:35 -08:00
Chris Robinson
04358890d9 Use a unique_ptr to hold DistanceComp data 2020-12-27 11:30:45 -08:00
Chris Robinson
adb5467720 Use smaller types for enums 2020-12-27 10:28:59 -08:00
Chris Robinson
8a86ec8ac5 Add a crossover frequency field for the device
Used when upsampling low-order ambisonic signals to higher order. Rather than a
hardcoded 400hz, it ensures a consistent crossover point when an ambdec
configuration is used. It can also allow for an alsoft config option.
2020-12-26 05:23:08 -08:00
Chris Robinson
5f233a2c24 Use more constexpr variables instead of macros 2020-12-25 20:52:18 -08:00
Chris Robinson
a08f68f213 Avoid some AL types 2020-12-15 20:48:21 -08:00
Chris Robinson
e179bf0a12 Move the mixer functions to core 2020-12-12 14:58:09 -08:00
Chris Robinson
191fe888b4 Move ambidefs.h to core 2020-12-12 10:38:24 -08:00
Chris Robinson
1bb7f575f0 Don't modify the IR size of loaded HRTFs 2020-12-11 15:08:50 -08:00
Chris Robinson
50e33ce8f4 Change some macros into constexpr variables 2020-12-04 13:53:56 -08:00
Chris Robinson
69d55d7e03 Move the filters to core 2020-12-04 11:15:50 -08:00
Chris Robinson
8750810f5c Change a couple macros into constexpr variables 2020-11-28 03:38:20 -08:00
Chris Robinson
dbfdd35545 Move some declarations to more appropriate headers 2020-11-27 22:27:45 -08:00
Chris Robinson
b0919240ab Move some sources to a separate directory
To begin separating the ALC interfaces from internal ones.
2020-11-27 19:18:17 -08:00
Chris Robinson
52d58a4023 Store the wet buffers in the context
This is rather ugly, but we need the wet buffers to remain allocated after its
effect slot is deleted, because a voice can still use it for its final fade-out
mix.
2020-11-02 04:24:36 -08:00
Chris Robinson
bb63d5aab3 Simplify clearing an array 2020-09-09 23:21:46 -07:00
Chris Robinson
a6aefeccd8 Use enum class for a couple enums 2020-09-01 05:46:19 -07:00
Chris Robinson
1f486f820e Use a separate structure for buffer storage 2020-08-28 00:09:46 -07:00
Chris Robinson
475ed0f039 Use a FlexArray instead of a vector for distance compensation 2020-08-11 05:59:20 -07:00
Chris Robinson
e8b3e82f96 Change a couple functions into member functions 2020-08-07 06:22:39 -07:00
Chris Robinson
540315b07c Handle the front stablizer with the B-Format decoder 2020-06-15 02:13:14 -07:00
Chris Robinson
6ce9bf6c94 Move a couple related functions to the backend base 2020-06-12 12:53:47 -07:00
Chris Robinson
200c164d78 Improve HRTF delay handling
Ensures source-level HRTF, the dry mix, and direct output all align properly,
and simplifies adding the delay in the direct mix output.
2020-05-20 11:13:06 -07:00
Chris Robinson
a512eae7bb Move BUFFERSIZE and FloatBufferLine to a separate header 2020-05-19 10:21:19 -07:00
Chris Robinson
065775d814 Limit the maximum settable sample rate 2020-04-28 16:30:11 -07:00
Chris Robinson
1120f52556 Clean up some function comments 2020-04-28 08:29:42 -07:00
Chris Robinson
d67cba99bd Clean up some more unnecessary uses of AL types 2020-04-08 10:15:43 -07:00
Chris Robinson
75479b58e3 Remove use of unnecessary type aliases 2020-03-30 13:43:49 -07:00
Chris Robinson
cc009b8aa0 Move the FrontStablizer definition to its own header 2020-03-30 01:16:15 -07:00
Chris Robinson
f1f9a14172 Avoid AL[C]boolean for internal use 2020-03-28 18:15:05 -07:00
Chris Robinson
bf50f227b9 Use a busy-wait when synchronizing against the mixer
The mixer should have higher priority than any thread that can make AL calls,
so even on single-core systems, it shouldn't stall the mix. It will, however,
return back to the caller as soon as it can, while yielding will give up the
timeslice if there's any other thread waiting to process even if the mix is
almost done.
2020-03-16 01:05:14 -07:00
Chris Robinson
accc1ec1c8 Add a helper to wait for the device mix 2020-03-03 20:32:44 -08:00
Chris Robinson
3e1a2c0f77 Use an intrusive_ptr for the device's HrtfStore 2020-03-01 17:16:09 -08:00
Chris Robinson
4634002104 Remix missing channels with direct channels enabled
Instead of dropping them.
2019-12-19 04:38:34 -08:00
Chris Robinson
925e6e979c Rework HRTF enuemration so the loaded HRTFs are separate 2019-11-28 08:24:29 -08:00
Chris Robinson
1e93fba6d0 Rename HrtfEntry to HrtfStore 2019-11-28 06:10:36 -08:00
Chris Robinson
d2608e4bde Avoid holding HRTF accumulation samples per-source
It notably simplifies things to mix HRTF sources into an accumulation buffer
together, which the Dry buffer's Ambisonic-to-HRTF decode is then added to,
before being mixed to the Real output.
2019-11-03 00:30:33 -07:00
Chris Robinson
4b746b8d37 Make MAX_RESAMPLER_PADDING specify the total padding 2019-09-28 14:35:42 -07:00
Chris Robinson
3675dfcfef Use an unsigned index value 2019-09-14 08:50:07 -07:00
Chris Robinson
2646f509ee Store the ambisonic order as unsigned 2019-09-13 20:04:22 -07:00
Chris Robinson
a250b6a986 Return unsigned values from the FromDevFmt functions 2019-09-13 14:29:25 -07:00
Chris Robinson
df306b5524 Make NumAuxSends unsigned 2019-09-13 04:15:05 -07:00
Chris Robinson
6699f3cf1c Use unsigned channel indices 2019-09-12 04:17:21 -07:00
Chris Robinson
164626a7be Pass unsigned sample count to aluMixData 2019-08-25 17:54:36 -07:00
Chris Robinson
88a8bf903b Use size_t for the post-process sample length 2019-08-25 15:36:40 -07:00
Chris Robinson
5b33b4aa97 Make the post-process methods member functions 2019-08-07 11:43:53 -07:00
Chris Robinson
d06afa7ca1 Move a struct definition to where it's used 2019-08-05 15:11:47 -07:00