Implement AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO property
[openal-soft.git] / OpenAL32 / Include / alSource.h
blob5737bad92b50818c5f38400f8f4bd76b17b4fe2c
1 #ifndef _AL_SOURCE_H_
2 #define _AL_SOURCE_H_
4 #define AL_NUM_SOURCE_PARAMS 128
6 #include "alFilter.h"
7 #include "alAuxEffectSlot.h"
8 #include "AL/al.h"
10 #define AL_DIRECT_FILTER 0x20005
11 #define AL_AUXILIARY_SEND_FILTER 0x20006
12 #define AL_AIR_ABSORPTION_FACTOR 0x20007
13 #define AL_ROOM_ROLLOFF_FACTOR 0x20008
14 #define AL_CONE_OUTER_GAINHF 0x20009
15 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
16 #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
17 #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
23 typedef struct ALbufferlistitem
25 ALuint buffer;
26 ALuint bufferstate;
27 ALuint flag;
28 struct ALbufferlistitem *next;
29 } ALbufferlistitem;
31 typedef struct ALsource_struct
33 ALfloat flPitch;
34 ALfloat flGain;
35 ALfloat flOuterGain;
36 ALfloat flMinGain;
37 ALfloat flMaxGain;
38 ALfloat flInnerAngle;
39 ALfloat flOuterAngle;
40 ALfloat flRefDistance;
41 ALfloat flMaxDistance;
42 ALfloat flRollOffFactor;
43 ALfloat vPosition[3];
44 ALfloat vVelocity[3];
45 ALfloat vOrientation[3];
46 ALboolean bHeadRelative;
47 ALboolean bLooping;
49 ALuint ulBufferID;
51 ALboolean inuse;
52 ALboolean play;
53 ALenum state;
54 ALuint position;
55 ALuint position_fraction;
56 struct ALbufferlistitem *queue; // Linked list of buffers in queue
57 ALuint BuffersInQueue; // Number of buffers in queue
58 ALuint BuffersProcessed; // Number of buffers already processed (played)
60 ALuint TotalBufferDataSize; // Total amount of data contained in the buffers queued for this source
61 ALuint BuffersPlayed; // Number of buffers played on this loop
62 ALuint BufferPosition; // Read position in audio data of current buffer
64 ALfilter DirectFilter;
66 struct {
67 ALeffectslot Slot;
68 ALfilter WetFilter;
69 } Send[1];
71 ALfloat LastDrySample;
72 ALfloat LastWetSample;
74 ALboolean DryGainHFAuto;
75 ALboolean WetGainHFAuto;
76 ALfloat OuterGainHF;
78 ALfloat AirAbsorptionFactor;
80 // Index to itself
81 ALuint source;
83 ALint lBytesPlayed;
85 ALint lOffset;
86 ALint lOffsetType;
88 // Source Type (Static, Streaming, or Undetermined)
89 ALint lSourceType;
91 struct ALsource_struct *next;
92 } ALsource;
94 #ifdef __cplusplus
96 #endif
98 #endif