10 #define AL_DIRECT_FILTER 0x20005
11 #define AL_AUXILIARY_SEND_FILTER 0x20006
12 #define AL_AIR_ABSORPTION_FACTOR 0x20007
13 #define AL_ROOM_ROLLOFF_FACTOR 0x20008
14 #define AL_CONE_OUTER_GAINHF 0x20009
15 #define AL_DIRECT_FILTER_GAINHF_AUTO 0x2000A
16 #define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO 0x2000B
17 #define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO 0x2000C
30 RESAMPLER_DEFAULT
= LINEAR_RESAMPLER
32 extern resampler_t DefaultResampler
;
34 typedef struct ALbufferlistitem
36 struct ALbuffer
*buffer
;
37 struct ALbufferlistitem
*next
;
40 typedef struct ALsource
49 ALfloat flRefDistance
;
50 ALfloat flMaxDistance
;
51 ALfloat flRollOffFactor
;
54 ALfloat vOrientation
[3];
55 ALboolean bHeadRelative
;
59 resampler_t Resampler
;
63 ALuint position_fraction
;
65 struct ALbuffer
*Buffer
;
67 struct ALbufferlistitem
*queue
; // Linked list of buffers in queue
68 ALuint BuffersInQueue
; // Number of buffers in queue
69 ALuint BuffersPlayed
; // Number of buffers played on this loop
71 ALfilter DirectFilter
;
74 struct ALeffectslot
*Slot
;
78 ALboolean DryGainHFAuto
;
79 ALboolean WetGainAuto
;
80 ALboolean WetGainHFAuto
;
83 ALfloat AirAbsorptionFactor
;
84 ALfloat RoomRolloffFactor
;
85 ALfloat DopplerFactor
;
90 // Source Type (Static, Streaming, or Undetermined)
93 // Current gains, which are ramped while mixed
94 ALfloat DryGains
[OUTPUTCHANNELS
];
95 ALfloat WetGains
[MAX_SENDS
];
98 // Current target parameters used for mixing
99 ALboolean NeedsUpdate
;
101 ALfloat DryGains
[OUTPUTCHANNELS
];
102 ALfloat WetGains
[MAX_SENDS
];
107 ALfloat history
[OUTPUTCHANNELS
];
111 ALfloat history
[OUTPUTCHANNELS
*2];
117 struct ALsource
*next
;
120 ALvoid
ReleaseALSources(ALCcontext
*Context
);