aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/gob.cpp1
-rw-r--r--engines/gob/videoplayer.cpp13
-rw-r--r--engines/gob/videoplayer.h3
3 files changed, 17 insertions, 0 deletions
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp
index 8dfbf7df21..f2bec9b0f0 100644
--- a/engines/gob/gob.cpp
+++ b/engines/gob/gob.cpp
@@ -373,6 +373,7 @@ void GobEngine::pauseEngineIntern(bool pause) {
_inter->_soundEndTimeKey += duration;
}
+ _vidPlayer->pauseAll(pause);
_mixer->pauseAll(pause);
}
diff --git a/engines/gob/videoplayer.cpp b/engines/gob/videoplayer.cpp
index f279cb9744..b9eb42a2fe 100644
--- a/engines/gob/videoplayer.cpp
+++ b/engines/gob/videoplayer.cpp
@@ -238,6 +238,19 @@ void VideoPlayer::closeAll() {
closeVideo(i);
}
+void VideoPlayer::pauseVideo(int slot, bool pause) {
+ Video *video = getVideoBySlot(slot);
+ if (!video || !video->decoder)
+ return;
+
+ video->decoder->pauseVideo(pause);
+}
+
+void VideoPlayer::pauseAll(bool pause) {
+ for (int i = 0; i < kVideoSlotCount; i++)
+ pauseVideo(i, pause);
+}
+
bool VideoPlayer::play(int slot, Properties &properties) {
Video *video = getVideoBySlot(slot);
if (!video)
diff --git a/engines/gob/videoplayer.h b/engines/gob/videoplayer.h
index bae1fe3702..26c2c32a3c 100644
--- a/engines/gob/videoplayer.h
+++ b/engines/gob/videoplayer.h
@@ -113,6 +113,9 @@ public:
void closeLiveSound();
void closeAll();
+ void pauseVideo(int slot, bool pause);
+ void pauseAll(bool pause);
+
bool play(int slot, Properties &properties);
void waitEndFrame(int slot, bool onlySound = false);