4 #define AL_NUM_SOURCE_PARAMS 128
12 #define AL_DIRECT_FILTER 0x20005
13 #define AL_AUXILIARY_SEND_FILTER 0x20006
14 #define AL_AIR_ABSORPTION_FACTOR 0x20007
15 #define AL_ROOM_ROLLOFF_FACTOR 0x20008
16 #define AL_CONE_OUTER_GAINHF 0x20009
17 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
18 #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
19 #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
25 typedef struct ALbufferlistitem
27 struct ALbuffer
*buffer
;
30 struct ALbufferlistitem
*next
;
33 typedef struct ALsource
42 ALfloat flRefDistance
;
43 ALfloat flMaxDistance
;
44 ALfloat flRollOffFactor
;
47 ALfloat vOrientation
[3];
48 ALboolean bHeadRelative
;
54 ALuint position_fraction
;
56 struct ALbuffer
*Buffer
;
58 struct ALbufferlistitem
*queue
; // Linked list of buffers in queue
59 ALuint BuffersInQueue
; // Number of buffers in queue
60 ALuint BuffersPlayed
; // Number of buffers played on this loop
62 ALfilter DirectFilter
;
65 struct ALeffectslot
*Slot
;
69 ALboolean DryGainHFAuto
;
70 ALboolean WetGainAuto
;
71 ALboolean WetGainHFAuto
;
74 ALfloat AirAbsorptionFactor
;
75 ALfloat RoomRolloffFactor
;
76 ALfloat DopplerFactor
;
81 // Source Type (Static, Streaming, or Undetermined)
84 // Current gains, which are ramped while mixed
85 ALfloat DryGains
[OUTPUTCHANNELS
];
86 ALfloat WetGains
[MAX_SENDS
];
89 // Current target parameters used for mixing
91 ALfloat DryGains
[OUTPUTCHANNELS
];
92 ALfloat WetGains
[MAX_SENDS
];
101 ALfloat history
[OUTPUTCHANNELS
*2];
107 struct ALsource
*next
;
110 ALvoid
ReleaseALSources(ALCcontext
*Context
);