X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fxinema.h;h=cdb1db8e0c3c52079869e2c537d29f556f010b0a;hb=HEAD;hp=ce9e92af666ab7f71c7c42e9f8e85fcfef5102b1;hpb=b59b30ecd8131677b42232722df901120bd62213;p=xinema.git diff --git a/source/xinema.h b/source/xinema.h index ce9e92a..cdb1db8 100644 --- a/source/xinema.h +++ b/source/xinema.h @@ -2,9 +2,13 @@ #define XINEMA_H_ #include +#include #include #include -#include +#include "networkinterface.h" + +class XineEngine; +class XineStream; class Xinema: public Msp::RegisteredApplication { @@ -14,27 +18,36 @@ private: EarlyInit(); }; +public: + sigc::signal signal_stream_created; + sigc::signal signal_stream_destroyed; + +private: EarlyInit early_init; - std::string filename; Msp::Graphics::Display display; Msp::Graphics::Window window; - xine_t *xine; - xine_audio_port_t *xine_audio; - x11_visual_t xine_visual; - xine_video_port_t *xine_video; - xine_stream_t *xine_stream; - xine_event_queue_t *xine_queue; + NetworkInterface network; + XineEngine *engine; + XineStream *stream; + bool logo_mode; + + Msp::Mutex command_mutex; + std::string pending_mrl; + bool pending_logo; public: Xinema(int, char **); virtual int main(); - private: virtual void tick(); - 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 *); +public: + void play_file(const Msp::FS::Path &); + XineStream *get_stream() const { return logo_mode ? 0 : stream; } + +private: + void show_logo(); }; #endif