 |
CUGL 1.3
Cornell University Game Library
|
35 #ifndef __CU_AUDIO_SPINNER_H__
36 #define __CU_AUDIO_SPINNER_H__
37 #include "CUAudioNode.h"
38 #include <cugl/math/dsp/cu_dsp.h>
208 std::atomic<Plan> _inplan;
210 std::atomic<Plan> _outplan;
212 std::atomic<float>* _inlines;
214 std::atomic<float>* _outlines;
216 std::atomic<float> _angle;
219 std::atomic<float> _crossover;
221 std::atomic<bool> _dirtycross;
231 std::shared_ptr<AudioNode> _input;
242 Plan getDefaultPlan(Uint8 channels);
254 bool isValidPlan(
Plan plan, Uint8 channels);
265 void initPlan(
Plan plan, std::atomic<float>* lines);
268 #pragma mark Constructors
295 virtual bool init()
override;
310 virtual bool init(Uint8 channels, Uint32 rate)
override;
325 bool init(Uint8 channels, Uint8 field, Uint32 rate);
333 virtual void dispose()
override;
336 #pragma mark Static Constructors
346 static std::shared_ptr<AudioSpinner>
alloc() {
347 std::shared_ptr<AudioSpinner> result = std::make_shared<AudioSpinner>();
348 return (result->init() ? result :
nullptr);
364 static std::shared_ptr<AudioSpinner>
alloc(Uint8 channels, Uint32 rate) {
365 std::shared_ptr<AudioSpinner> result = std::make_shared<AudioSpinner>();
366 return (result->init(channels,rate) ? result :
nullptr);
382 static std::shared_ptr<AudioSpinner>
alloc(Uint8 channels, Uint8 field, Uint32 rate) {
383 std::shared_ptr<AudioSpinner> result = std::make_shared<AudioSpinner>();
384 return (result->init(channels,field,rate) ? result :
nullptr);
388 #pragma mark Audio Graph
399 bool attach(
const std::shared_ptr<AudioNode>& node);
408 std::shared_ptr<AudioNode>
detach();
415 std::shared_ptr<AudioNode>
getInput() {
return _input; }
418 #pragma mark Sound Field
522 #pragma mark Playback Control
575 virtual Uint32
read(
float* buffer, Uint32 frames)
override;
578 #pragma mark Optional Methods
596 virtual bool mark()
override;
612 virtual bool unmark()
override;
629 virtual bool reset()
override;
646 virtual Sint64
advance(Uint32 frames)
override;
680 virtual Sint64
setPosition(Uint32 position)
override;
714 virtual double setElapsed(
double time)
override;
void setChannelOrientation(Uint32 channel, float angle)
virtual double getRemaining() const override
bool attach(const std::shared_ptr< AudioNode > &node)
Definition: CUAudioSpinner.h:201
Definition: CUAudioSpinner.h:128
Definition: CUAudioSpinner.h:104
float getSubwoofer() const
virtual void dispose() override
Plan
Definition: CUAudioSpinner.h:90
void setFieldOrientation(Uint32 channel, float angle)
virtual Sint64 advance(Uint32 frames) override
float getChannelOrientation(Uint32 channel) const
void setFieldPlan(Plan plan)
Plan getChannelPlan() const
Definition: CUBiquadIIR.h:106
virtual bool unmark() override
Definition: CUAudioSpinner.h:156
void setChannelPlan(Plan plan)
~AudioSpinner()
Definition: CUAudioSpinner.h:284
virtual Sint64 setPosition(Uint32 position) override
static std::shared_ptr< AudioSpinner > alloc(Uint8 channels, Uint32 rate)
Definition: CUAudioSpinner.h:364
virtual Uint32 read(float *buffer, Uint32 frames) override
virtual double getElapsed() const override
virtual bool init() override
Definition: CUAudioSpinner.h:165
Definition: CUAudioSpinner.h:147
virtual Sint64 getPosition() const override
static std::shared_ptr< AudioSpinner > alloc(Uint8 channels, Uint8 field, Uint32 rate)
Definition: CUAudioSpinner.h:382
virtual bool reset() override
Definition: CUAudioSpinner.h:138
void setSubwoofer(float frequency)
Definition: CUAudioSpinner.h:194
std::shared_ptr< AudioNode > getInput()
Definition: CUAudioSpinner.h:415
Plan getFieldPlan() const
Definition: CUAudioSpinner.h:77
virtual double setElapsed(double time) override
static std::shared_ptr< AudioSpinner > alloc()
Definition: CUAudioSpinner.h:346
Definition: CUAudioSpinner.h:111
Definition: CUAudioSpinner.h:96
Definition: CUAudioSpinner.h:174
Definition: CUAudioSpinner.h:184
void setAngle(float angle)
virtual bool completed() override
std::shared_ptr< AudioNode > detach()
float getFieldOrientation(Uint32 channel) const
Definition: CUAudioNode.h:93
virtual double setRemaining(double time) override
virtual bool mark() override
Definition: CUAudioSpinner.h:120