11 #define DEFAULT_SENDS 2
21 typedef struct ALbufferlistitem
{
22 ATOMIC(struct ALbufferlistitem
*) next
;
24 struct ALbuffer
*buffers
[];
28 typedef struct ALsource
{
29 /** Source properties. */
39 ALfloat RolloffFactor
;
43 ALfloat Orientation
[2][3];
44 ALboolean HeadRelative
;
46 enum DistanceModel DistanceModel
;
47 enum Resampler Resampler
;
48 ALboolean DirectChannels
;
49 enum SpatializeMode Spatialize
;
51 ALboolean DryGainHFAuto
;
52 ALboolean WetGainAuto
;
53 ALboolean WetGainHFAuto
;
56 ALfloat AirAbsorptionFactor
;
57 ALfloat RoomRolloffFactor
;
58 ALfloat DopplerFactor
;
60 /* NOTE: Stereo pan angles are specified in radians, counter-clockwise
61 * rather than clockwise.
67 /** Direct filter and auxiliary send info. */
76 struct ALeffectslot
*Slot
;
85 * Last user-specified offset, and the offset type (bytes, samples, or
91 /** Source type (static, streaming, or undetermined) */
94 /** Source state (initial, playing, paused, or stopped) */
97 /** Source Buffer Queue head. */
99 ALbufferlistitem
*queue
;
101 ATOMIC_FLAG PropsClean
;
103 /* Index into the context's Voices array. Lazily updated, only checked and
104 * reset when looking up the voice.
112 void UpdateAllSourceProps(ALCcontext
*context
);
114 ALvoid
ReleaseALSources(ALCcontext
*Context
);