X-Git-Url: http://git.tdb.fi/?p=xinema.git;a=blobdiff_plain;f=source%2Fxineengine.h;h=2949734714419697813e3f3a62ad0da0f0aa72ef;hp=8acb1a5975cb8acb87930453393cbfbaba5df960;hb=2204af390e6fe6db98c5d2f6e5317f841dc31198;hpb=417b194b1dc7a802c2f228580536d2a0428b00f3 diff --git a/source/xineengine.h b/source/xineengine.h index 8acb1a5..2949734 100644 --- a/source/xineengine.h +++ b/source/xineengine.h @@ -2,16 +2,17 @@ #define XINEENGINE_H_ #include +#include #include #include #include class XineStream; -class XineEngine +class XineEngine: public sigc::trackable { private: - const Msp::Graphics::Window &window; + Msp::Graphics::Window &window; Msp::Mutex *display_mutex; pthread_t locked_thread; unsigned lock_count; @@ -19,16 +20,21 @@ private: xine_audio_port_t *audio_driver; x11_visual_t visual; xine_video_port_t *video_driver; + Msp::Graphics::Window::Event *pending_expose; public: - XineEngine(const Msp::Graphics::Window &, Msp::Mutex * = 0); + XineEngine(Msp::Graphics::Window &, Msp::Mutex * = 0); ~XineEngine(); xine_t *get_engine() { return engine; } xine_audio_port_t *get_audio_driver() { return audio_driver; } xine_video_port_t *get_video_driver() { return video_driver; } + void tick(); + private: + void window_exposed(unsigned, unsigned, unsigned, unsigned, const Msp::Graphics::Window::Event &); + static void dest_size_cb(void *, int, int, double, int *, int *, double *); static void frame_output_cb(void *, int, int, double, int *, int *, int *, int *, double *, int *, int *); static void lock_cb(void *);