Definition of an embedded sound. More...
#include <EmbedSound.h>
Public Types | |
| typedef std::map < boost::uint32_t, boost::uint32_t > | FrameSizeMap |
| typedef std::list < EmbedSoundInst * > | Instances |
| Vector containing the active instances of this sounds being played. | |
Public Member Functions | |
| EmbedSound (std::auto_ptr< SimpleBuffer > data, std::auto_ptr< media::SoundInfo > info, int nVolume, size_t paddingBytes) | |
| Construct a sound with given data, info and volume. | |
| ~EmbedSound () | |
| void | append (boost::uint8_t *data, unsigned int size) |
| Append size bytes to this sound. | |
| 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. | |
| boost::uint8_t * | data () |
| 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. | |
| boost::uint8_t * | data (size_t pos) |
| 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. | |
| EmbedSoundInst * | firstPlayingInstance () const |
| Return the first created instance of this sound. | |
| std::auto_ptr< EmbedSoundInst > | createInstance (media::MediaHandler &mh, unsigned long blockOffset, 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 | |
| std::auto_ptr< media::SoundInfo > | soundinfo |
| Object holding information about the sound. | |
| FrameSizeMap | m_frames_size |
| Maps frame sizes to start-of-frame offsets. | |
| int | volume |
| Instances | _soundInstances |
| Playing instances of this sound definition. | |
| boost::mutex | _soundInstancesMutex |
| Mutex protecting access to _soundInstances. | |
| const size_t | _paddingBytes |
Definition of an embedded sound.
| typedef std::map<boost::uint32_t,boost::uint32_t> gnash::sound::EmbedSound::FrameSizeMap |
| 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::auto_ptr< SimpleBuffer > | data, | |
| std::auto_ptr< media::SoundInfo > | info, | |||
| int | nVolume, | |||
| size_t | paddingBytes | |||
| ) |
| gnash::sound::EmbedSound::~EmbedSound | ( | ) |
| void gnash::sound::EmbedSound::append | ( | boost::uint8_t * | data, | |
| unsigned int | size | |||
| ) |
Append size bytes to this sound.
| data | Data bytes, allocated with new[]. Ownership transferred. | |
| size | Size of the 'data' buffer. |
References _buf, _paddingBytes, data, EmbedSound(), info, m_frames_size, and volume.
Referenced by gnash::sound::sound_handler::addSoundBlock().
| void gnash::sound::EmbedSound::clearInstances | ( | ) |
| std::auto_ptr< EmbedSoundInst > gnash::sound::EmbedSound::createInstance | ( | media::MediaHandler & | mh, | |
| unsigned long | blockOffset, | |||
| unsigned int | inPoint, | |||
| unsigned int | outPoint, | |||
| const SoundEnvelopes * | envelopes, | |||
| unsigned int | loopCount | |||
| ) |
Create an instance of this sound.
The returned instance ownership is transferred
| mh | The MediaHandler to use for on-demand decoding | |
| blockOffset | Byte offset in the immutable (encoded) data this instance should start decoding. This is currently used for streaming embedded sounds to refer to a specific StreamSoundBlock. |
| 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. |
Locks the _soundInstancesMutex when pushing to it
References _soundInstances, and _soundInstancesMutex.
| const boost::uint8_t* gnash::sound::EmbedSound::data | ( | ) | const [inline] |
Return a pointer to the underlying buffer.
| boost::uint8_t* gnash::sound::EmbedSound::data | ( | ) | [inline] |
Return a pointer to the underlying buffer.
| const boost::uint8_t* gnash::sound::EmbedSound::data | ( | size_t | pos | ) | const [inline] |
| boost::uint8_t* gnash::sound::EmbedSound::data | ( | size_t | pos | ) | [inline] |
| bool gnash::sound::EmbedSound::empty | ( | ) | const [inline] |
Is the data buffer empty ?
| EmbedSound::Instances::iterator gnash::sound::EmbedSound::eraseActiveSound | ( | Instances::iterator | i | ) |
Drop an active sound (by iterator).
Does *NOT* lock the _soundInstancesMutex
References _buf.
Referenced by 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
| EmbedSoundInst * gnash::sound::EmbedSound::firstPlayingInstance | ( | ) | const |
Return the first created instance of this sound.
Locks _soundInstancesMutex
References _soundInstances, and _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 _soundInstances, and _soundInstancesMutex.
| bool gnash::sound::EmbedSound::isPlaying | ( | ) | const |
Are there known playing instances of this sound ?
Locks _soundInstancesMutex
Referenced by gnash::sound::sound_handler::tell().
| 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 gnash::sound::sound_handler::addSoundBlock(), and data().
| const size_t gnash::sound::EmbedSound::_paddingBytes |
Referenced by append().
Playing instances of this sound definition.
Multithread access to this member is protected by the _soundInstancesMutex mutex
Referenced by createInstance(), firstPlayingInstance(), and getPlayingInstances().
boost::mutex gnash::sound::EmbedSound::_soundInstancesMutex [mutable] |
Mutex protecting access to _soundInstances.
Referenced by createInstance(), firstPlayingInstance(), and getPlayingInstances().
Maps frame sizes to start-of-frame offsets.
Referenced by append().
| std::auto_ptr<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().
Volume for AS-sounds, range: 0-100. It's the SWF range that is represented here.
1.7.1