Gnash
0.8.11dev
|
Definition of an embedded sound. More...
#include <EmbedSound.h>
Public Types | |
typedef std::list< EmbedSoundInst * > | Instances |
Vector containing the active instances of this sounds being played. More... | |
Public Member Functions | |
EmbedSound (std::unique_ptr< SimpleBuffer > data, media::SoundInfo info, int volume) | |
Construct a sound with given data, info and volume. More... | |
~EmbedSound () | |
size_t | size () const |
Return size of the data buffer. More... | |
bool | empty () const |
Is the data buffer empty ? More... | |
const std::uint8_t * | data () const |
Return a pointer to the underlying buffer. More... | |
const std::uint8_t * | data (size_t pos) const |
Return a pointer to an offset in the underlying buffer. More... | |
bool | isPlaying () const |
Are there known playing instances of this sound ? More... | |
size_t | numPlayingInstances () const |
Return number of playing instances of this sound. More... | |
void | getPlayingInstances (std::vector< InputStream *> &to) const |
Append to the given vector all playing instances of this sound def. More... | |
EmbedSoundInst * | firstPlayingInstance () const |
Return the first created instance of this sound. More... | |
std::unique_ptr< EmbedSoundInst > | createInstance (media::MediaHandler &mh, unsigned int inPoint, unsigned int outPoint, const SoundEnvelopes *envelopes, int loopCount) |
Create an instance of this sound. More... | |
void | clearInstances () |
Drop all active sounds. More... | |
Instances::iterator | eraseActiveSound (Instances::iterator i) |
Drop an active sound (by iterator) More... | |
void | eraseActiveSound (EmbedSoundInst *inst) |
Drop an active sound (by pointer) More... | |
Public Attributes | |
media::SoundInfo | soundinfo |
Object holding information about the sound. More... | |
int | volume |
Definition of an embedded sound.
typedef std::list<EmbedSoundInst*> gnash::sound::EmbedSound::Instances |
Vector containing the active instances of this sounds being played.
NOTE: This class does NOT own the active sounds
gnash::sound::EmbedSound::EmbedSound | ( | std::unique_ptr< SimpleBuffer > | data, |
media::SoundInfo | info, | ||
int | volume | ||
) |
Construct a sound with given data, info and volume.
data | The encoded sound data. |
info | encoding info |
volume | initial volume (0..100). Optional, defaults to 100. |
gnash::sound::EmbedSound::~EmbedSound | ( | ) |
References clearInstances().
void gnash::sound::EmbedSound::clearInstances | ( | ) |
Drop all active sounds.
Locks _soundInstancesMutex
Referenced by gnash::sound::sound_handler::stopAllEventSounds(), and ~EmbedSound().
std::unique_ptr< EmbedSoundInst > gnash::sound::EmbedSound::createInstance | ( | media::MediaHandler & | mh, |
unsigned int | inPoint, | ||
unsigned int | outPoint, | ||
const SoundEnvelopes * | envelopes, | ||
int | loopCount | ||
) |
Create an instance of this sound.
The returned instance ownership is transferred
mh | The MediaHandler to use for on-demand decoding |
inPoint | Offset in output samples this instance should start playing from. These are post-resampling samples from the start of the specified blockId. |
outPoint | Offset in output samples this instance should stop playing at. These are post-resampling samples from the start of the specified blockId. |
envelopes | SoundEnvelopes to apply to this sound. May be 0 for none. |
loopCount | Number of times this instance should loop over the defined sound. |
Referenced by gnash::sound::sound_handler::startSound().
|
inline |
Return a pointer to the underlying buffer.
Referenced by gnash::sound::EmbedSoundInst::EmbedSoundInst().
|
inline |
Return a pointer to an offset in the underlying buffer.
pos | The offset value. An assertion will fail if pos > size() |
|
inline |
Is the data buffer empty ?
Referenced by gnash::sound::sound_handler::startSound().
EmbedSound::Instances::iterator gnash::sound::EmbedSound::eraseActiveSound | ( | Instances::iterator | i | ) |
Drop an active sound (by iterator)
Does NOT lock the _soundInstancesMutex
Referenced by eraseActiveSound(), and gnash::sound::EmbedSoundInst::~EmbedSoundInst().
void gnash::sound::EmbedSound::eraseActiveSound | ( | EmbedSoundInst * | inst | ) |
Drop an active sound (by pointer)
inst | The active sound instance to unregister |
This is intended to be called by EmbedSoundInst destructor, which may be called by a separate thread so MUST be thread-safe
Does lock the _soundInstancesMutex
References eraseActiveSound(), and gnash::log_error().
EmbedSoundInst * gnash::sound::EmbedSound::firstPlayingInstance | ( | ) | const |
Return the first created instance of this sound.
Locks _soundInstancesMutex
Referenced by gnash::sound::sound_handler::tell().
void gnash::sound::EmbedSound::getPlayingInstances | ( | std::vector< InputStream *> & | to | ) | const |
Append to the given vector all playing instances of this sound def.
Referenced by gnash::sound::sound_handler::stopAllEventSounds().
bool gnash::sound::EmbedSound::isPlaying | ( | ) | const |
Are there known playing instances of this sound ?
Locks _soundInstancesMutex
Referenced by gnash::sound::sound_handler::isSoundPlaying(), gnash::sound::sound_handler::startSound(), and gnash::sound::sound_handler::tell().
size_t gnash::sound::EmbedSound::numPlayingInstances | ( | ) | const |
Return number of playing instances of this sound.
Locks _soundInstancesMutex
|
inline |
Return size of the data buffer.
Referenced by gnash::sound::EmbedSoundInst::EmbedSoundInst().
media::SoundInfo gnash::sound::EmbedSound::soundinfo |
Object holding information about the sound.
Referenced by gnash::sound::sound_handler::get_duration(), and gnash::sound::sound_handler::startSound().
int gnash::sound::EmbedSound::volume |
Volume for AS-sounds, range: 0-100. It's the SWF range that is represented here.
Referenced by gnash::sound::EmbedSoundInst::EmbedSoundInst().