aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/graphics/video32.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/graphics/video32.h')
-rw-r--r--engines/sci/graphics/video32.h210
1 files changed, 1 insertions, 209 deletions
diff --git a/engines/sci/graphics/video32.h b/engines/sci/graphics/video32.h
index 7320ede5dc..7033f7c647 100644
--- a/engines/sci/graphics/video32.h
+++ b/engines/sci/graphics/video32.h
@@ -23,214 +23,16 @@
#ifndef SCI_GRAPHICS_VIDEO32_H
#define SCI_GRAPHICS_VIDEO32_H
-#include "common/rect.h" // for Rect
-#include "common/scummsys.h" // for int16, uint8, int32
-#include "common/str.h" // for String
-#include "sci/video/robot_decoder.h" // for RobotDecoder
-
-namespace Video {
-class AdvancedVMDDecoder;
-class AVIDecoder;
-}
+namespace Video { class AdvancedVMDDecoder; }
namespace Sci {
class Plane;
class ScreenItem;
class SegManager;
-class SEQDecoder;
-struct Palette;
-#pragma mark SEQPlayer
-
-/**
- * SEQPlayer is used to play SEQ animations.
- * Used by DOS versions of GK1 and QFG4CD.
- */
-class SEQPlayer {
-public:
- SEQPlayer(SegManager *segMan);
-
- /**
- * Plays a SEQ animation with the given
- * file name, with each frame being displayed
- * for `numTicks` ticks.
- */
- void play(const Common::String &fileName, const int16 numTicks, const int16 x, const int16 y);
-
-private:
- SegManager *_segMan;
- SEQDecoder *_decoder;
-
- /**
- * The plane where the SEQ will be drawn.
- */
- Plane *_plane;
-
- /**
- * The screen item representing the SEQ surface.
- */
- ScreenItem *_screenItem;
-
- /**
- * The bitmap used to render video output.
- */
- reg_t _bitmap;
-
- /**
- * Renders a single frame of video.
- */
- void renderFrame() const;
-};
-
-#pragma mark -
-#pragma mark AVIPlayer
-
-/**
- * AVIPlayer is used to play AVI videos. Used by
- * Windows versions of GK1CD, KQ7, and QFG4CD.
- */
-class AVIPlayer {
-public:
- enum IOStatus {
- kIOSuccess = 0,
- kIOFileNotFound = 2,
- kIOSeekFailed = 12
- };
-
- enum AVIStatus {
- kAVINotOpen = 0,
- kAVIOpen = 1,
- kAVIPlaying = 2,
- kAVIPaused = 3
- };
-
- enum EventFlags {
- kEventFlagNone = 0,
- kEventFlagEnd = 1,
- kEventFlagEscapeKey = 2,
- kEventFlagMouseDown = 4,
- kEventFlagHotRectangle = 8
- };
-
- AVIPlayer(SegManager *segMan, EventManager *eventMan);
- ~AVIPlayer();
-
- /**
- * Opens a stream to an AVI resource.
- */
- IOStatus open(const Common::String &fileName);
-
- /**
- * Initializes the AVI rendering parameters for the
- * current AVI. This must be called after `open`.
- */
- IOStatus init1x(const int16 x, const int16 y, const int16 width, const int16 height);
-
- /**
- * Initializes the AVI rendering parameters for the
- * current AVI, in pixel-doubling mode. This must
- * be called after `open`.
- */
- IOStatus init2x(const int16 x, const int16 y);
-
- /**
- * Begins playback of the current AVI.
- */
- IOStatus play(const int16 from, const int16 to, const int16 showStyle, const bool cue);
-
- /**
- * Stops playback and closes the currently open AVI stream.
- */
- IOStatus close();
-
- /**
- * Seeks the currently open AVI stream to the given frame.
- */
- IOStatus cue(const uint16 frameNo);
-
- /**
- * Returns the duration of the current video.
- */
- uint16 getDuration() const;
-
- /**
- * Plays the AVI until an event occurs (e.g. user
- * presses escape, clicks, etc.).
- */
- EventFlags playUntilEvent(const EventFlags flags);
-
-private:
- typedef Common::HashMap<uint16, AVIStatus> StatusMap;
-
- SegManager *_segMan;
- EventManager *_eventMan;
- Video::AVIDecoder *_decoder;
-
- /**
- * Playback status of the player.
- */
- AVIStatus _status;
-
- /**
- * The plane where the AVI will be drawn.
- */
- Plane *_plane;
-
- /**
- * The screen item representing the AVI surface,
- * in 8bpp mode. In 24bpp mode, video is drawn
- * directly to the screen.
- */
- ScreenItem *_screenItem;
-
- /**
- * The bitmap used to render video output in
- * 8bpp mode.
- */
- reg_t _bitmap;
-
- /**
- * The rectangle where the video will be drawn,
- * in game script coordinates.
- */
- Common::Rect _drawRect;
-
- /**
- * The scale buffer for pixel-doubled videos
- * drawn in 24bpp mode.
- */
- void *_scaleBuffer;
-
- /**
- * In SCI2.1, whether or not the video should
- * be pixel doubled for playback.
- */
- bool _pixelDouble;
-
- /**
- * Performs common initialisation for both
- * scaled and unscaled videos.
- */
- void init();
-
- /**
- * Renders video without event input until the
- * video is complete.
- */
- void renderVideo() const;
-
- /**
- * Renders a single frame of video.
- */
- void renderFrame() const;
-};
-
-#pragma mark -
#pragma mark VMDPlayer
/**
* VMDPlayer is used to play VMD videos.
- * Used by Phant1, GK2, PQ:SWAT, Shivers, SQ6,
- * Torin, and Lighthouse.
*/
class VMDPlayer {
public:
@@ -495,24 +297,14 @@ private:
bool _showCursor;
};
-/**
- * Video32 provides facilities for playing back
- * video in SCI engine.
- */
class Video32 {
public:
Video32(SegManager *segMan, EventManager *eventMan) :
- _SEQPlayer(segMan),
- _AVIPlayer(segMan, eventMan),
_VMDPlayer(segMan, eventMan) {}
- SEQPlayer &getSEQPlayer() { return _SEQPlayer; }
- AVIPlayer &getAVIPlayer() { return _AVIPlayer; }
VMDPlayer &getVMDPlayer() { return _VMDPlayer; }
private:
- SEQPlayer _SEQPlayer;
- AVIPlayer _AVIPlayer;
VMDPlayer _VMDPlayer;
};
} // End of namespace Sci