32 Commits

Author SHA1 Message Date
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