Chris Robinson
77447fcd54
Add placement operator delete
2019-01-11 20:06:23 -08:00
Chris Robinson
81e7222633
Use a flexible array for the active effect slots
2019-01-11 07:28:44 -08:00
Chris Robinson
e7d77f5caa
Use a vector for ALeffectslotArray
2019-01-09 18:29:22 -08:00
Filip Gawin
4169c6f37d
Use c++ headers
2019-01-09 19:42:40 +01:00
Chris Robinson
b49c45d3a4
Add prefixes for ALCdevice and ALCcontext
2019-01-09 00:31:57 -08:00
Chris Robinson
173c97c2db
Remove an unused macro
2019-01-08 21:51:56 -08:00
Chris Robinson
d7eee03272
Replace a couple more C-style casts
2019-01-08 19:08:03 -08:00
Filip Gawin
0d3a0635d9
Avoid using old style casts
...
To think about:
examples/alffplay.cpp:600
OpenAL32/Include/alMain.h:295
2019-01-08 19:42:44 +01:00
kcat
2a7f27ca58
Merge pull request #260 from ShFil119/impr/nullptr
...
Use nullptr in cpp files
2019-01-07 04:36:50 -08:00
Chris Robinson
4d047e2bc1
Use user-defined literals for 64-bit literals
2019-01-07 04:06:40 -08:00
Filip Gawin
0537414baf
Use nullptr in cpp files
2019-01-07 12:37:13 +01:00
Chris Robinson
648b76ed65
Move some macros to a common header
2019-01-07 01:12:09 -08: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