Public Member Functions | |
| SoundDriver (Audio::Mixer *mixer, const Common::Path &filename, int dataOffset, int dataSize) | |
| virtual int | command (int commandId, int param)=0 |
| virtual int | stop ()=0 |
| virtual int | poll ()=0 |
| virtual void | noise ()=0 |
| virtual void | setVolume (int volume)=0 |
Protected Member Functions | |
| Common::MemoryReadStream | getDataStream (int offset) const |
| SoundDriver (Audio::Mixer *mixer) | |
Protected Attributes | |
| Audio::Mixer * | _mixer |
| Common::Array< byte > | _soundData |
| Common::Mutex | _driverMutex |
| MADS::SoundDriver::SoundDriver | ( | Audio::Mixer * | mixer, |
| const Common::Path & | filename, | ||
| int | dataOffset, | ||
| int | dataSize | ||
| ) |
Loads a driver data block from an absolute file offset.
For DOS MZ overlays, dataOffset includes the executable header. Offsets passed to getDataStream() and stored in sequence data are relative to the loaded block instead.
|
inlineprotected |
Gets a stream starting at a given offset in the loaded sound data
|
pure virtual |
Execute a player command. Most commands represent sounds to play, but some low number commands also provide control operations.
| commandId | Player ommand to execute. |
| param | Optional parameter used by a few commands |
Implemented in MADS::Dragonsphere::Sound::RSoundDemo9, MADS::Dragonsphere::Sound::RSoundDemo1, MADS::Dragonsphere::Sound::RSound9, MADS::Dragonsphere::Sound::RSound6, MADS::Dragonsphere::Sound::ASoundDemo9, MADS::RexNebular::Sound::RSoundDemo9, MADS::RexNebular::Sound::RSound9, MADS::Dragonsphere::Sound::ASound9, MADS::Dragonsphere::Sound::ASoundDemo1, MADS::RexNebular::Sound::RSound8, MADS::Dragonsphere::Sound::RSound5, MADS::RexNebular::Sound::ASound9, MADS::RexNebular::Sound::PSoundDemo9, MADS::RexNebular::Sound::RSound7, MADS::RexNebular::Sound::PSoundDemo1, MADS::Phantom::Sound::RSoundDemoPHA, MADS::RexNebular::Sound::RSound6, MADS::Dragonsphere::Sound::ASound6, MADS::RexNebular::Sound::PSound9, MADS::Phantom::Sound::RSound9, MADS::RexNebular::Sound::ASoundDemo9, MADS::Dragonsphere::Sound::RSound4, MADS::Phantom::Sound::ASoundDemo, MADS::RexNebular::Sound::ASound8, MADS::RexNebular::Sound::RSound5, MADS::Dragonsphere::Sound::ASound5, MADS::RexNebular::Sound::PSound8, MADS::Phantom::Sound::RSound5, MADS::Phantom::Sound::ASound9, MADS::RexNebular::Sound::ASound7, MADS::RexNebular::Sound::RSound4, MADS::RexNebular::Sound::PSound7, MADS::RexNebular::Sound::ASound6, MADS::Dragonsphere::Sound::ASound4, MADS::Phantom::Sound::ASound5, MADS::Dragonsphere::Sound::RSound3, MADS::RexNebular::Sound::PSound6, MADS::RexNebular::Sound::ASound5, MADS::Phantom::Sound::RSound4, MADS::RexNebular::Sound::RSound3, MADS::RexNebular::Sound::PSound5, MADS::Dragonsphere::Sound::ASound3, MADS::RexNebular::Sound::ASound4, MADS::Phantom::Sound::ASound4, MADS::RexNebular::Sound::PSound4, MADS::Phantom::Sound::RSound3, MADS::RexNebular::Sound::ASound3, MADS::Dragonsphere::Sound::RSound2, MADS::Phantom::Sound::ASound3, MADS::Dragonsphere::Sound::ASound2, MADS::RexNebular::Sound::PSound3, MADS::RexNebular::Sound::RSound2, MADS::RexNebular::Sound::ASound2, MADS::Dragonsphere::Sound::ASound1, MADS::Phantom::Sound::RSound2, MADS::Dragonsphere::Sound::RSound1, MADS::Phantom::Sound::ASound2, MADS::RexNebular::Sound::PSound2, MADS::RexNebular::Sound::ASoundDemo1, MADS::RexNebular::Sound::RSoundDemo1, MADS::Phantom::Sound::RSound1, MADS::RexNebular::Sound::RSound1, MADS::RexNebular::Sound::MacSoundDriver, MADS::Phantom::Sound::ASound1, MADS::Dragonsphere::Sound::DragonspherePSoundDemo, MADS::RexNebular::Sound::PSound1, MADS::RexNebular::Sound::ASound1, MADS::Dragonsphere::Sound::DragonspherePSound, MADS::Dragonsphere::Sound::GSoundDragonsphere, MADS::RexNebular::Sound::ISoundSection, MADS::Phantom::Sound::ISoundSection, and MADS::Phantom::Sound::PhantomPSound.
|
pure virtual |
Stop all currently playing sounds
Implemented in MADS::Dragonsphere::Sound::ASound, MADS::Dragonsphere::Sound::RSound, MADS::Phantom::Sound::RSound, MADS::Phantom::Sound::ASound, MADS::RexNebular::Sound::ASound, MADS::RexNebular::Sound::RSound, MADS::Dragonsphere::Sound::GSound, MADS::RexNebular::Sound::PSound, MADS::Dragonsphere::Sound::PSound, MADS::Phantom::Sound::PSound, MADS::Phantom::Sound::ISound, MADS::RexNebular::Sound::ISound, and MADS::RexNebular::Sound::MacSoundDriver.
|
pure virtual |
Main poll method to allow sounds to progress
Implemented in MADS::Dragonsphere::Sound::ASound, MADS::Dragonsphere::Sound::RSound, MADS::Phantom::Sound::RSound, MADS::Phantom::Sound::ASound, MADS::RexNebular::Sound::ASound, MADS::RexNebular::Sound::RSound, MADS::Dragonsphere::Sound::GSound, MADS::RexNebular::Sound::PSound, MADS::Dragonsphere::Sound::PSound, MADS::Phantom::Sound::PSound, MADS::Phantom::Sound::ISound, MADS::RexNebular::Sound::ISound, and MADS::RexNebular::Sound::MacSoundDriver.
|
pure virtual |
General noise/note output
Implemented in MADS::Dragonsphere::Sound::ASound, MADS::Dragonsphere::Sound::RSound, MADS::Phantom::Sound::RSound, MADS::Phantom::Sound::ASound, MADS::RexNebular::Sound::ASound, MADS::RexNebular::Sound::RSound, MADS::Dragonsphere::Sound::GSound, MADS::RexNebular::Sound::PSound, MADS::Dragonsphere::Sound::PSound, MADS::Phantom::Sound::PSound, MADS::Phantom::Sound::ISound, MADS::RexNebular::Sound::ISound, and MADS::RexNebular::Sound::MacSoundDriver.
|
pure virtual |
Set the volume
Implemented in MADS::Dragonsphere::Sound::ASound, MADS::Dragonsphere::Sound::RSound, MADS::Phantom::Sound::RSound, MADS::Phantom::Sound::ASound, MADS::RexNebular::Sound::ASound, MADS::RexNebular::Sound::RSound, MADS::Dragonsphere::Sound::GSound, MADS::RexNebular::Sound::PSound, MADS::Dragonsphere::Sound::PSound, MADS::Phantom::Sound::PSound, MADS::Phantom::Sound::ISound, MADS::RexNebular::Sound::ISound, and MADS::RexNebular::Sound::MacSoundDriver.