]> git.tdb.fi Git - xinema.git/blobdiff - source/xinestream.h
Create an icon for the remote
[xinema.git] / source / xinestream.h
index c4df85ded5383b1dd6af54f7b7116a6adf9a92b3..01cc3e05c3533c1baddde06c6a4dc4998a6aee21 100644 (file)
@@ -29,6 +29,9 @@ public:
        sigc::signal<void, const std::string &> signal_title_changed;
        sigc::signal<void, const Msp::Time::TimeDelta &> signal_duration_changed;
        sigc::signal<void, const Msp::Time::TimeDelta &> signal_position_changed;
+       sigc::signal<void, unsigned, unsigned> signal_video_size_changed;
+       sigc::signal<void, float> signal_framerate_changed;
+       sigc::signal<void, const std::string &, const std::string &> signal_codecs_changed;
        sigc::signal<void> signal_channels_changed;
        sigc::signal<void, int> signal_current_audio_channel_changed;
        sigc::signal<void, int> signal_current_spu_channel_changed;
@@ -36,6 +39,7 @@ public:
 
 private:
        XineEngine &engine;
+       std::string filename;
        xine_stream_t *stream;
        xine_event_queue_t *queue;
        Msp::Mutex mutex;
@@ -43,6 +47,11 @@ private:
        std::string title;
        Msp::Time::TimeDelta duration;
        Msp::Time::TimeDelta position;
+       unsigned video_width;
+       unsigned video_height;
+       float framerate;
+       std::string video_codec;
+       std::string audio_codec;
        std::vector<std::string> audio_channels;
        std::vector<std::string> spu_channels;
        int current_audio;
@@ -57,13 +66,12 @@ public:
        State get_state() const { return state; }
        const Msp::Time::TimeDelta &get_duration() const { return duration; }
        const Msp::Time::TimeDelta &get_position() const { return position; }
-       const std::string &get_title() const { return title; }
-       const std::vector<std::string> &get_audio_channels() const { return audio_channels; }
-       const std::vector<std::string> &get_spu_channels() const { return spu_channels; }
-       void select_audio_channel(int);
-       void select_spu_channel(int);
-       int get_current_audio_channel() const { return current_audio; }
-       int get_current_spu_channel() const { return current_spu; }
+       const std::string &get_title() const;
+       unsigned get_video_width() const { return video_width; }
+       unsigned get_video_height() const { return video_height; }
+       float get_framerate() const { return framerate; }
+       const std::string &get_video_codec() const { return video_codec; }
+       const std::string &get_audio_codec() const { return audio_codec; }
 
        void play();
        void seek(const Msp::Time::TimeDelta &);
@@ -73,8 +81,16 @@ private:
        void set_state(State);
 
 public:
+       const std::vector<std::string> &get_audio_channels() const { return audio_channels; }
+       const std::vector<std::string> &get_spu_channels() const { return spu_channels; }
+       void select_audio_channel(int);
+       void select_spu_channel(int);
+       int get_current_audio_channel() const { return current_audio; }
+       int get_current_spu_channel() const { return current_spu; }
+
        void tick();
 private:
+       static bool equals(const std::string &, const char *);
        void update_info();
        void update_channels();
        void handle_event(const xine_event_t &);