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
31 extern resampler_t DefaultResampler
;
33 typedef struct ALbufferlistitem
35 struct ALbuffer
*buffer
;
36 struct ALbufferlistitem
*next
;
39 typedef struct ALsource
48 ALfloat flRefDistance
;
49 ALfloat flMaxDistance
;
50 ALfloat flRollOffFactor
;
53 ALfloat vOrientation
[3];
54 ALboolean bHeadRelative
;
58 resampler_t Resampler
;
62 ALuint position_fraction
;
64 struct ALbuffer
*Buffer
;
66 struct ALbufferlistitem
*queue
; // Linked list of buffers in queue
67 ALuint BuffersInQueue
; // Number of buffers in queue
68 ALuint BuffersPlayed
; // Number of buffers played on this loop
70 ALfilter DirectFilter
;
73 struct ALeffectslot
*Slot
;
77 ALboolean DryGainHFAuto
;
78 ALboolean WetGainAuto
;
79 ALboolean WetGainHFAuto
;
82 ALfloat AirAbsorptionFactor
;
83 ALfloat RoomRolloffFactor
;
84 ALfloat DopplerFactor
;
89 // Source Type (Static, Streaming, or Undetermined)
92 // Current gains, which are ramped while mixed
93 ALfloat DryGains
[OUTPUTCHANNELS
];
94 ALfloat WetGains
[MAX_SENDS
];
97 // Current target parameters used for mixing
98 ALboolean NeedsUpdate
;
100 ALfloat DryGains
[OUTPUTCHANNELS
];
101 ALfloat WetGains
[MAX_SENDS
];
106 ALfloat history
[OUTPUTCHANNELS
];
110 ALfloat history
[OUTPUTCHANNELS
*2];
116 struct ALsource
*next
;
119 ALvoid
ReleaseALSources(ALCcontext
*Context
);