Implement AL_CONE_OUTER_GAINHF source property
[openal-soft.git] / OpenAL32 / Include / alSource.h
blob4493c00643a79d4ba3720a8c68bf7436ec18dff0
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;
69 ALfloat OuterGainHF;
71 // Index to itself
72 ALuint source;
74 ALint lBytesPlayed;
76 ALint lOffset;
77 ALint lOffsetType;
79 // Source Type (Static, Streaming, or Undetermined)
80 ALint lSourceType;
82 struct ALsource_struct *next;
83 } ALsource;
85 #ifdef __cplusplus
87 #endif
89 #endif