34 #ifndef __CU_AUDIO_PANNER_H__
35 #define __CU_AUDIO_PANNER_H__
36 #include "CUAudioNode.h"
72 std::shared_ptr<AudioNode> _input;
74 std::atomic<float>* _mapper;
77 #pragma mark Constructors
107 virtual bool init()
override;
121 virtual bool init(Uint8 channels, Uint32 rate)
override;
137 bool init(Uint8 channels, Uint8 field, Uint32 rate);
145 virtual void dispose()
override;
148 #pragma mark Static Constructors
161 static std::shared_ptr<AudioPanner>
alloc() {
162 std::shared_ptr<AudioPanner> result = std::make_shared<AudioPanner>();
163 return (result->init() ? result :
nullptr);
178 static std::shared_ptr<AudioPanner>
alloc(Uint8 channels, Uint32 rate) {
179 std::shared_ptr<AudioPanner> result = std::make_shared<AudioPanner>();
180 return (result->init(channels,rate) ? result :
nullptr);
197 static std::shared_ptr<AudioPanner>
alloc(Uint8 channels, Uint8 field, Uint32 rate) {
198 std::shared_ptr<AudioPanner> result = std::make_shared<AudioPanner>();
199 return (result->init(channels,field,rate) ? result :
nullptr);
203 #pragma mark Audio Graph
214 bool attach(
const std::shared_ptr<AudioNode>& node);
223 std::shared_ptr<AudioNode>
detach();
230 std::shared_ptr<AudioNode>
getInput()
const {
return _input; }
248 float getPan(Uint32 field, Uint32 channel)
const;
261 void setPan(Uint32 field, Uint32 channel,
float value);
264 #pragma mark Playback Control
295 virtual Uint32
read(
float* buffer, Uint32 frames)
override;
298 #pragma mark Optional Methods
316 virtual bool mark()
override;
332 virtual bool unmark()
override;
349 virtual bool reset()
override;
366 virtual Sint64
advance(Uint32 frames)
override;
400 virtual Sint64
setPosition(Uint32 position)
override;
434 virtual double setElapsed(
double time)
override;
std::shared_ptr< AudioNode > getInput() const
Definition: CUAudioPanner.h:230
static std::shared_ptr< AudioPanner > alloc(Uint8 channels, Uint8 field, Uint32 rate)
Definition: CUAudioPanner.h:197
virtual double getElapsed() const override
void setPan(Uint32 field, Uint32 channel, float value)
virtual bool mark() override
static std::shared_ptr< AudioPanner > alloc()
Definition: CUAudioPanner.h:161
virtual bool unmark() override
virtual double setElapsed(double time) override
Definition: CUAudioNode.h:93
float getPan(Uint32 field, Uint32 channel) const
virtual void dispose() override
virtual Sint64 advance(Uint32 frames) override
virtual Uint32 read(float *buffer, Uint32 frames) override
Uint32 getField() const
Definition: CUAudioPanner.h:237
virtual bool completed() override
Definition: CUAudioPanner.h:61
virtual double setRemaining(double time) override
std::shared_ptr< AudioNode > detach()
virtual Sint64 getPosition() const override
virtual bool reset() override
bool attach(const std::shared_ptr< AudioNode > &node)
static std::shared_ptr< AudioPanner > alloc(Uint8 channels, Uint32 rate)
Definition: CUAudioPanner.h:178
virtual double getRemaining() const override
~AudioPanner()
Definition: CUAudioPanner.h:93
virtual bool init() override
Definition: CUAction.h:51
virtual Sint64 setPosition(Uint32 position) override