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, CallbackClient > | ChanCallback |
typedef Common::Functor1Mem< DoubleBuffer *, void, CallbackClient > | DBCallback |
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 Status & | getStatus (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] |