4 #define AL_NUM_SOURCE_PARAMS 128
6 /* This cannot be changed without working on the code! */
13 #define AL_DIRECT_FILTER 0x20005
14 #define AL_AUXILIARY_SEND_FILTER 0x20006
15 #define AL_AIR_ABSORPTION_FACTOR 0x20007
16 #define AL_ROOM_ROLLOFF_FACTOR 0x20008
17 #define AL_CONE_OUTER_GAINHF 0x20009
18 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
19 #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
20 #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
26 typedef struct ALbufferlistitem
31 struct ALbufferlistitem
*next
;
34 typedef struct ALsource
43 ALfloat flRefDistance
;
44 ALfloat flMaxDistance
;
45 ALfloat flRollOffFactor
;
48 ALfloat vOrientation
[3];
49 ALboolean bHeadRelative
;
59 ALuint position_fraction
;
61 struct ALbufferlistitem
*queue
; // Linked list of buffers in queue
62 ALuint BuffersInQueue
; // Number of buffers in queue
64 ALuint TotalBufferDataSize
; // Total amount of data contained in the buffers queued for this source
65 ALuint BuffersPlayed
; // Number of buffers played on this loop
67 ALfilter DirectFilter
;
70 struct ALeffectslot
*Slot
;
75 ALboolean DryGainHFAuto
;
76 ALboolean WetGainAuto
;
77 ALboolean WetGainHFAuto
;
82 ALfloat AirAbsorptionFactor
;
84 ALfloat RoomRolloffFactor
;
86 ALfloat DopplerFactor
;
94 // Source Type (Static, Streaming, or Undetermined)
97 // Current gains, which are ramped while mixed
98 ALfloat DryGains
[OUTPUTCHANNELS
];
100 ALboolean FirstStart
;
102 struct ALsource
*next
;
105 ALvoid
ReleaseALSources(ALCcontext
*Context
);