ScummVM API documentation
MADS::Phantom::AdlibChannel Struct Reference

Public Member Functions

void reset ()
 
void load (byte *soundData)
 
void setPtr2 (byte *ptr)
 
void enable ()
 
void processChannelFade ()
 

Public Attributes

uint8 _activeCount = 0
 
uint8 _pitchBend = 0
 
uint8 _volumeFadeStep = 0
 
uint8 _vibratoDepth = 0
 
uint8 _note = 0
 
uint8 _sampleIndex = 0
 
uint8 _volume = 0
 
uint8 _noteOffset = 0
 
uint8 _keyOnDelay = 0
 
uint8 _fadePeriodCounter = 0
 
uint8 _fadePeriodReload = 0
 
uint8 _vibPeriodCounter = 0
 
uint8 _vibPeriodReload = 0
 
uint8 _patchAttenuation = 0
 
byte * _loopStartPtr = nullptr
 
byte * _pSrc = nullptr
 
byte * _innerLoopPtr = nullptr
 
byte * _outerLoopPtr = nullptr
 
byte * _soundData = nullptr
 
byte * _branchTargetPtr = nullptr
 
uint16 _innerLoopCount = 0
 
uint16 _outerLoopCount = 0
 
uint16 _noiseFreqMask = 0
 
uint16 _freqAccum = 0
 
uint16 _freqStep = 0
 
uint8 _freqSweepCounter = 0
 
uint8 _savedFreqSweep = 0
 
uint8 _transpose = 0
 
uint8 _velocity = 0
 
uint8 _opVolBytes = 0
 
uint8 _opVolBytes2 = 0
 
uint8 _octaveTranspose = 0
 
uint8 _pendingStop = 0
 
uint8 _durationOverride = 0
 

Static Public Attributes

static bool _isDisabled
 

Member Function Documentation

◆ reset()

void MADS::Phantom::AdlibChannel::reset ( )

Zeroes the "live" fields of one channel without touching loop/sound-data pointers (those are handled separately by AdlibChannel_load).

◆ load()

void MADS::Phantom::AdlibChannel::load ( byte *  soundData)

Clears the entire channel struct, then initialises the loop/source pointers to the supplied sound-data address and marks the channel active.

◆ setPtr2()

void MADS::Phantom::AdlibChannel::setPtr2 ( byte *  ptr)

Point a channel at the null/silence data and arm a one-step volume fade so it fades out gracefully.

◆ enable()

void MADS::Phantom::AdlibChannel::enable ( )

Mark a channel as pending-stop and redirect its sound-data pointer to the null/silence stream.

◆ processChannelFade()

void MADS::Phantom::AdlibChannel::processChannelFade ( )

Called every frame for each channel. When _pendingStop is set, waits until both velocity and volume are zero before marking the channel idle; otherwise arms a fade-down of velocity/volume each period.


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