]> git.tdb.fi Git - xinema.git/blobdiff - source/xineengine.h
Revert to using XLockDisplay/XUnlockDisplay
[xinema.git] / source / xineengine.h
index 2949734714419697813e3f3a62ad0da0f0aa72ef..50b0927659089d0c417c480daf5316066e9dfca4 100644 (file)
@@ -4,7 +4,6 @@
 #include <pthread.h>
 #include <sigc++/trackable.h>
 #include <xine.h>
-#include <msp/core/mutex.h>
 #include <msp/graphics/window.h>
 
 class XineStream;
@@ -13,23 +12,24 @@ class XineEngine: public sigc::trackable
 {
 private:
        Msp::Graphics::Window &window;
-       Msp::Mutex *display_mutex;
-       pthread_t locked_thread;
-       unsigned lock_count;
        xine_t *engine;
        xine_audio_port_t *audio_driver;
        x11_visual_t visual;
        xine_video_port_t *video_driver;
        Msp::Graphics::Window::Event *pending_expose;
+       std::list<XineStream *> streams;
 
 public:
-       XineEngine(Msp::Graphics::Window &, Msp::Mutex * = 0);
+       XineEngine(Msp::Graphics::Window &);
        ~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 add_stream(XineStream &);
+       void remove_stream(XineStream &);
+
        void tick();
 
 private:
@@ -37,8 +37,6 @@ private:
 
        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 *);
-       static void unlock_cb(void *);
 };
 
 #endif