Base class to support playback of tunes. More...

#include <RingTonePlayer.h>

Public Types

using PrepareNoteDelegate = Delegate< void(unsigned frequency)>
 
using CompleteDelegate = Delegate< void()>
 
using PlayNoteDelegate = Delegate< void()>
 

Public Member Functions

 Player ()
 
 ~Player ()
 
void begin (RingTone::Parser *parser)
 Initialise player. More...
 
void end ()
 Stop the player and un-reference parser. More...
 
bool start (unsigned delayMs=0)
 Start or continue playing the tune. More...
 
void stop ()
 Stop/pause playing the tune. More...
 
void resetPlayTime ()
 Stop playback and reset play time. More...
 
bool isStarted ()
 Determine if a tune is being played. More...
 
void onPrepareNote (PrepareNoteDelegate delegate)
 
void onPlayNote (PlayNoteDelegate delegate)
 
void onComplete (CompleteDelegate delegate)
 
const NanoTime::Time< uint32_t > getPlayTime ()
 
unsigned getSpeed () const
 Get playback speed factor. More...
 
unsigned setSpeed (unsigned speed)
 Set playback speed factor. More...
 
unsigned adjustSpeed (int adjust)
 Make a relative adjustment to playback speed. More...
 

Protected Member Functions

virtual void prepareNote (unsigned frequency)
 Prepare a tone to be played @frequency Frequency of tone, in Hz. 0 means 'mute'. More...
 
virtual void playNote ()
 Play a prepared tone. More...
 
virtual void complete ()
 Override this method to be called when a tune has finished playing. More...
 

Detailed Description

Base class to support playback of tunes.

Note
This class doesn't produce any sound. To do this provide set the onPrepareNote and onPlayNote callbacks, or override the prepareNote and playNote methods in an inherited class.

Member Typedef Documentation

◆ CompleteDelegate

◆ PlayNoteDelegate

◆ PrepareNoteDelegate

Constructor & Destructor Documentation

◆ Player()

RingTone::Player::Player ( )
inline

◆ ~Player()

RingTone::Player::~Player ( )
inline

Member Function Documentation

◆ adjustSpeed()

unsigned RingTone::Player::adjustSpeed ( int  adjust)
inline

Make a relative adjustment to playback speed.

Return values
unsignedNew speed factor

◆ begin()

void RingTone::Player::begin ( RingTone::Parser parser)

Initialise player.

Parameters
parserThe source of ringtone data
Note
We don't own the parser, just take a reference

◆ complete()

virtual void RingTone::Player::complete ( )
inlineprotectedvirtual

Override this method to be called when a tune has finished playing.

Note
This doesn't get called if manually stopped

◆ end()

void RingTone::Player::end ( )

Stop the player and un-reference parser.

◆ getPlayTime()

const NanoTime::Time<uint32_t> RingTone::Player::getPlayTime ( )
inline

◆ getSpeed()

unsigned RingTone::Player::getSpeed ( ) const
inline

Get playback speed factor.

Return values
unsigned100 = normal speed, 50 = half speed, 200 = double speed, etc.

◆ isStarted()

bool RingTone::Player::isStarted ( )
inline

Determine if a tune is being played.

◆ onComplete()

void RingTone::Player::onComplete ( CompleteDelegate  delegate)
inline

◆ onPlayNote()

void RingTone::Player::onPlayNote ( PlayNoteDelegate  delegate)
inline

◆ onPrepareNote()

void RingTone::Player::onPrepareNote ( PrepareNoteDelegate  delegate)
inline

◆ playNote()

virtual void RingTone::Player::playNote ( )
inlineprotectedvirtual

Play a prepared tone.

◆ prepareNote()

virtual void RingTone::Player::prepareNote ( unsigned  frequency)
inlineprotectedvirtual

Prepare a tone to be played @frequency Frequency of tone, in Hz. 0 means 'mute'.

◆ resetPlayTime()

void RingTone::Player::resetPlayTime ( )
inline

Stop playback and reset play time.

◆ setSpeed()

unsigned RingTone::Player::setSpeed ( unsigned  speed)
inline

Set playback speed factor.

Return values
unsignedNew speed factor

◆ start()

bool RingTone::Player::start ( unsigned  delayMs = 0)

Start or continue playing the tune.

◆ stop()

void RingTone::Player::stop ( )

Stop/pause playing the tune.


The documentation for this class was generated from the following file: