]> git.tdb.fi Git - xinema.git/blobdiff - source/xinema.h
Re-display the logo after the stream finishes
[xinema.git] / source / xinema.h
index 3c3f75a0eb610746433343778157b39998686bcc..cdb1db8e0c3c52079869e2c537d29f556f010b0a 100644 (file)
@@ -2,9 +2,10 @@
 #define XINEMA_H_
 
 #include <msp/core/application.h>
-#include <msp/core/mutex.h>
+#include <msp/fs/path.h>
 #include <msp/graphics/display.h>
 #include <msp/graphics/window.h>
+#include "networkinterface.h"
 
 class XineEngine;
 class XineStream;
@@ -12,20 +13,41 @@ class XineStream;
 class Xinema: public Msp::RegisteredApplication<Xinema>
 {
 private:
-       std::string filename;
+       struct EarlyInit
+       {
+               EarlyInit();
+       };
+
+public:
+       sigc::signal<void, XineStream &> signal_stream_created;
+       sigc::signal<void> signal_stream_destroyed;
+
+private:
+       EarlyInit early_init;
        Msp::Graphics::Display display;
-       Msp::Mutex display_mutex;
        Msp::Graphics::Window window;
+       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();
+
+public:
+       void play_file(const Msp::FS::Path &);
+       XineStream *get_stream() const { return logo_mode ? 0 : stream; }
+
+private:
+       void show_logo();
 };
 
 #endif