Filip Gawin
0537414baf
Use nullptr in cpp files
2019-01-07 12:37:13 +01:00
Chris Robinson
da3a916042
Replace macros with constexpr inline functions
2019-01-06 04:16:51 -08:00
Chris Robinson
3f35fcc4b5
Simplify MixParams and AmbiUpsampler
...
Since the dry buffer is always an ambisonic target now
2019-01-05 21:59:04 -08:00
Chris Robinson
399dfca1e3
Rename ALCdevice_struct and ALCcontext_struct
...
A (possibly contentious?) change in the public headers. Those names were never
part of any specification, and I don't know why the struct names differed from
the actual type name. But with C++, which takes the original struct declaration
as the original name, it was affecting the type's internal symbols.
This shouldn't affect user code since ALCdevice_struct and ALCcontext_struct
were never part of the spec. If issues arise from this change, it should be
reported.
2019-01-01 18:13:33 -08:00
Chris Robinson
1630a33567
Use standard unique_lock and lock_guard for the backend lock
2019-01-01 16:42:54 -08:00
Chris Robinson
2f1566e0b4
Add and use a make_unique function
2019-01-01 14:33:01 -08:00
Chris Robinson
a9e71c2668
Handle all input channels in MixDirectHrtf
2018-12-31 23:33:04 -08:00
Chris Robinson
d8eecc89e0
Pass a reference to an array instead of a pointer
2018-12-31 18:07:00 -08:00
Chris Robinson
5a9a1c8d7d
Further improve HRTF methods to avoid masking in the inner loops
2018-12-31 04:12:20 -08:00
Chris Robinson
5e03941701
Use an atomic bool on things that only take true or false
2018-12-30 21:58:14 -08:00
Chris Robinson
9f5c9a2260
Rename BackendLock to StateLock
2018-12-30 21:38:42 -08:00
Chris Robinson
24e763f2a1
Get rid of ALCdevice_Lock/Unlock
2018-12-29 14:00:34 -08:00
Chris Robinson
71a4d6db6f
Return a unique_ptr for the backend
2018-12-29 02:16:16 -08:00
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