22 #ifndef MEDIASTATION_MOVIE_H 23 #define MEDIASTATION_MOVIE_H 25 #include "common/array.h" 27 #include "mediastation/actor.h" 28 #include "mediastation/audio.h" 29 #include "mediastation/datafile.h" 30 #include "mediastation/bitmap.h" 31 #include "mediastation/mediascript/scriptconstants.h" 36 kInvalidMovieBlit = 0,
37 kUncompressedMovieBlit = 1,
38 kUncompressedDeltaMovieBlit = 2,
39 kCompressedDeltaMovieBlit = 3,
47 uint _keyframeEndInMilliseconds = 0;
50 enum MovieSectionType {
51 kMovieRootSection = 0x06a8,
52 kMovieImageDataSection = 0x06a9,
53 kMovieFrameDataSection = 0x06aa,
54 kMovieChunkMarkerSection = 0x06ab
62 uint startInMilliseconds = 0;
63 uint endInMilliseconds = 0;
66 MovieBlitType blitType = kInvalidMovieBlit;
68 uint keyframeIndex = 0;
69 bool keepAfterEnd =
false;
89 virtual bool isVisible()
const override;
104 virtual void readChunk(
Chunk &chunk)
override;
112 void readImageData(
Chunk &chunk);
113 void readFrameData(
Chunk &chunk);
121 virtual void readChunk(
Chunk &chunk)
override;
122 virtual void soundPlayStateChanged(SoundPlayState state, SoundStopReason why)
override;
139 virtual void readChunk(
Chunk &chunk)
override;
140 virtual void loadIsComplete()
override;
141 virtual void readParameter(
Chunk &chunk, ActorHeaderSectionType paramType)
override;
144 virtual PreDisplaySyncState preDisplaySync()
override;
145 virtual void onEvent(
const ActorEvent &event)
override;
146 virtual void timerEvent(
const TimerEvent &event)
override;
150 virtual void invalidateLocalBounds()
override;
151 bool isLayerInSeparateZPlane(uint layerId);
156 uint _chunkCount = 0;
157 double _frameRate = 0;
158 uint _disableScreenAutoUpdateToken = 0;
160 bool _shouldCache =
false;
161 bool _isPlaying =
false;
162 bool _hasStill =
false;
173 void timeStop(
bool isMovieEnd);
175 void setVisibility(
bool visibility);
176 void updateFrameState();
178 void decompressIntoAuxImage(
MovieFrame *frame);
180 void parseMovieHeader(
Chunk &chunk);
181 void parseMovieChunkMarker(
Chunk &chunk);
Definition: graphics.h:101