[Scummvm-git-logs] scummvm master -> a6a809f1c3234c072c795aed57142893e1888447

sev- sev at scummvm.org
Wed Aug 19 11:45:55 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
a6a809f1c3 DIRECTOR: Moved DV loading to castmember.cpp


Commit: a6a809f1c3234c072c795aed57142893e1888447
    https://github.com/scummvm/scummvm/commit/a6a809f1c3234c072c795aed57142893e1888447
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-19T13:45:15+02:00

Commit Message:
DIRECTOR: Moved DV loading to castmember.cpp

Changed paths:
    engines/director/cast.cpp
    engines/director/castmember.cpp
    engines/director/castmember.h


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index abc0c3f223..f0787eb8cb 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -28,7 +28,6 @@
 #include "graphics/macgui/macfontmanager.h"
 #include "graphics/macgui/macwindowmanager.h"
 #include "image/bmp.h"
-#include "video/qt_decoder.h"
 
 #include "director/director.h"
 #include "director/cast.h"
@@ -675,12 +674,9 @@ void Cast::loadDigitalVideoCasts() {
 		if (videoData == NULL || videoData->size() == 0) {
 			// video file is linked, load from the filesystem
 
-			// TODO: detect file type (AVI, QuickTime, FLIC) based on magic number,
-			// insert the right video decoder
-			digitalVideoCast->_video = new Video::QuickTimeDecoder();
 			Common::String filename = _castsInfo[c->_key]->fileName;
 			Common::String directory = _castsInfo[c->_key]->directory;
-			if (!digitalVideoCast->_video->loadFile(pathMakeRelative(directory + "\\" + filename))) {
+			if (!digitalVideoCast->loadVideo(pathMakeRelative(directory + "\\" + filename))) {
 				warning("Cast::loadDigitalVideoCasts: failed to load QuickTime file for cast member %d", videoId);
 			}
 		} else {
diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 22f5ac6011..5ce36f98aa 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -295,6 +295,18 @@ DigitalVideoCastMember::~DigitalVideoCastMember() {
 	delete _video;
 }
 
+bool DigitalVideoCastMember::loadVideo(Common::String path) {
+	// TODO: detect file type (AVI, QuickTime, FLIC) based on magic number,
+	// insert the right video decoder
+
+	_filename = path;
+	_video = new Video::QuickTimeDecoder();
+
+	debugC(2, kDebugLoading | kDebugImages, "Loading video %s", path.c_str());
+
+	return _video->loadFile(path);
+}
+
 bool DigitalVideoCastMember::isModified() {
 	if (!_video)
 		return false;
@@ -315,7 +327,7 @@ Graphics::MacWidget *DigitalVideoCastMember::createWidget(Common::Rect &bbox, Ch
 	// FIXME: HACK: We need to understand when really start the video
 	if (!_video->isPlaying() && _channel->_movieRate != 0.0) {
 		_video->start();
-		debugC(2, kDebugImages, "STARTING VIDEO");
+		debugC(2, kDebugImages, "STARTING VIDEO %s", _filename.c_str());
 
 		if (_channel->_stopTime == 0)
 			_channel->_stopTime = getMovieTotalTime();
diff --git a/engines/director/castmember.h b/engines/director/castmember.h
index 61420125b9..bcbc33f3e2 100644
--- a/engines/director/castmember.h
+++ b/engines/director/castmember.h
@@ -138,6 +138,9 @@ public:
 
 	virtual bool isModified() override;
 	virtual Graphics::MacWidget *createWidget(Common::Rect &bbox, Channel *channel) override;
+
+	bool loadVideo(Common::String path);
+
 	uint getMovieCurrentTime();
 	uint getMovieTotalTime();
 	void seekMovie(int stamp);
@@ -149,6 +152,8 @@ public:
 	Datum getField(int field) override;
 	bool setField(int field, const Datum &value) override;
 
+	Common::String _filename;
+
 	uint32 _vflags;
 	bool _looping;
 	bool _pausedAtStart;




More information about the Scummvm-git-logs mailing list