22 #ifndef MEDIASTATION_MOVIE_H 23 #define MEDIASTATION_MOVIE_H 25 #include "common/array.h" 27 #include "mediastation/asset.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;
55 uint32 index() {
return _bitmapHeader->_index; }
61 enum MovieSectionType {
62 kMovieRootSection = 0x06a8,
63 kMovieImageDataSection = 0x06a9,
64 kMovieFrameDataSection = 0x06aa
72 uint startInMilliseconds = 0;
73 uint endInMilliseconds = 0;
76 MovieBlitType blitType = kInvalidMovieBlit;
78 uint keyframeIndex = 0;
79 bool keepAfterEnd =
false;
87 Movie() : _framesOnScreen(Movie::compareFramesByZIndex),
SpatialEntity(kAssetTypeMovie) {}
88 virtual ~
Movie()
override;
90 virtual void readChunk(
Chunk &chunk)
override;
91 virtual void readSubfile(
Subfile &subfile,
Chunk &chunk)
override;
93 virtual void readParameter(
Chunk &chunk, AssetHeaderSectionType paramType)
override;
95 virtual void process()
override;
99 virtual bool isVisible()
const override {
return _isVisible; }
101 uint32 _audioChunkReference = 0;
102 uint32 _animationChunkReference = 0;
106 uint _audioChunkCount = 0;
110 bool _isPlaying =
false;
111 bool _hasStill =
false;
123 void setVisibility(
bool visibility);
124 void updateFrameState();
126 void decompressIntoAuxImage(
MovieFrame *frame);
128 void readImageData(
Chunk &chunk);
129 void readFrameData(
Chunk &chunk);