Chris Robinson
465ab11748
Finish renaming backend struct fields
2018-12-27 17:48:02 -08:00
Chris Robinson
e48b8c4cda
Rename some more struct members for consistency
2018-12-27 17:09:14 -08:00
Chris Robinson
515edc3dee
Fix ring buffer vector methods
2018-12-27 15:05:12 -08:00
Chris Robinson
f2c2b7c538
Get rid of the unnecessary STATIC_(UP)CAST macros
2018-12-27 14:27:35 -08:00
Chris Robinson
4782d6107d
Use a proper constructor/destructor for the ALCbackend base
2018-12-27 13:40:43 -08:00
Chris Robinson
7880f27054
Rename DSound class members for consistency
2018-12-27 13:07:14 -08:00
Chris Robinson
1a4387d137
Return unique_ptrs instead of raw pointers
...
For the ring buffer, channel converter, and sample converter.
2018-12-27 12:55:43 -08:00
Chris Robinson
323cf58f02
Simplify resampling with CoreAudio capture
...
The ringbuffer holds the samples from the device, and we use our own converter
for resampling, calling it on demand with data from the ring buffer.
2018-12-27 12:04:18 -08:00
Chris Robinson
4dca2f2ee5
Use a unique_ptr for the AsyncEvents ringbuffer
2018-12-27 10:44:02 -08:00
Chris Robinson
be85ab6f82
Rename some ALSA class members for consistency
2018-12-27 10:34:22 -08:00
Chris Robinson
c3f370fa41
Constify and reorder a couple device fields
2018-12-27 10:25:09 -08:00
Chris Robinson
7d821551ac
Recognize ambix as an alias for acn+sn3d
2018-12-27 01:18:10 -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
c5be03b51e
Avoid masking in ApplyCoeffs's inner loop
...
This unfortunately does not apply to NEON, which would need a bit more
reworking of its method.
2018-12-26 14:59:21 -08:00
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
b2665a503f
Do some pre-mixing fading checks once before preparing to mix
2018-12-25 19:54:14 -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
497226f11e
Add an adjust-latency config option for PulseAudio
2018-12-25 17:04:54 -08:00
Chris Robinson
6a8c791e3c
Rework the pulseaudio backend to avoid an explicit mixer thread
2018-12-25 16:31:31 -08:00
Chris Robinson
0314370eb5
Cache the process binary path and name
2018-12-25 11:27:22 -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
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
3b7f668b28
Avoid an intermediate mixing buffer
2018-12-24 20:44:55 -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
cd213fe6b7
Avoid using select()
2018-12-24 09:58:48 -08:00
Chris Robinson
95631aa358
Make the Compressor more class-like
2018-12-24 09:17:00 -08:00
Chris Robinson
d49eeb576c
Only check ambisonic attributes with B-Format output
2018-12-24 07:33:38 -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
11d815cfd3
Repack some AmbiUpsampler fields for better access patterns
2018-12-23 15:55:12 -08:00
Chris Robinson
ba9aba699d
Properly rebalance the HF scale with ambisonic upsampling
2018-12-23 10:37:07 -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
ebfe818d2e
Fix narrowing conversion from double to float
2018-12-22 20:32:00 -08:00
Chris Robinson
bfa98be48a
Cleanup definitions and declarations in reverb.cpp
2018-12-22 19:31:12 -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
d4d98e2fe9
Fix for C++11 compatibility
...
std::array::operator[] isn't constexpr until C++14.
2018-12-22 11:41:03 -08:00