ScummVM API documentation
Scumm::MacLowLevelPCMDriver Class Referencefinal
Inheritance diagram for Scumm::MacLowLevelPCMDriver:
Scumm::MacSoundDriver

Classes

class  CallbackClient
 
struct  DoubleBuffer
 
struct  PCMSound
 

Public Types

enum  SynthType : byte { kSquareWaveSynth = 1, kWaveTableSynth = 3, kSampledSynth = 5, kIgnoreSynth = 0xff }
 
enum  ChanAttrib : byte {
  kInitChanLeft = 2, kInitChanRight = 3, kWaveInitChannel0 = 4, kWaveInitChannel1 = 5,
  kWaveInitChannel2 = 6, kWaveInitChannel3 = 7, kNoInterp = 4, kInitNoDrop = 8,
  kInitMono = 0x80, kInitStereo = 0xC0
}
 
enum  ExecMode : byte { kImmediate, kEnqueue }
 
typedef int ChanHandle
 
typedef Common::Functor2Mem< uint16, const void *, void, CallbackClientChanCallback
 
typedef Common::Functor1Mem< DoubleBuffer *, void, CallbackClientDBCallback
 
- Public Types inherited from Scumm::MacSoundDriver
enum  StatusFlag : uint8 {
  kStatusPlaying = 1 << 0, kStatusOverflow = 1 << 1, kStatusStartup = 1 << 2, kStatusDone = 1 << 3,
  kStatusDisabled = 1 << 7
}
 

Public Member Functions

 MacLowLevelPCMDriver (Common::Mutex &mutex, uint32 deviceRate, bool internal16Bit)
 
void feed (int8 *dst, uint32 byteSize, Audio::Mixer::SoundType type, bool expectStereo) override
 
ChanHandle createChannel (Audio::Mixer::SoundType sndType, SynthType synthType, byte attributes, ChanCallback *callback)
 
void disposeChannel (ChanHandle handle)
 
void playSamples (ChanHandle handle, ExecMode mode, const PCMSound *snd)
 
void playNote (ChanHandle handle, ExecMode mode, uint8 note, uint16 duration)
 
void quiet (ChanHandle handle, ExecMode mode)
 
void flush (ChanHandle handle, ExecMode mode)
 
void wait (ChanHandle handle, ExecMode mode, uint16 duration)
 
void loadWaveTable (ChanHandle handle, ExecMode mode, const byte *data, uint16 dataSize)
 
void loadInstrument (ChanHandle handle, ExecMode mode, const PCMSound *snd)
 
void setTimbre (ChanHandle handle, ExecMode mode, uint16 timbre)
 
void callback (ChanHandle handle, ExecMode mode, uint16 arg1, const void *arg2)
 
bool playDoubleBuffer (ChanHandle handle, byte numChan, byte bitsPerSample, uint32 rate, DBCallback *callback, byte numMixChan=1)
 
uint8 getChannelStatus (ChanHandle handle) const
 
void clearChannelFlags (ChanHandle handle, uint8 flags)
 
- Public Member Functions inherited from Scumm::MacSoundDriver
 MacSoundDriver (Common::Mutex &mutex, uint32 deviceRate, int activeChannels, bool canInterpolate, bool internal16Bit)
 
const StatusgetStatus (Audio::Mixer::SoundType sndType=Audio::Mixer::kPlainSoundType) const
 
void clearFlags (uint8 flags, Audio::Mixer::SoundType sndType=Audio::Mixer::kPlainSoundType)
 
void setFlags (uint8 flags, Audio::Mixer::SoundType sndType=Audio::Mixer::kPlainSoundType)
 

Static Public Member Functions

static uint32 calcRate (uint32 outRate, uint32 factor, uint32 dataRate)
 

Additional Inherited Members

- Protected Attributes inherited from Scumm::MacSoundDriver
Common::Mutex_mutex
 
const int _smpSize
 
const int16 _smpMin
 
const int16 _smpMax
 
Status _status [4]
 

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