aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sci/console.cpp21
-rw-r--r--engines/sci/engine/kgraphics.cpp2
-rw-r--r--engines/sci/module.mk5
-rw-r--r--engines/sci/video/seq_decoder.cpp (renamed from engines/sci/seq_decoder.cpp)2
-rw-r--r--engines/sci/video/seq_decoder.h (renamed from engines/sci/seq_decoder.h)0
-rw-r--r--engines/sci/video/vmd_decoder.cpp (renamed from graphics/video/vmd_decoder.cpp)16
-rw-r--r--engines/sci/video/vmd_decoder.h (renamed from graphics/video/vmd_decoder.h)11
-rw-r--r--graphics/module.mk1
8 files changed, 36 insertions, 22 deletions
diff --git a/engines/sci/console.cpp b/engines/sci/console.cpp
index 8b51ce2186..92b1d1c1ec 100644
--- a/engines/sci/console.cpp
+++ b/engines/sci/console.cpp
@@ -52,7 +52,10 @@
#include "sci/gui/gui_cursor.h"
#include "graphics/video/avi_decoder.h"
-#include "sci/seq_decoder.h"
+#include "sci/video/seq_decoder.h"
+#ifdef ENABLE_SCI32
+#include "sci/video/vmd_decoder.h"
+#endif
#include "common/savefile.h"
@@ -245,6 +248,18 @@ void Console::postEnter() {
aviDecoder->closeFile();
delete player;
delete aviDecoder;
+ } else if (_videoFile.hasSuffix(".vmd")) {
+#ifdef ENABLE_SCI32
+ VMDDecoder *vmdDecoder = new VMDDecoder(g_system->getMixer());
+ Graphics::VideoPlayer *player = new Graphics::VideoPlayer(vmdDecoder);
+ if (vmdDecoder->loadFile(_videoFile.c_str()))
+ player->playVideo();
+ else
+ DebugPrintf("Failed to open movie file %s\n", _videoFile.c_str());
+ vmdDecoder->closeFile();
+ delete player;
+ delete vmdDecoder;
+#endif
}
_vm->_gamestate->_gui->showCursor();
@@ -1139,7 +1154,7 @@ bool Console::cmdUndither(int argc, const char **argv) {
bool Console::cmdPlayVideo(int argc, const char **argv) {
if (argc < 2) {
- DebugPrintf("Plays a SEQ or AVI video.\n");
+ DebugPrintf("Plays a SEQ, AVI or VMD video.\n");
DebugPrintf("Usage: %s <video file name> <delay>\n", argv[0]);
DebugPrintf("The video file name should include the extension\n");
DebugPrintf("Delay is only used in SEQ videos and is measured in ticks (default: 10)\n");
@@ -1149,7 +1164,7 @@ bool Console::cmdPlayVideo(int argc, const char **argv) {
Common::String filename = argv[1];
filename.toLowercase();
- if (filename.hasSuffix(".seq") || filename.hasSuffix(".avi")) {
+ if (filename.hasSuffix(".seq") || filename.hasSuffix(".avi") || filename.hasSuffix(".vmd")) {
_videoFile = filename;
_videoFrameDelay = (argc == 2) ? 10 : atoi(argv[2]);
return false;
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index d553b5d0e2..51ad54d2c1 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -30,7 +30,7 @@
#include "sci/sci.h"
#include "sci/debug.h" // for g_debug_sleeptime_factor
#include "sci/resource.h"
-#include "sci/seq_decoder.h"
+#include "sci/video/seq_decoder.h"
#include "sci/engine/state.h"
#include "sci/engine/kernel.h"
#include "sci/gfx/operations.h"
diff --git a/engines/sci/module.mk b/engines/sci/module.mk
index 39922f37f5..13d815e366 100644
--- a/engines/sci/module.mk
+++ b/engines/sci/module.mk
@@ -7,7 +7,6 @@ MODULE_OBJS := \
event.o \
resource.o \
sci.o \
- seq_decoder.o \
vocabulary.o \
engine/game.o \
engine/gc.o \
@@ -80,7 +79,9 @@ MODULE_OBJS := \
sfx/seq/map-mt32-to-gm.o \
sfx/softseq/adlib.o \
sfx/softseq/amiga.o \
- sfx/softseq/pcjr.o
+ sfx/softseq/pcjr.o \
+ video/seq_decoder.o \
+ video/vmd_decoder.o
ifdef ENABLE_SCI32
MODULE_OBJS += \
diff --git a/engines/sci/seq_decoder.cpp b/engines/sci/video/seq_decoder.cpp
index 45c46d13c6..d3b1ea915d 100644
--- a/engines/sci/seq_decoder.cpp
+++ b/engines/sci/video/seq_decoder.cpp
@@ -31,7 +31,7 @@
#include "graphics/surface.h"
-#include "sci/seq_decoder.h"
+#include "sci/video/seq_decoder.h"
namespace Sci {
diff --git a/engines/sci/seq_decoder.h b/engines/sci/video/seq_decoder.h
index 7c810db05d..7c810db05d 100644
--- a/engines/sci/seq_decoder.h
+++ b/engines/sci/video/seq_decoder.h
diff --git a/graphics/video/vmd_decoder.cpp b/engines/sci/video/vmd_decoder.cpp
index d57eb49ee1..4e56e51054 100644
--- a/graphics/video/vmd_decoder.cpp
+++ b/engines/sci/video/vmd_decoder.cpp
@@ -23,9 +23,9 @@
*
*/
-#include "graphics/video/vmd_decoder.h"
+#ifdef ENABLE_SCI32
-#ifdef GRAPHICS_VIDEO_COKTELVIDEO_H
+#include "sci/video/vmd_decoder.h"
#include "common/archive.h"
#include "common/endian.h"
@@ -38,10 +38,10 @@
#include "sound/mixer.h"
#include "sound/audiostream.h"
-namespace Graphics {
+namespace Sci {
VMDDecoder::VMDDecoder(Audio::Mixer *mixer) : _mixer(mixer) {
- _vmdDecoder = new Vmd(new Graphics::PaletteLUT(5, PaletteLUT::kPaletteYUV));
+ _vmdDecoder = new Graphics::Vmd(new Graphics::PaletteLUT(5, Graphics::PaletteLUT::kPaletteYUV));
}
VMDDecoder::~VMDDecoder() {
@@ -62,12 +62,12 @@ bool VMDDecoder::loadFile(const char *fileName) {
if (!_vmdDecoder->load(*_fileStream))
return false;
- if (_vmdDecoder->getFeatures() & CoktelVideo::kFeaturesPalette) {
+ if (_vmdDecoder->getFeatures() & Graphics::CoktelVideo::kFeaturesPalette) {
getPalette();
setPalette(_palette);
}
- if (_vmdDecoder->getFeatures() & CoktelVideo::kFeaturesSound)
+ if (_vmdDecoder->getFeatures() & Graphics::CoktelVideo::kFeaturesSound)
_vmdDecoder->enableSound(*_mixer);
_videoInfo.width = _vmdDecoder->getWidth();
@@ -106,9 +106,9 @@ bool VMDDecoder::decodeNextFrame() {
if (_videoInfo.currentFrame == 0)
_videoInfo.startTime = g_system->getMillis();
- CoktelVideo::State state = _vmdDecoder->nextFrame();
+ Graphics::CoktelVideo::State state = _vmdDecoder->nextFrame();
- if (state.flags & CoktelVideo::kStatePalette) {
+ if (state.flags & Graphics::CoktelVideo::kStatePalette) {
getPalette();
setPalette(_palette);
}
diff --git a/graphics/video/vmd_decoder.h b/engines/sci/video/vmd_decoder.h
index 61ec0adf50..63a7e92ab6 100644
--- a/graphics/video/vmd_decoder.h
+++ b/engines/sci/video/vmd_decoder.h
@@ -23,17 +23,16 @@
*
*/
-#include "graphics/video/coktelvideo/coktelvideo.h"
-
-#ifdef GRAPHICS_VIDEO_COKTELVIDEO_H
+#ifdef ENABLE_SCI32
#ifndef GRAPHICS_VIDEO_VMD_DECODER_H
#define GRAPHICS_VIDEO_VMD_DECODER_H
+#include "graphics/video/coktelvideo/coktelvideo.h"
#include "graphics/video/video_player.h"
#include "sound/mixer.h"
-namespace Graphics {
+namespace Sci {
/**
* Wrapper for the Coktel Vision VMD video decoder
@@ -43,7 +42,7 @@ namespace Graphics {
* - gob (without this wrapper)
* - sci
*/
-class VMDDecoder : public VideoDecoder {
+ class VMDDecoder : public Graphics::VideoDecoder {
public:
VMDDecoder(Audio::Mixer *mixer);
virtual ~VMDDecoder();
@@ -64,7 +63,7 @@ public:
bool decodeNextFrame();
private:
- Vmd *_vmdDecoder;
+ Graphics::Vmd *_vmdDecoder;
Audio::Mixer *_mixer;
byte _palette[256 * 3];
diff --git a/graphics/module.mk b/graphics/module.mk
index fa7ff256c4..97fff5a400 100644
--- a/graphics/module.mk
+++ b/graphics/module.mk
@@ -26,7 +26,6 @@ MODULE_OBJS := \
video/flic_decoder.o \
video/mpeg_player.o \
video/smk_decoder.o \
- video/vmd_decoder.o \
video/video_player.o \
video/codecs/msvideo1.o \
video/coktelvideo/indeo3.o \