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
;
28 struct ALbufferlistitem
*next
;
31 typedef struct ALsource
40 ALfloat flRefDistance
;
41 ALfloat flMaxDistance
;
42 ALfloat flRollOffFactor
;
45 ALfloat vOrientation
[3];
46 ALboolean bHeadRelative
;
52 ALuint position_fraction
;
54 struct ALbuffer
*Buffer
;
56 struct ALbufferlistitem
*queue
; // Linked list of buffers in queue
57 ALuint BuffersInQueue
; // Number of buffers in queue
58 ALuint BuffersPlayed
; // Number of buffers played on this loop
60 ALfilter DirectFilter
;
63 struct ALeffectslot
*Slot
;
67 ALboolean DryGainHFAuto
;
68 ALboolean WetGainAuto
;
69 ALboolean WetGainHFAuto
;
72 ALfloat AirAbsorptionFactor
;
73 ALfloat RoomRolloffFactor
;
74 ALfloat DopplerFactor
;
79 // Source Type (Static, Streaming, or Undetermined)
82 // Current gains, which are ramped while mixed
83 ALfloat DryGains
[OUTPUTCHANNELS
];
84 ALfloat WetGains
[MAX_SENDS
];
87 // Current target parameters used for mixing
89 ALfloat DryGains
[OUTPUTCHANNELS
];
90 ALfloat WetGains
[MAX_SENDS
];
99 ALfloat history
[OUTPUTCHANNELS
*2];
105 struct ALsource
*next
;
108 ALvoid
ReleaseALSources(ALCcontext
*Context
);