#include <imuse_internal.h>
Classes | |
struct | RhyState |
Public Member Functions | |
void | pause (bool paused) override |
void | saveLoadIMuse (Common::Serializer &ser, ScummEngine *scumm, bool fixAfterLoad=true) override |
bool | get_sound_active (int sound) const override |
int32 | doCommand (int numargs, int args[]) override |
uint32 | property (int prop, uint32 value) override |
void | addSysexHandler (byte mfgID, sysexfunc handler) override |
void | startSoundWithNoteOffset (int sound, int offset) override |
void | setMusicVolume (int vol) override |
void | setSfxVolume (int vol) override |
void | startSound (int sound) override |
void | stopSound (int sound) override |
void | stopAllSounds () override |
int | getSoundStatus (int sound) const override |
int | getMusicTimer () override |
Public Member Functions inherited from Scumm::IMuse | |
void | setQuality (int qual) override |
Public Member Functions inherited from Scumm::MusicEngine | |
virtual void | startSoundWithTrackID (int sound, int track) |
virtual void | toggleMusic (bool enable) |
virtual void | toggleSoundEffects (bool enable) |
void | saveLoadWithSerializer (Common::Serializer &ser) override |
virtual void | restoreAfterLoad () |
Static Public Member Functions | |
static IMuseInternal * | create (ScummEngine *vm, MidiDriver *nativeMidiDriver, MidiDriver *adlibMidiDriver, MidiDriverFlags sndType, bool nativeMT32) |
Static Public Member Functions inherited from Scumm::IMuse | |
static IMuse * | create (ScummEngine *vm, MidiDriver *nativeMidiDriver, MidiDriver *adlibMidiDriver, MidiDriverFlags sndType, bool nativeMT32) |
Protected Types | |
enum | ChunkType { kMThd = 1, kFORM = 2, kMDhd = 4, kMDpg = 8 } |
Protected Member Functions | |
IMuseInternal (ScummEngine *vm, MidiDriverFlags sndType, bool nativeMT32) | |
int | initialize (OSystem *syst, MidiDriver *nativeMidiDriver, MidiDriver *adlibMidiDriver) |
void | on_timer (MidiDriver *midi) override |
byte * | findStartOfSound (int sound, int ct=(kMThd|kFORM)) |
bool | isMT32 (int sound) |
bool | isMIDI (int sound) |
bool | supportsPercussion (int sound) |
int | get_queue_sound_status (int sound) const |
void | handle_marker (uint id, byte data) |
int | get_channel_volume (uint a) |
void | initMidiDriver (TimerCallbackInfo *info) |
void | init_players () |
void | init_parts () |
void | init_queue () |
void | sequencer_timers (MidiDriver *midi) |
MidiDriver * | getBestMidiDriver (int sound) |
Player * | allocate_player (byte priority) |
Part * | allocate_part (byte pri, MidiDriver *midi) |
int32 | ImSetTrigger (int sound, int id, int a, int b, int c, int d, int e, int f, int g, int h) |
int32 | ImClearTrigger (int sound, int id) |
int32 | ImFireAllTriggers (int sound) |
void | addDeferredCommand (int time, int a, int b, int c, int d, int e, int f) |
void | handleDeferredCommands (MidiDriver *midi) |
int | enqueue_command (int a, int b, int c, int d, int e, int f, int g) |
int | enqueue_trigger (int sound, int marker) |
int | clear_queue () override |
int | query_queue (int param) |
Player * | findActivePlayer (int id) |
int | get_volchan_entry (uint a) |
int | set_volchan_entry (uint a, uint b) |
int | set_channel_volume (uint chan, uint vol) |
void | update_volumes () |
void | musicVolumeReduction (MidiDriver *midi) |
int | set_volchan (int sound, int volchan) |
void | fix_parts_after_load () |
void | fix_players_after_load (ScummEngine *scumm) |
int | setImuseMasterVolume (uint vol) |
MidiChannel * | allocateChannel (MidiDriver *midi, byte prio) |
bool | reassignChannelAndResumePart (MidiChannel *mc) |
void | suspendPart (Part *part) |
void | removeSuspendedPart (Part *part) |
void | reallocateMidiChannels (MidiDriver *midi) |
void | setGlobalInstrument (byte slot, byte *data) |
void | copyGlobalInstrument (byte slot, Instrument *dest) |
bool | isNativeMT32 () |
bool | startSound_internal (int sound, int offset=0) |
int | stopSound_internal (int sound) |
int | stopAllSounds_internal () |
int | getSoundStatus_internal (int sound, bool ignoreFadeouts) const |
int32 | doCommand_internal (int a, int b, int c, int d, int e, int f, int g, int h) |
int32 | doCommand_internal (int numargs, int args[]) |
Static Protected Member Functions | |
static void | midiTimerCallback (void *data) |
Protected Attributes | |
ScummEngine * | _vm |
const bool | _native_mt32 |
const bool | _newSystem |
const bool | _dynamicChanAllocation |
const MidiDriverFlags | _soundType |
MidiDriver * | _midi_adlib |
MidiDriver * | _midi_native |
TimerCallbackInfo | _timer_info_adlib |
TimerCallbackInfo | _timer_info_native |
const uint32 | _game_id |
sysexfunc | _sysex |
Common::Mutex & | _mutex |
Common::Mutex | _dummyMutex |
bool | _paused |
bool | _initialized |
int | _tempoFactor |
int | _player_limit |
bool | _recycle_players |
int | _musicVolumeReductionTimer = 0 |
uint | _queue_end |
uint | _queue_pos |
uint | _queue_sound |
byte | _queue_adding |
byte | _queue_marker |
byte | _queue_cleared |
byte | _master_volume |
byte | _music_volume |
byte | _music_volume_eff |
uint16 | _trigger_count |
ImTrigger | _snm_triggers [16] |
uint16 | _snm_trigger_index |
uint16 | _channel_volume [8] |
uint16 | _channel_volume_eff [8] |
uint16 | _volchan_table [8] |
Player | _players [8] |
Part | _parts [32] |
Instrument | _global_instruments [32] |
CommandQueue | _cmd_queue [64] |
DeferredCommand | _deferredCommands [4] |
struct Scumm::IMuseInternal::RhyState | _rhyState |
Common::Array< Part * > | _waitingPartsQueue |
const bool | _lowLevelVolumeControl |
Additional Inherited Members | |
Public Types inherited from Scumm::IMuse | |
enum | { PROP_TEMPO_BASE, PROP_LIMIT_PLAYERS, PROP_RECYCLE_PLAYERS, PROP_QUALITY, PROP_MUSICVOLUME, PROP_SFXVOLUME } |
SCUMM implementation of IMuse. This class implements the IMuse mixin interface for the SCUMM environment.
|
overridevirtual |
Set the output volume for music. Also used, if the inheriting class doesn't distinguish between music and sfx.
vol | the new output volume |
Implements Scumm::MusicEngine.
|
overridevirtual |
Set the output volume for sound effects. No need to implement this in the inheriting class if it doesn't distinguish between music and sfx.
vol | the new output volume |
Reimplemented from Scumm::MusicEngine.
|
overridevirtual |
Start playing the sound with the given id.
sound | the sound to start |
Implements Scumm::MusicEngine.
|
overridevirtual |
Stop playing the sound with the given id.
sound | the sound to stop |
Implements Scumm::MusicEngine.
|
overridevirtual |
Start playing all currently playing sounds.
Implements Scumm::MusicEngine.
|
overridevirtual |
Query the status of the sound with the given id. Usually this is just a boolean telling us whether the sound is playing or not.
sound | the sound to for which we want the status |
Implements Scumm::MusicEngine.
|
overridevirtual |
Get the value of the music timer. Used for synchronising scripts with the music/sound.
Reimplemented from Scumm::MusicEngine.