Abstract base class for audio. More...
#include <Audio.h>
Public Member Functions | |
Audio () | |
Default constructor. More... | |
virtual void | setSource (const std::string &filename)=0 |
Set audio source to be manipulated. More... | |
virtual const std::string & | getSource () const =0 |
Get audio source. More... | |
virtual void | setVolume (float volume)=0 |
Set the volume of the audio. More... | |
void | adjustVolume (float offset) |
Turn the volume up/down by a given offset. More... | |
virtual float | getVolume () const =0 |
Get the volume of the audio. More... | |
void | setMute (bool mute) |
Set whether or not the audio should be audible. More... | |
bool | isMuted () const |
Check if audio is muted or not. More... | |
virtual void | setPitch (float pitch)=0 |
Set the pitch of the audio. More... | |
virtual float | getPitch () const =0 |
Get the pitch of the audio. More... | |
virtual void | setLoop (bool isLooped)=0 |
Set whether or not the audio should loop after reaching the end. More... | |
virtual bool | isLooped () const =0 |
Check if audio is looped or not. More... | |
virtual void | seek (Time position)=0 |
Change the current playing position of the audio. More... | |
virtual Time | getPlayingPosition () const =0 |
Get the current playing position of the audio. More... | |
virtual void | play ()=0 |
Play audio. More... | |
virtual void | pause ()=0 |
Pause audio. More... | |
virtual void | stop ()=0 |
Stop playing the audio. More... | |
void | restart () |
Reset the playing position to the beginning. More... | |
virtual Time | getDuration () const =0 |
Get the total duration of the audio. More... | |
virtual Status | getStatus () const =0 |
Get the current status of the audio (stopped, paused, playing) More... | |
virtual std::string | getType ()=0 |
Get the type of the audio. More... | |
virtual | ~Audio ()=default |
Destructor. More... | |
template<typename... Args> | |
int | addEventListener (const std::string &event, Callback< Args... > callback) |
Add an event listener (callback) to an event. More... | |
template<typename... Args> | |
int | on (const std::string &event, Callback< Args... > callback) |
Add an event listener to an event. More... | |
template<typename ... Args> | |
int | addOnceEventListener (const std::string &event, Callback< Args... > callback) |
Add an event listener to an event. More... | |
bool | removeEventListener (const std::string &event, int id) |
Remove an event listener from an event. More... | |
bool | removeAllEventListeners (const std::string &event) |
Remove all event listeners of an event. More... | |
template<typename... Args> | |
void | emit (const std::string &event, Args...args) |
Fire an event. More... | |
bool | hasEvent (const std::string &event) const |
Check if an event exists or not. More... | |
std::size_t | getEventListenerCount (const std::string &event) const |
Get the number of event listeners currently registered to an event. More... | |
std::size_t | getEventsCount () const |
Get the current number of created events. More... | |
bool | hasEventListener (const std::string &event, int id) const |
Check if an event has a certain event listener. More... | |
Protected Member Functions | |
template<typename... Args> | |
void | emit (const std::string &event, Args...args) |
Prevent external publishing of events. More... | |
ime::audio::Audio::Audio | ( | ) |
Default constructor.
|
virtualdefault |
Destructor.
|
inherited |
Add an event listener (callback) to an event.
event | Event to add event listener to |
callback | Function to execute when the event is fired |
Every event listener has a unique identification number. This number must be remembered in order to remove the event listener.
|
inherited |
Add an event listener to an event.
event | Event to add event listener to |
callback | Function to execute when the event is fired |
The event listener will be invoked once and subsequently removed from the event. This means that the callback will only execute when an event is fired for the first time. To execute a callback each time the an event is fired
void ime::audio::Audio::adjustVolume | ( | float | offset | ) |
Turn the volume up/down by a given offset.
offset | Value to increase/decrease the volume by |
This function adds on to the current volume. A positive offset increases the volume while a negative offset decreases the volume. This function will unmmute the audio if its muted
|
protected |
Prevent external publishing of events.
Only the class knows the conditions under which an event may be fired. Therefore, events must not be raised externally as this may result in events being raised at the wong time, resulting in undesired and incorrect behavior
|
inherited |
Fire an event.
event | Name of the event to fire |
args | Arguments to be passed to event listeners |
|
pure virtual |
Get the total duration of the audio.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
inherited |
Get the number of event listeners currently registered to an event.
event | Event to get number of event listeners for |
|
inherited |
Get the current number of created events.
|
pure virtual |
Get the pitch of the audio.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Get the current playing position of the audio.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Get audio source.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Get the current status of the audio (stopped, paused, playing)
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Get the type of the audio.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Get the volume of the audio.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
inherited |
Check if an event exists or not.
event | Name of the event to check |
|
inherited |
Check if an event has a certain event listener.
event | Name of the event |
id | Identification number of the listener to be checked |
|
pure virtual |
Check if audio is looped or not.
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
bool ime::audio::Audio::isMuted | ( | ) | const |
Check if audio is muted or not.
|
inherited |
Add an event listener to an event.
event | Event to add event listener to |
callback | Function to execute when the event is fired |
This function does the same thing as the addEventListener() function. It just provides a slightly more readable syntax:
|
pure virtual |
Pause audio.
This function pauses the stream if it was playing, otherwise (audio already paused or stopped) it has no effect
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Play audio.
This function starts the audio if it was stopped, resumes it if it was paused, and restarts it from the beginning if it was already playing. This function uses its own thread so that it doesn't block the rest of the program while the audio is played
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
inherited |
Remove all event listeners of an event.
event | Event to remove all listeners from |
|
inherited |
Remove an event listener from an event.
event | Event to remove listener from |
id | Identification number of the event listener to be removed |
void ime::audio::Audio::restart | ( | ) |
Reset the playing position to the beginning.
This function will reset the playing position without stopping the audio (unlike stop function), which would require play to be called to get the audio to play again
|
pure virtual |
Change the current playing position of the audio.
position | New playing position of the audio |
The playing position can be changed when the audio is either paused or playing. Changing the playing position when the audio is stopped has no effect, since playing the audio would reset its position
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Set whether or not the audio should loop after reaching the end.
isLooped | True to play in loop, false to play once |
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
void ime::audio::Audio::setMute | ( | bool | mute | ) |
Set whether or not the audio should be audible.
mute | True to make audio inaudible, or false to make audio audible |
When set to true the audio will not be audible but will continue to play if currently playing
|
pure virtual |
Set the pitch of the audio.
pitch | The new pitch of the audio |
The pitch represents the perceived fundamental frequency of a sound; thus you can make a sound more acute or grave by changing its pitch. Changing the pitch also changes the playing speed of the audio.
The default value for the pitch is 1
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Set audio source to be manipulated.
filename | Filename of an audio file |
The filename must refer to an actual audio file on the disk. This audio file is the one to be played, pitched and done all sorts of things
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Set the volume of the audio.
volume | Volume to set |
The volume is a value between 0 (mute) and 100 (full volume).
The default value for the volume is 100
Implemented in ime::audio::SoundEffect, and ime::audio::Music.
|
pure virtual |
Stop playing the audio.
This function stops the audio if it was playing or paused, and does nothing if it was already stopped. It also resets the playing position
Implemented in ime::audio::SoundEffect, and ime::audio::Music.