Implement AL_DIRECT_FILTER_GAINHF_AUTO source property
[openal-soft.git] / OpenAL32 / Include / alSource.h
blob88732da9838f236f6d3a3f7a2ab27174b0ca3843
1 #ifndef _AL_SOURCE_H_
2 #define _AL_SOURCE_H_
4 #define AL_NUM_SOURCE_PARAMS 128
6 #include "alFilter.h"
7 #include "AL/al.h"
9 #define AL_DIRECT_FILTER 0x20005
10 #define AL_AUXILIARY_SEND_FILTER 0x20006
11 #define AL_AIR_ABSORPTION_FACTOR 0x20007
12 #define AL_ROOM_ROLLOFF_FACTOR 0x20008
13 #define AL_CONE_OUTER_GAINHF 0x20009
14 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
15 #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
16 #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
22 typedef struct ALbufferlistitem
24 ALuint buffer;
25 ALuint bufferstate;
26 ALuint flag;
27 struct ALbufferlistitem *next;
28 } ALbufferlistitem;
30 typedef struct ALsource_struct
32 ALfloat flPitch;
33 ALfloat flGain;
34 ALfloat flOuterGain;
35 ALfloat flMinGain;
36 ALfloat flMaxGain;
37 ALfloat flInnerAngle;
38 ALfloat flOuterAngle;
39 ALfloat flRefDistance;
40 ALfloat flMaxDistance;
41 ALfloat flRollOffFactor;
42 ALfloat vPosition[3];
43 ALfloat vVelocity[3];
44 ALfloat vOrientation[3];
45 ALboolean bHeadRelative;
46 ALboolean bLooping;
48 ALuint ulBufferID;
50 ALboolean inuse;
51 ALboolean play;
52 ALenum state;
53 ALuint position;
54 ALuint position_fraction;
55 struct ALbufferlistitem *queue; // Linked list of buffers in queue
56 ALuint BuffersInQueue; // Number of buffers in queue
57 ALuint BuffersProcessed; // Number of buffers already processed (played)
59 ALuint TotalBufferDataSize; // Total amount of data contained in the buffers queued for this source
60 ALuint BuffersPlayed; // Number of buffers played on this loop
61 ALuint BufferPosition; // Read position in audio data of current buffer
63 ALfilter DirectFilter;
65 ALfloat LastDrySample;
66 ALfloat LastWetSample;
68 ALboolean DryGainHFAuto;
70 // Index to itself
71 ALuint source;
73 ALint lBytesPlayed;
75 ALint lOffset;
76 ALint lOffsetType;
78 // Source Type (Static, Streaming, or Undetermined)
79 ALint lSourceType;
81 struct ALsource_struct *next;
82 } ALsource;
84 #ifdef __cplusplus
86 #endif
88 #endif