47 #ifndef __CU_AUDIO_OUTPUT_H__
48 #define __CU_AUDIO_OUTPUT_H__
50 #include "CUAudioNode.h"
51 #include <cugl/math/dsp/CUBiquadIIR.h>
52 #include <unordered_set>
114 std::atomic<Uint64> _overhd;
117 SDL_AudioDeviceID _device;
119 SDL_AudioSpec _audiospec;
122 std::atomic<bool> _active;
125 std::shared_ptr<AudioNode> _input;
128 SDL_AudioCVT _audiocvt;
131 #pragma mark AudioManager Methods
152 virtual bool init()
override;
177 virtual bool init(Uint8 channels, Uint32 rate)
override;
211 bool init(Uint8 channels, Uint32 rate, Uint32 buffer);
233 bool init(
const std::string& device);
266 bool init(
const std::string& device, Uint8 channels, Uint32 rate, Uint32 buffer);
274 virtual void dispose()
override;
285 void setActive(
bool active);
308 #pragma mark Data Access
314 const SDL_AudioDeviceID
getAUID()
const {
return _device; }
357 #pragma mark Audio Graph
368 bool attach(
const std::shared_ptr<AudioNode>& node);
377 std::shared_ptr<AudioNode>
detach();
384 std::shared_ptr<AudioNode>
getInput() {
return _input; }
387 #pragma mark Playback Control
396 virtual bool pause()
override;
407 virtual bool resume()
override;
439 virtual Uint32
read(
float* buffer, Uint32 frames)
override;
464 #pragma mark Optional Methods
482 virtual bool mark()
override;
498 virtual bool unmark()
override;
515 virtual bool reset()
override;
532 virtual Sint64
advance(Uint32 frames)
override;
566 virtual Sint64
setPosition(Uint32 position)
override;
600 virtual double setElapsed(
double time)
override;
std::shared_ptr< AudioNode > detach()
Definition: CUAudioManager.h:74
bool attach(const std::shared_ptr< AudioNode > &node)
virtual Sint64 advance(Uint32 frames) override
virtual Sint64 getPosition() const override
bool isDefault() const
Definition: CUAudioOutput.h:331
Uint16 getCapacity() const
Definition: CUAudioOutput.h:353
virtual Sint64 setPosition(Uint32 position) override
Definition: CUAudioNode.h:93
virtual bool completed() override
Definition: CUAudioOutput.h:108
virtual double setElapsed(double time) override
std::shared_ptr< AudioNode > getInput()
Definition: CUAudioOutput.h:384
virtual bool unmark() override
virtual bool reset() override
virtual Uint32 read(float *buffer, Uint32 frames) override
virtual double getElapsed() const override
const std::string & getDevice() const
virtual double setRemaining(double time) override
Uint64 getOverhead() const
virtual double getRemaining() const override
virtual bool pause() override
const SDL_AudioDeviceID getAUID() const
Definition: CUAudioOutput.h:314
Definition: CUAction.h:51
virtual bool mark() override
virtual bool resume() override