Added imuse_multimidi to debugger

svn-id: r7614
This commit is contained in:
Jamieson Christian 2003-05-17 19:03:25 +00:00
parent 3576b8e168
commit fcc11d19fa
3 changed files with 25 additions and 0 deletions

View file

@ -22,6 +22,7 @@
#include "scumm.h"
#include "sound.h"
#include "actor.h"
#include "imuse.h"
#include "debugger.h"
#include "common/util.h"
#include "common/file.h"
@ -98,6 +99,8 @@ void ScummDebugger::attach(Scumm *s, char *entry) {
DCmd_Register("show", &ScummDebugger::Cmd_Show);
DCmd_Register("hide", &ScummDebugger::Cmd_Hide);
DCmd_Register("imuse_multimidi", &ScummDebugger::Cmd_ImuseMultiMidi);
}
}
@ -354,6 +357,16 @@ bool ScummDebugger::Cmd_Restart(int argc, const char **argv) {
return false;
}
bool ScummDebugger::Cmd_ImuseMultiMidi (int argc, const char **argv) {
if (argc > 1) {
_s->_imuse->property (IMuse::PROP_MULTI_MIDI, !strcmp (argv[1], "1") || !strcmp (argv[1], "on") || !strcmp (argv[1], "true"));
return false;
} else {
Debug_Printf("Use 'imuse_multimidi <on/true/1 | off/false/0>' to switch\n");
return true;
}
}
bool ScummDebugger::Cmd_Room(int argc, const char **argv) {
if (argc > 1) {
int room = atoi(argv[1]);

View file

@ -92,6 +92,8 @@ protected:
bool Cmd_Show(int argc, const char **argv);
bool Cmd_Hide(int argc, const char **argv);
bool Cmd_ImuseMultiMidi (int argc, const char **argv);
void printBox(int box);
void drawBox(int box);

View file

@ -1654,6 +1654,16 @@ uint32 IMuseInternal::property(int prop, uint32 value) {
case IMuse::PROP_MULTI_MIDI:
_enable_multi_midi = (value > 0);
if (!_enable_multi_midi && _midi_native && _midi_adlib) {
MidiDriver *driver = _midi_adlib;
_midi_adlib = NULL;
int i;
for (i = 0; i < ARRAYSIZE(_players); ++i) {
if (_players[i]._active && _players[i]._midi == driver)
_players[i].clear();
}
driver->close();
}
break;
case IMuse::PROP_OLD_ADLIB_INSTRUMENTS: