diff options
Diffstat (limited to 'drivers/theoraplayer/video_stream_theoraplayer.h')
-rw-r--r-- | drivers/theoraplayer/video_stream_theoraplayer.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/theoraplayer/video_stream_theoraplayer.h b/drivers/theoraplayer/video_stream_theoraplayer.h new file mode 100644 index 0000000000..063bf38953 --- /dev/null +++ b/drivers/theoraplayer/video_stream_theoraplayer.h @@ -0,0 +1,62 @@ +#ifndef VIDEO_STREAM_THEORAPLAYER_H +#define VIDEO_STREAM_THEORAPLAYER_H + +#include "scene/resources/video_stream.h" +#include "io/resource_loader.h" + +class TheoraVideoManager; +class TheoraVideoClip; + +class VideoStreamTheoraplayer : public VideoStream { + + OBJ_TYPE(VideoStreamTheoraplayer,VideoStream); + + mutable Image frame; + TheoraVideoManager* mgr; + TheoraVideoClip* clip; + bool started; + bool playing; + bool loop; + +public: + + virtual void stop(); + virtual void play(); + + virtual bool is_playing() const; + + virtual void set_paused(bool p_paused); + virtual bool is_paused(bool p_paused) const; + + virtual void set_loop(bool p_enable); + virtual bool has_loop() const; + + virtual float get_pos() const; + virtual void seek_pos(float p_time); + + virtual float get_length() const; + + virtual int get_pending_frame_count() const; + virtual Image pop_frame(); + virtual Image peek_frame() const; + + void update(float p_time); + + void set_file(const String& p_file); + + ~VideoStreamTheoraplayer(); + VideoStreamTheoraplayer(); +}; + +class ResourceFormatLoaderVideoStreamTheoraplayer : public ResourceFormatLoader { +public: + virtual RES load(const String &p_path,const String& p_original_path=""); + virtual void get_recognized_extensions(List<String> *p_extensions) const; + virtual bool handles_type(const String& p_type) const; + virtual String get_resource_type(const String &p_path) const; + +}; + + +#endif + |