diff options
Diffstat (limited to 'engines/zvision/console.cpp')
-rw-r--r-- | engines/zvision/console.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/engines/zvision/console.cpp b/engines/zvision/console.cpp index f038af1232..c3be4ba0f5 100644 --- a/engines/zvision/console.cpp +++ b/engines/zvision/console.cpp @@ -23,16 +23,21 @@ #include "common/scummsys.h" #include "gui/debugger.h" +#include "common/file.h" +#include "common/bufferedstream.h" +#include "audio/mixer.h" #include "zvision/console.h" #include "zvision/zvision.h" #include "zvision/zork_avi_decoder.h" +#include "zvision/zork_raw.h" namespace ZVision { Console::Console(ZVision *engine) : GUI::Debugger(), _engine(engine) { DCmd_Register("loadimage", WRAP_METHOD(Console, cmdLoadImage)); DCmd_Register("loadvideo", WRAP_METHOD(Console, cmdLoadVideo)); + DCmd_Register("loadsound", WRAP_METHOD(Console, cmdLoadSound)); } bool Console::cmdLoadImage(int argc, const char **argv) { @@ -59,4 +64,23 @@ bool Console::cmdLoadVideo(int argc, const char **argv) { return true; } +bool Console::cmdLoadSound(int argc, const char **argv) { + if (argc != 3) { + DebugPrintf("Use loadsound <fileName> <rate> to load a video to the screen"); + return true; + } + + Common::File *file = new Common::File(); + if (!file->open(argv[1])) { + DebugPrintf("File does not exist"); + return true; + } + + Audio::AudioStream *soundStream = makeRawZorkStream(wrapBufferedSeekableReadStream(file, 2048, DisposeAfterUse::YES), atoi(argv[2]), DisposeAfterUse::YES); + Audio::SoundHandle handle; + _engine->getMixer()->playStream(Audio::Mixer::kPlainSoundType, &handle, soundStream, -1, 100, 0, DisposeAfterUse::YES, false, false); + + return true; +} + } // End of namespace ZVision |