Chris Robinson
f951f4a66b
Implement getDefaultProps for effect state factories
2019-03-22 12:58:24 -07:00
Chris Robinson
935f386982
Use a separate EffectStateFactory for standard reverb
2019-03-22 11:57:32 -07:00
Chris Robinson
9790135127
Add a new EffectStateFactory method to get the default properties
2019-03-22 11:52:55 -07:00
Chris Robinson
8ac2d34706
Allow processing some effects in higher order ambisonics
...
Reverb notably is still only first-order (any higher order channels are
dropped, and it writes to FOAOut). But others, like the equalizer, work on all
available channels.
2019-02-21 04:23:01 -08:00
Chris Robinson
3966665ca3
Store effect slots in groups of 64
...
Now that their wet buffers are allocated dynamically, the ALeffectslot object
itself is rather small.
2019-02-20 22:00:26 -08:00
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
4d047e2bc1
Use user-defined literals for 64-bit literals
2019-01-07 04:06:40 -08:00
Chris Robinson
2f1566e0b4
Add and use a make_unique function
2019-01-01 14:33:01 -08:00
Chris Robinson
9f5c9a2260
Rename BackendLock to StateLock
2018-12-30 21:38:42 -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
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
b779ebb512
Fix some MSVC conversion warnings
2018-12-12 21:18:31 -08:00
Chris Robinson
c9f5617f06
Avoid several uses of memset
2018-12-08 14:22:20 -08:00
Chris Robinson
45b65366bb
Improve some checks for compiler analysis
2018-12-02 15:29:26 -08:00
Chris Robinson
d06f76957c
Remove althrd_yield
2018-11-26 23:06:49 -08:00
Chris Robinson
2d45ec8dc3
Use a standard mutex for the remaining locks
2018-11-26 22:06:53 -08:00
Chris Robinson
68eef6abb4
Use a standard mutex for the source and effect slot locks
2018-11-26 21:50:48 -08:00
Chris Robinson
2e73c2ca92
Use a standard mutex for the proplock
2018-11-26 21:39:31 -08:00
Chris Robinson
d8b9230ee4
Use a standard mutex for the backend lock
2018-11-26 21:39:31 -08:00
Chris Robinson
df3dcc879f
Get rid of the last ATOMIC macro uses
2018-11-26 18:19:58 -08:00
Chris Robinson
ec97360352
Avoid a separate function to clean up effect slots
2018-11-25 09:23:01 -08:00
Chris Robinson
9f2a77f788
Use RAII when handling the mixer's FPU state
2018-11-21 09:07:02 -08:00
Chris Robinson
191ea90de3
Use atomic_flags and atomic<bools>s where appropriate
2018-11-20 10:45:01 -08:00
Chris Robinson
1e31ac469e
Store effect slots as unique_ptrs
2018-11-20 10:01:20 -08:00
Chris Robinson
29558c091b
Use C++ more in alAuxEffectSlot.cpp
2018-11-20 09:47:49 -08:00
Chris Robinson
eb2937de84
Avoid another case of a variable named the same as a type
2018-11-19 23:48:45 -08:00
Chris Robinson
8472a9d916
Use proper inheritence for the effect state objects
2018-11-19 22:34:26 -08:00
Chris Robinson
c5c537cc5f
Use proper inheritence for EffectStateFactory
2018-11-19 06:43:37 -08:00
Chris Robinson
e24435ef58
Remove the atomic exchange macros
2018-11-19 03:21:58 -08:00
Chris Robinson
c5142530d6
Simplify the RefCount type
2018-11-19 02:17:06 -08:00
Chris Robinson
6e114a7a70
Replace ATOMIC_REPLACE_HEAD with an inline function
2018-11-19 01:20:03 -08:00
Chris Robinson
362979cefb
Use a normal vector for effect sublists
2018-11-18 22:50:04 -08:00
Chris Robinson
e194d896de
Use constructors/destructors for ALeffectslot
2018-11-18 06:35:45 -08:00
Chris Robinson
f48be9d73b
Remove the pointer-specific atomic exchange macros
2018-11-18 03:59:39 -08:00
Chris Robinson
310770c531
Add and use new/delete operators to ALeffectslot
2018-11-18 02:52:46 -08:00
Chris Robinson
3eededf5d6
Use a normal vector for auxiliary effect slots
2018-11-18 02:39:27 -08:00
Chris Robinson
fa3c34268d
Move the ALCcontext definition to its own header
2018-11-17 23:02:27 -08:00
Chris Robinson
3bbfd0c099
Fix compilation with MSVC
2018-11-16 23:01:40 -08:00
Chris Robinson
0e0fe15b98
Convert alAuxEffectSlot.c to C++
2018-11-16 18:28:39 -08:00