aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2017-04-17 21:16:01 -0700
committerChris Robinson <[email protected]>2017-04-17 21:16:01 -0700
commit14bc7baeb79f537cde9574934bee290908c43fb8 (patch)
treec4a902dfe02142296bbedfc9dbc25250a96e8333 /OpenAL32/Include
parent660971d0b73dc1abfc21827bd9b5e120a63944a2 (diff)
Store the source prop updates with the mixer voice
Also move its declaration and rename it for consistency.
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alSource.h57
-rw-r--r--OpenAL32/Include/alu.h61
2 files changed, 59 insertions, 59 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h
index 5b1e2547..265a8f47 100644
--- a/OpenAL32/Include/alSource.h
+++ b/OpenAL32/Include/alSource.h
@@ -15,7 +15,6 @@ extern "C" {
struct ALbuffer;
struct ALsource;
-struct ALsourceProps;
typedef struct ALbufferlistitem {
@@ -24,59 +23,6 @@ typedef struct ALbufferlistitem {
} ALbufferlistitem;
-struct ALsourceProps {
- ATOMIC(struct ALsourceProps*) next;
-
- ALfloat Pitch;
- ALfloat Gain;
- ALfloat OuterGain;
- ALfloat MinGain;
- ALfloat MaxGain;
- ALfloat InnerAngle;
- ALfloat OuterAngle;
- ALfloat RefDistance;
- ALfloat MaxDistance;
- ALfloat RollOffFactor;
- ALfloat Position[3];
- ALfloat Velocity[3];
- ALfloat Direction[3];
- ALfloat Orientation[2][3];
- ALboolean HeadRelative;
- enum DistanceModel DistanceModel;
- ALboolean DirectChannels;
-
- ALboolean DryGainHFAuto;
- ALboolean WetGainAuto;
- ALboolean WetGainHFAuto;
- ALfloat OuterGainHF;
-
- ALfloat AirAbsorptionFactor;
- ALfloat RoomRolloffFactor;
- ALfloat DopplerFactor;
-
- ALfloat StereoPan[2];
-
- ALfloat Radius;
-
- /** Direct filter and auxiliary send info. */
- struct {
- ALfloat Gain;
- ALfloat GainHF;
- ALfloat HFReference;
- ALfloat GainLF;
- ALfloat LFReference;
- } Direct;
- struct {
- struct ALeffectslot *Slot;
- ALfloat Gain;
- ALfloat GainHF;
- ALfloat HFReference;
- ALfloat GainLF;
- ALfloat LFReference;
- } Send[];
-};
-
-
typedef struct ALsource {
/** Source properties. */
ALfloat Pitch;
@@ -151,9 +97,6 @@ typedef struct ALsource {
ATOMIC_FLAG PropsClean;
- ATOMIC(struct ALsourceProps*) Update;
- ATOMIC(struct ALsourceProps*) FreeList;
-
/** Self ID */
ALuint id;
} ALsource;
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 6c3f3499..a2ba4fae 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -35,7 +35,6 @@ extern "C" {
#endif
struct ALsource;
-struct ALsourceProps;
struct ALbufferlistitem;
struct ALvoice;
struct ALeffectslot;
@@ -153,13 +152,69 @@ typedef struct SendParams {
} Gains;
} SendParams;
+
+struct ALvoiceProps {
+ ATOMIC(struct ALvoiceProps*) next;
+
+ ALfloat Pitch;
+ ALfloat Gain;
+ ALfloat OuterGain;
+ ALfloat MinGain;
+ ALfloat MaxGain;
+ ALfloat InnerAngle;
+ ALfloat OuterAngle;
+ ALfloat RefDistance;
+ ALfloat MaxDistance;
+ ALfloat RollOffFactor;
+ ALfloat Position[3];
+ ALfloat Velocity[3];
+ ALfloat Direction[3];
+ ALfloat Orientation[2][3];
+ ALboolean HeadRelative;
+ enum DistanceModel DistanceModel;
+ ALboolean DirectChannels;
+
+ ALboolean DryGainHFAuto;
+ ALboolean WetGainAuto;
+ ALboolean WetGainHFAuto;
+ ALfloat OuterGainHF;
+
+ ALfloat AirAbsorptionFactor;
+ ALfloat RoomRolloffFactor;
+ ALfloat DopplerFactor;
+
+ ALfloat StereoPan[2];
+
+ ALfloat Radius;
+
+ /** Direct filter and auxiliary send info. */
+ struct {
+ ALfloat Gain;
+ ALfloat GainHF;
+ ALfloat HFReference;
+ ALfloat GainLF;
+ ALfloat LFReference;
+ } Direct;
+ struct {
+ struct ALeffectslot *Slot;
+ ALfloat Gain;
+ ALfloat GainHF;
+ ALfloat HFReference;
+ ALfloat GainLF;
+ ALfloat LFReference;
+ } Send[];
+};
+
/* If not 'moving', gain targets are used directly without fading. */
#define VOICE_IS_MOVING (1<<0)
#define VOICE_IS_HRTF (1<<1)
#define VOICE_HAS_NFC (1<<2)
typedef struct ALvoice {
- struct ALsourceProps *Props;
+ struct ALvoiceProps *Props;
+
+ ATOMIC(struct ALvoiceProps*) Update;
+ ATOMIC(struct ALvoiceProps*) FreeList;
ATOMIC(struct ALsource*) Source;
ATOMIC(bool) Playing;
@@ -209,6 +264,8 @@ typedef struct ALvoice {
} Send[];
} ALvoice;
+void DeinitVoice(ALvoice *voice);
+
typedef const ALfloat* (*ResamplerFunc)(const InterpState *state,
const ALfloat *restrict src, ALsizei frac, ALint increment,