aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2010-08-08 00:39:32 +0000
committerSven Hesse2010-08-08 00:39:32 +0000
commitaa113e5ab3b6e96ff6d2b56839b7ac08ec0617cc (patch)
tree8813dc4a979777aeef2ed59de97c422f7bd64aec
parentf7363fdb10675bf27c1a1d37d23a25590bdc344c (diff)
downloadscummvm-rg350-aa113e5ab3b6e96ff6d2b56839b7ac08ec0617cc.tar.gz
scummvm-rg350-aa113e5ab3b6e96ff6d2b56839b7ac08ec0617cc.tar.bz2
scummvm-rg350-aa113e5ab3b6e96ff6d2b56839b7ac08ec0617cc.zip
VIDEO: Add CoktelDecoder::setFrameRate().
Allows client code to overwrite the video's frame rate. svn-id: r51860
-rw-r--r--graphics/video/coktel_decoder.cpp9
-rw-r--r--graphics/video/coktel_decoder.h3
2 files changed, 11 insertions, 1 deletions
diff --git a/graphics/video/coktel_decoder.cpp b/graphics/video/coktel_decoder.cpp
index a9a2e157a3..9e4fc1edc6 100644
--- a/graphics/video/coktel_decoder.cpp
+++ b/graphics/video/coktel_decoder.cpp
@@ -35,7 +35,7 @@ CoktelDecoder::State::State() : flags(0), speechId(0) {
CoktelDecoder::CoktelDecoder(Audio::Mixer &mixer, Audio::Mixer::SoundType soundType) :
_mixer(&mixer), _soundType(soundType), _width(0), _height(0), _x(0), _y(0), _frameCount(0),
- _paletteDirty(false), _ownSurface(true) {
+ _paletteDirty(false), _ownSurface(true), _frameRate(12) {
memset(_palette, 0, 768);
}
@@ -97,6 +97,10 @@ void CoktelDecoder::setXY(uint16 x, uint16 y) {
_y = y;
}
+void CoktelDecoder::setFrameRate(Common::Rational frameRate) {
+ _frameRate = frameRate;
+}
+
const Common::List<Common::Rect> &CoktelDecoder::getDirtyRects() const {
return _dirtyRects;
}
@@ -235,6 +239,9 @@ Surface *PreIMDDecoder::decodeNextFrame() {
_curFrame++;
+ if (_curFrame == 0)
+ _startTime = g_system->getMillis();
+
return &_surface;
}
diff --git a/graphics/video/coktel_decoder.h b/graphics/video/coktel_decoder.h
index ea405974d6..6a0ff28762 100644
--- a/graphics/video/coktel_decoder.h
+++ b/graphics/video/coktel_decoder.h
@@ -67,6 +67,9 @@ public:
/** Draw the video starting at this position within the video memory. */
void setXY(uint16 x, uint16 y);
+ /** Override the video's frame rate. */
+ void setFrameRate(Common::Rational frameRate);
+
/** Return a list of rectangles that changed in the last frame. */
const Common::List<Common::Rect> &getDirtyRects() const;