aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/fmv/movieplayer.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2010-08-31 18:37:59 +0000
committerEugene Sandulenko2010-10-12 23:22:24 +0000
commitf06db87a0ee0323ceb5a1e946fa9ed1f8576abca (patch)
tree0470e0049d6c5248251cbc098863f4c5d12a3666 /engines/sword25/fmv/movieplayer.cpp
parent384468c0148ede9ae8140b4fd75183368d26ada6 (diff)
downloadscummvm-rg350-f06db87a0ee0323ceb5a1e946fa9ed1f8576abca.tar.gz
scummvm-rg350-f06db87a0ee0323ceb5a1e946fa9ed1f8576abca.tar.bz2
scummvm-rg350-f06db87a0ee0323ceb5a1e946fa9ed1f8576abca.zip
SWORD25: Implement playback. Blitting is TODO.
svn-id: r53298
Diffstat (limited to 'engines/sword25/fmv/movieplayer.cpp')
-rw-r--r--engines/sword25/fmv/movieplayer.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/engines/sword25/fmv/movieplayer.cpp b/engines/sword25/fmv/movieplayer.cpp
index 3114d68bdc..e4b417adc5 100644
--- a/engines/sword25/fmv/movieplayer.cpp
+++ b/engines/sword25/fmv/movieplayer.cpp
@@ -54,7 +54,7 @@ MoviePlayer::MoviePlayer(Kernel *pKernel) : Service(pKernel) {
_decoder = new TheoraDecoder();
}
-bool MoviePlayer::LoadMovie(const Common::String &filename, unsigned int Z) {
+bool MoviePlayer::LoadMovie(const Common::String &filename, unsigned int z) {
Common::SeekableReadStream *in = Kernel::GetInstance()->GetPackage()->GetStream(filename);
if (!in) {
@@ -62,11 +62,15 @@ bool MoviePlayer::LoadMovie(const Common::String &filename, unsigned int Z) {
return false;
}
+ debug(2, "LoadMovie(%s, %d)", filename.c_str(), z);
+
if (!_decoder->load(in)) {
BS_LOG_ERRORLN("Could not load movie file \"%s\".", filename.c_str());
return false;
}
+ warning("STUB: MoviePlayer::LoadMovie(). Z is not handled");
+
return true;
}
@@ -77,22 +81,30 @@ bool MoviePlayer::UnloadMovie() {
}
bool MoviePlayer::Play() {
+ _decoder->pauseVideo(false);
+
return true;
}
bool MoviePlayer::Pause() {
+ _decoder->pauseVideo(true);
+
return true;
}
void MoviePlayer::Update() {
+ if (!_decoder->isVideoLoaded())
+ return;
+
+ Graphics::Surface *surface = _decoder->decodeNextFrame();
}
bool MoviePlayer::IsMovieLoaded() {
- return true;
+ return _decoder->isVideoLoaded();
}
bool MoviePlayer::IsPaused() {
- return true;
+ return _decoder->isPaused();
}
float MoviePlayer::GetScaleFactor() {
@@ -103,7 +115,7 @@ void MoviePlayer::SetScaleFactor(float ScaleFactor) {
}
double MoviePlayer::GetTime() {
- return 1.0;
+ return (double)_decoder->getElapsedTime() / 1000.0;
}