aboutsummaryrefslogtreecommitdiff
path: root/engines/zvision/console.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/zvision/console.cpp')
-rw-r--r--engines/zvision/console.cpp24
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