ScummVM API documentation
MADS::Nebular::ASound Class Referenceabstract

#include <sound_nebular.h>

Inheritance diagram for MADS::Nebular::ASound:
MADS::Nebular::ASound1 MADS::Nebular::ASound2 MADS::Nebular::ASound3 MADS::Nebular::ASound4 MADS::Nebular::ASound5 MADS::Nebular::ASound6 MADS::Nebular::ASound7 MADS::Nebular::ASound8 MADS::Nebular::ASound9

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 ()
 
CachedDataEntrygetCachedData (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
 

Detailed Description

Base class for the sound player resource files

Constructor & Destructor Documentation

◆ ASound()

MADS::Nebular::ASound::ASound ( Audio::Mixer mixer,
OPL::OPL opl,
const Common::Path filename,
int  dataOffset 
)

Constructor

Parameters
mixerMixer
oplOPL
filenameSpecifies the adlib sound player file to use
dataOffsetOffset in the file of the data segment

◆ ~ASound()

virtual MADS::Nebular::ASound::~ASound ( )
virtual

Destructor

Member Function Documentation

◆ write()

void MADS::Nebular::ASound::write ( int  reg,
int  val 
)
protected

Queue a byte for an Adlib register

◆ write2()

int MADS::Nebular::ASound::write2 ( int  state,
int  reg,
int  val 
)
protected

Queue a byte for an Adlib register, and store it in the _ports array

◆ flush()

void MADS::Nebular::ASound::flush ( )
protected

Flush any pending Adlib register values to the OPL driver

◆ channelOn()

void MADS::Nebular::ASound::channelOn ( int  reg,
int  volume 
)
protected

Turn a channel on

◆ channelOff()

void MADS::Nebular::ASound::channelOff ( int  reg)
protected

Turn a channel off

◆ resultCheck()

void MADS::Nebular::ASound::resultCheck ( )
protected

Checks for whether a poll result needs to be set

◆ loadData()

byte* MADS::Nebular::ASound::loadData ( int  offset,
int  size 
)
protected

Loads a data block from the sound file, caching the result for any future calls for the same data

◆ playSound()

void MADS::Nebular::ASound::playSound ( int  offset,
int  size 
)
protected

Play the specified sound

Parameters
offsetOffset of sound data within sound player data segment
sizeSize of sound data block

◆ playSoundData()

void MADS::Nebular::ASound::playSoundData ( byte *  pData,
int  startingChannel = 5 
)
protected

Play the specified raw sound data

Parameters
pDataPointer to data block containing sound data
startingChannelChannel to start scan from

◆ isSoundActive()

bool MADS::Nebular::ASound::isSoundActive ( byte *  pData)
protected

Checks to see whether the given block of data is already loaded into a channel.

◆ setFrequency()

void MADS::Nebular::ASound::setFrequency ( int  channel,
int  freq 
)
protected

Sets the frequency for a given channel.

◆ getRandomNumber()

int MADS::Nebular::ASound::getRandomNumber ( )
protected

Returns a 16-bit random number

◆ validate()

static void MADS::Nebular::ASound::validate ( )
static

Validates the Adlib sound files

◆ command()

virtual int MADS::Nebular::ASound::command ( int  commandId,
int  param 
)
pure virtual

Execute a player command. Most commands represent sounds to play, but some low number commands also provide control operations.

Parameters
commandIdPlayer ommand to execute.
paramOptional 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.

◆ stop()

int MADS::Nebular::ASound::stop ( )

Stop all currently playing sounds

◆ poll()

int MADS::Nebular::ASound::poll ( )

Main poll method to allow sounds to progress

◆ noise()

void MADS::Nebular::ASound::noise ( )

General noise/note output

◆ getFrameCounter()

int MADS::Nebular::ASound::getFrameCounter ( )
inline

Return the current frame counter

◆ getCachedData()

CachedDataEntry& MADS::Nebular::ASound::getCachedData ( byte *  pData)

Return the cached data block record for previously loaded sound data

◆ setVolume()

void MADS::Nebular::ASound::setVolume ( int  volume)

Set the volume


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