aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support/movie.h
diff options
context:
space:
mode:
authorPaul Gilbert2016-04-08 20:46:03 -0400
committerPaul Gilbert2016-04-08 20:46:03 -0400
commite3d02532f7a64f194a802e29abef4b03eb6395b4 (patch)
tree543f88f9044ce1de598b2292512994adc0af99ae /engines/titanic/support/movie.h
parent63e2a01ecf2d5d5c56f657a87c48c761a88c5eb7 (diff)
downloadscummvm-rg350-e3d02532f7a64f194a802e29abef4b03eb6395b4.tar.gz
scummvm-rg350-e3d02532f7a64f194a802e29abef4b03eb6395b4.tar.bz2
scummvm-rg350-e3d02532f7a64f194a802e29abef4b03eb6395b4.zip
TITANIC: Implementing preliminary video playback code
Diffstat (limited to 'engines/titanic/support/movie.h')
-rw-r--r--engines/titanic/support/movie.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/engines/titanic/support/movie.h b/engines/titanic/support/movie.h
index b5ae70de13..dfb0ca108a 100644
--- a/engines/titanic/support/movie.h
+++ b/engines/titanic/support/movie.h
@@ -29,11 +29,20 @@
namespace Titanic {
+enum MovieState {
+ MOVIE_STOPPED = -1, MOVIE_NONE = 0, MOVIE_FINISHED = 1, MOVIE_FRAME = 2
+};
+
class CVideoSurface;
+class CMovie;
+
+class CMovieList : public List<CMovie> {
+public:
+};
class CMovie : public ListItem {
protected:
- int _state;
+ MovieState _state;
int _field10;
public:
CMovie();
@@ -57,12 +66,20 @@ public:
bool isActive() const;
bool get10();
+
+ virtual MovieState getState() = 0;
+ virtual void update() = 0;
};
class OSMovie : public CMovie {
private:
Video::VideoDecoder *_video;
CVideoSurface *_videoSurface;
+
+ /**
+ * Decodes the next frame
+ */
+ void decodeFrame();
public:
OSMovie(const CResourceKey &name, CVideoSurface *surface);
virtual ~OSMovie();
@@ -86,10 +103,10 @@ public:
virtual int proc19();
virtual void proc20();
virtual void *proc21();
-};
-class CGlobalMovies : public List<CMovie> {
-public:
+
+ virtual MovieState getState();
+ virtual void update();
};
} // End of namespace Titanic