Gnash  0.8.10
Public Types | Public Member Functions | Public Attributes
gnash::sound::EmbedSound Class Reference

Definition of an embedded sound. More...

#include <EmbedSound.h>

List of all members.

Public Types

typedef std::list
< EmbedSoundInst * > 
Instances
 Vector containing the active instances of this sounds being played.

Public Member Functions

 EmbedSound (std::auto_ptr< SimpleBuffer > data, const media::SoundInfo &info, int volume)
 Construct a sound with given data, info and volume.
 ~EmbedSound ()
size_t size () const
 Return size of the data buffer.
bool empty () const
 Is the data buffer empty ?
const boost::uint8_t * data () const
 Return a pointer to the underlying buffer.
const boost::uint8_t * data (size_t pos) const
 Return a pointer to an offset in the underlying buffer.
bool isPlaying () const
 Are there known playing instances of this sound ?
size_t numPlayingInstances () const
 Return number of playing instances of this sound.
void getPlayingInstances (std::vector< InputStream * > &to) const
 Append to the given vector all playing instances of this sound def.
EmbedSoundInstfirstPlayingInstance () const
 Return the first created instance of this sound.
std::auto_ptr< EmbedSoundInstcreateInstance (media::MediaHandler &mh, unsigned int inPoint, unsigned int outPoint, const SoundEnvelopes *envelopes, unsigned int loopCount)
 Create an instance of this sound.
void clearInstances ()
 Drop all active sounds.
Instances::iterator eraseActiveSound (Instances::iterator i)
 Drop an active sound (by iterator)
void eraseActiveSound (EmbedSoundInst *inst)
 Drop an active sound (by pointer)

Public Attributes

media::SoundInfo soundinfo
 Object holding information about the sound.
int volume

Detailed Description

Definition of an embedded sound.


Member Typedef Documentation

Vector containing the active instances of this sounds being played.

NOTE: This class does NOT own the active sounds


Constructor & Destructor Documentation

gnash::sound::EmbedSound::EmbedSound ( std::auto_ptr< SimpleBuffer data,
const media::SoundInfo info,
int  volume 
)

Construct a sound with given data, info and volume.

Parameters:
dataThe encoded sound data.
infoencoding info
volumeinitial volume (0..100). Optional, defaults to 100.
gnash::sound::EmbedSound::~EmbedSound ( )

References clearInstances().


Member Function Documentation

void gnash::sound::EmbedSound::clearInstances ( )

Drop all active sounds.

Locks _soundInstancesMutex

Referenced by ~EmbedSound().

std::auto_ptr< EmbedSoundInst > gnash::sound::EmbedSound::createInstance ( media::MediaHandler mh,
unsigned int  inPoint,
unsigned int  outPoint,
const SoundEnvelopes envelopes,
unsigned int  loopCount 
)

Create an instance of this sound.

The returned instance ownership is transferred

Parameters:
mhThe MediaHandler to use for on-demand decoding
inPointOffset in output samples this instance should start playing from. These are post-resampling samples from the start of the specified blockId.
outPointOffset in output samples this instance should stop playing at. These are post-resampling samples from the start of the specified blockId.
envelopesSoundEnvelopes to apply to this sound. May be 0 for none.
loopCountNumber of times this instance should loop over the defined sound.
Todo:
document if every loop starts at secsOffset ! Locks the _soundInstancesMutex when pushing to it

Referenced by gnash::sound::sound_handler::startSound().

const boost::uint8_t* gnash::sound::EmbedSound::data ( ) const [inline]

Return a pointer to the underlying buffer.

const boost::uint8_t* gnash::sound::EmbedSound::data ( size_t  pos) const [inline]

Return a pointer to an offset in the underlying buffer.

Parameters:
posThe offset value. An assertion will fail if pos > size()

References assert, and size().

bool gnash::sound::EmbedSound::empty ( ) const [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

Returns:
iterator after the one being erased

Referenced by eraseActiveSound(), and gnash::sound::EmbedSoundInst::~EmbedSoundInst().

void gnash::sound::EmbedSound::eraseActiveSound ( EmbedSoundInst inst)

Drop an active sound (by pointer)

Parameters:
instThe 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

Todo:
make private and mark EmbedSoundInst as friend ?

References eraseActiveSound().

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.

References gnash::key::i, and gnash::key::e.

bool gnash::sound::EmbedSound::isPlaying ( ) const

Are there known playing instances of this sound ?

Locks _soundInstancesMutex

Referenced by gnash::sound::sound_handler::tell(), gnash::sound::sound_handler::isSoundPlaying(), and gnash::sound::sound_handler::startSound().

size_t gnash::sound::EmbedSound::numPlayingInstances ( ) const

Return number of playing instances of this sound.

Locks _soundInstancesMutex

Referenced by gnash::sound::sound_handler::delete_all_sounds().

size_t gnash::sound::EmbedSound::size ( ) const [inline]

Return size of the data buffer.

Referenced by data().


Member Data Documentation

Object holding information about the sound.

Referenced by gnash::sound::sound_handler::get_duration(), and gnash::sound::sound_handler::startSound().

Volume for AS-sounds, range: 0-100. It's the SWF range that is represented here.


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