 |
CUGL 1.3
Cornell University Game Library
|
38 #ifndef __CU_AUDIO_FADER_H__
39 #define __CU_AUDIO_FADER_H__
41 #include "CUAudioNode.h"
124 Uint32
doFadeIn(
float* buffer, Uint32 frames);
145 Uint32
doFadeOut(
float* buffer, Uint32 frames);
172 #pragma mark Constructors
198 virtual bool init()
override;
212 virtual bool init(Uint8 channels, Uint32 rate)
override;
224 bool init(
const std::shared_ptr<AudioNode>& input);
232 virtual void dispose()
override;
235 #pragma mark Static Constructors
245 static std::shared_ptr<AudioFader>
alloc() {
246 std::shared_ptr<AudioFader> result = std::make_shared<AudioFader>();
247 return (result->init() ? result :
nullptr);
260 static std::shared_ptr<AudioFader>
alloc(Uint8 channels, Uint32 rate) {
261 std::shared_ptr<AudioFader> result = std::make_shared<AudioFader>();
262 return (result->init(channels,rate) ? result :
nullptr);
275 static std::shared_ptr<AudioFader>
alloc(
const std::shared_ptr<AudioNode>& input) {
276 std::shared_ptr<AudioFader> result = std::make_shared<AudioFader>();
277 return (result->init(input) ? result :
nullptr);
281 #pragma mark Fade In/Out Support
292 bool attach(
const std::shared_ptr<AudioNode>& node);
301 std::shared_ptr<AudioNode>
detach();
324 void fadeIn(
double duration);
352 void fadeOut(
double duration,
bool wrap=
false);
410 void fadePause(
double fadein,
double fadeout);
413 #pragma mark Overriden Methods
429 virtual bool pause()
override;
438 virtual bool resume()
override;
458 virtual Uint32
read(
float* buffer, Uint32 frames)
override;
478 virtual bool mark()
override;
489 virtual bool unmark()
override;
499 virtual bool reset()
override;
511 virtual Sint64
advance(Uint32 frames)
override;
533 virtual Sint64
setPosition(Uint32 position)
override;
555 virtual double setElapsed(
double time)
override;
bool _dipstart
Definition: CUAudioFader.h:102
virtual double getElapsed() const override
virtual bool init() override
virtual bool isPaused() override
void fadePause(double duration)
std::shared_ptr< AudioNode > detach()
std::mutex _mutex
Definition: CUAudioFader.h:74
static std::shared_ptr< AudioFader > alloc(const std::shared_ptr< AudioNode > &input)
Definition: CUAudioFader.h:275
virtual Sint64 setPosition(Uint32 position) override
bool attach(const std::shared_ptr< AudioNode > &node)
virtual Uint32 read(float *buffer, Uint32 frames) override
void fadeOut(double duration, bool wrap=false)
virtual bool unmark() override
Uint32 doFadePause(float *buffer, Uint32 frames)
Sint64 _outmark
Definition: CUAudioFader.h:84
virtual Sint64 advance(Uint32 frames) override
static std::shared_ptr< AudioFader > alloc()
Definition: CUAudioFader.h:245
Uint64 _fadedip
Definition: CUAudioFader.h:94
Uint64 _fadeout
Definition: CUAudioFader.h:86
Uint32 doFadeIn(float *buffer, Uint32 frames)
std::shared_ptr< AudioNode > getInput()
Definition: CUAudioFader.h:308
~AudioFader()
Definition: CUAudioFader.h:184
virtual void dispose() override
Uint64 _fadein
Definition: CUAudioFader.h:80
virtual double setElapsed(double time) override
virtual bool pause() override
std::shared_ptr< AudioNode > _input
Definition: CUAudioFader.h:71
virtual double setRemaining(double time) override
Sint64 _inmark
Definition: CUAudioFader.h:78
virtual bool resume() override
bool _outdone
Definition: CUAudioFader.h:88
virtual bool reset() override
Uint64 _dipstop
Definition: CUAudioFader.h:98
Uint32 doFadeOut(float *buffer, Uint32 frames)
static std::shared_ptr< AudioFader > alloc(Uint8 channels, Uint32 rate)
Definition: CUAudioFader.h:260
Definition: CUAudioFader.h:68
bool _outkeep
Definition: CUAudioFader.h:90
virtual bool completed() override
virtual bool mark() override
void fadeIn(double duration)
virtual double getRemaining() const override
Definition: CUAudioNode.h:93
Sint64 _dipmark
Definition: CUAudioFader.h:96
bool _diphalf
Definition: CUAudioFader.h:100
virtual Sint64 getPosition() const override