#include <sound_nebular.h>
Public Member Functions | |
| ASound (Audio::Mixer *mixer, OPL::OPL *opl, const Common::Path &filename, int dataOffset) | |
| virtual | ~ASound () |
| virtual int | command (int commandId, int param)=0 |
| int | stop () |
| int | poll () |
| void | noise () |
| int | getFrameCounter () |
| CachedDataEntry & | getCachedData (byte *pData) |
| void | setVolume (int volume) |
Static Public Member Functions | |
| static void | validate () |
Public Attributes | |
| Audio::Mixer * | _mixer |
| OPL::OPL * | _opl |
| AdlibChannel | _channels [9] |
| AdlibChannel * | _activeChannelPtr |
| AdlibChannelData | _channelData [11] |
| Common::Array< AdlibSample > | _samples |
| AdlibSample * | _samplePtr |
| Common::File | _soundFile |
| Common::Queue< RegisterValue > | _queue |
| Common::Mutex | _driverMutex |
| int | _dataOffset |
| int | _frameCounter |
| bool | _isDisabled |
| int | _v1 |
| int | _v2 |
| int | _activeChannelNumber |
| int | _freqMask1 |
| int | _freqMask2 |
| int | _freqBase1 |
| int | _freqBase2 |
| int | _channelNum1 |
| int | _channelNum2 |
| int | _v7 |
| int | _v8 |
| int | _v9 |
| int | _v10 |
| int | _pollResult |
| int | _resultFlag |
| byte | _nullData [2] |
| int | _ports [256] |
| bool | _stateFlag |
| int | _activeChannelReg |
| int | _v11 |
| bool | _amDep |
| bool | _vibDep |
| bool | _splitPoint |
Protected Member Functions | |
| void | write (int reg, int val) |
| int | write2 (int state, int reg, int val) |
| void | flush () |
| void | channelOn (int reg, int volume) |
| void | channelOff (int reg) |
| void | resultCheck () |
| byte * | loadData (int offset, int size) |
| void | playSound (int offset, int size) |
| void | playSoundData (byte *pData, int startingChannel=5) |
| bool | isSoundActive (byte *pData) |
| void | setFrequency (int channel, int freq) |
| int | getRandomNumber () |
| virtual int | command0 () |
| int | command1 () |
| int | command2 () |
| int | command3 () |
| int | command4 () |
| int | command5 () |
| int | command6 () |
| int | command7 () |
| int | command8 () |
| int | nullCommand () |
Protected Attributes | |
| int | _commandParam |
Base class for the sound player resource files
| MADS::Nebular::ASound::ASound | ( | Audio::Mixer * | mixer, |
| OPL::OPL * | opl, | ||
| const Common::Path & | filename, | ||
| int | dataOffset | ||
| ) |
Constructor
| mixer | Mixer |
| opl | OPL |
| filename | Specifies the adlib sound player file to use |
| dataOffset | Offset in the file of the data segment |
|
virtual |
Destructor
|
protected |
Queue a byte for an Adlib register
|
protected |
Queue a byte for an Adlib register, and store it in the _ports array
|
protected |
Flush any pending Adlib register values to the OPL driver
|
protected |
Turn a channel on
|
protected |
Turn a channel off
|
protected |
Checks for whether a poll result needs to be set
|
protected |
Loads a data block from the sound file, caching the result for any future calls for the same data
|
protected |
Play the specified sound
| offset | Offset of sound data within sound player data segment |
| size | Size of sound data block |
|
protected |
Play the specified raw sound data
| pData | Pointer to data block containing sound data |
| startingChannel | Channel to start scan from |
|
protected |
Checks to see whether the given block of data is already loaded into a channel.
|
protected |
Sets the frequency for a given channel.
|
protected |
Returns a 16-bit random number
|
static |
Validates the Adlib sound files
|
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::Nebular::ASound9, MADS::Nebular::ASound8, MADS::Nebular::ASound7, MADS::Nebular::ASound6, MADS::Nebular::ASound5, MADS::Nebular::ASound4, MADS::Nebular::ASound3, MADS::Nebular::ASound2, and MADS::Nebular::ASound1.
| int MADS::Nebular::ASound::stop | ( | ) |
Stop all currently playing sounds
| int MADS::Nebular::ASound::poll | ( | ) |
Main poll method to allow sounds to progress
| void MADS::Nebular::ASound::noise | ( | ) |
General noise/note output
|
inline |
Return the current frame counter
| CachedDataEntry& MADS::Nebular::ASound::getCachedData | ( | byte * | pData | ) |
Return the cached data block record for previously loaded sound data
| void MADS::Nebular::ASound::setVolume | ( | int | volume | ) |
Set the volume