diff options
author | Marisa-Chan | 2014-01-17 16:52:26 +0700 |
---|---|---|
committer | Marisa-Chan | 2014-01-17 16:52:26 +0700 |
commit | 3a1fda6d5760b25acb3bb561b567f6402685bcc6 (patch) | |
tree | 853d47b4f6b0cb460cf91b19615ab9f1a4455d41 /engines/zvision/meta_animation.h | |
parent | 7b7ae43f7fe30782201fba691beee1bad18db60a (diff) | |
download | scummvm-rg350-3a1fda6d5760b25acb3bb561b567f6402685bcc6.tar.gz scummvm-rg350-3a1fda6d5760b25acb3bb561b567f6402685bcc6.tar.bz2 scummvm-rg350-3a1fda6d5760b25acb3bb561b567f6402685bcc6.zip |
ZVISION: New class for handle rlf and avi animations.
Diffstat (limited to 'engines/zvision/meta_animation.h')
-rw-r--r-- | engines/zvision/meta_animation.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/engines/zvision/meta_animation.h b/engines/zvision/meta_animation.h new file mode 100644 index 0000000000..fea7a6a6c1 --- /dev/null +++ b/engines/zvision/meta_animation.h @@ -0,0 +1,98 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef ZVISION_METAANIM_NODE_H +#define ZVISION_METAANIM_NODE_H + +#include "zvision/sidefx.h" +#include "common/rect.h" +#include "common/list.h" + + +namespace Common { +class String; +} + +namespace Video { +class VideoDecoder; +} + +namespace Graphics { +struct Surface; +} + +namespace ZVision { + +class ZVision; +class RlfAnimation; + +class MetaAnimation { +public: + MetaAnimation(const Common::String &fileName); + ~MetaAnimation(); + + struct playnode { + Common::Rect pos; + int32 slot; + int32 start; + int32 stop; + int32 loop; + int32 _cur_frm; + int32 _delay; + Graphics::Surface *_scaled; + }; + +private: + enum FileType { + RLF = 1, + AVI = 2 + }; + +private: + union { + RlfAnimation *rlf; + Video::VideoDecoder *avi; + } _animation; + + FileType _fileType; + int32 _frmDelay; + + const Graphics::Surface *_cur_frame; + +public: + + uint frameCount(); + uint width(); + uint height(); + uint32 frameTime(); + + void seekToFrame(int frameNumber); + + const Graphics::Surface *decodeNextFrame(); + const Graphics::Surface *getFrameData(uint frameNumber); + + bool endOfAnimation(); +}; + +} // End of namespace ZVision + +#endif |