21 RESAMPLER_DEFAULT
= LINEAR_RESAMPLER
23 extern resampler_t DefaultResampler
;
25 extern const ALsizei ResamplerPadding
[RESAMPLER_MAX
];
26 extern const ALsizei ResamplerPrePadding
[RESAMPLER_MAX
];
29 typedef struct ALbufferlistitem
31 struct ALbuffer
*buffer
;
32 struct ALbufferlistitem
*next
;
33 struct ALbufferlistitem
*prev
;
36 typedef struct ALsource
45 ALfloat flRefDistance
;
46 ALfloat flMaxDistance
;
47 ALfloat flRollOffFactor
;
50 ALfloat vOrientation
[3];
51 ALboolean bHeadRelative
;
55 resampler_t Resampler
;
59 ALuint position_fraction
;
61 struct ALbuffer
*Buffer
;
63 ALbufferlistitem
*queue
; // Linked list of buffers in queue
64 ALuint BuffersInQueue
; // Number of buffers in queue
65 ALuint BuffersPlayed
; // Number of buffers played on this loop
67 ALfilter DirectFilter
;
70 struct ALeffectslot
*Slot
;
74 ALboolean DryGainHFAuto
;
75 ALboolean WetGainAuto
;
76 ALboolean WetGainHFAuto
;
79 ALfloat AirAbsorptionFactor
;
80 ALfloat RoomRolloffFactor
;
81 ALfloat DopplerFactor
;
86 // Source Type (Static, Streaming, or Undetermined)
89 // Current target parameters used for mixing
90 ALboolean NeedsUpdate
;
94 ALfloat DryGains
[MAXCHANNELS
];
96 ALfloat history
[MAXCHANNELS
*2];
101 ALfloat history
[MAXCHANNELS
];
105 ALvoid (*Update
)(struct ALsource
*self
, const ALCcontext
*context
);
110 #define ALsource_Update(s,a) ((s)->Update(s,a))
112 ALvoid
ReleaseALSources(ALCcontext
*Context
);