X-Git-Url: http://git.tdb.fi/?p=xinema.git;a=blobdiff_plain;f=source%2Fxinestream.h;h=c5778c7d0f36975acb193d2c16c7c510e987687b;hp=65f25ab26ee13112a8e07a592075b75919308102;hb=a4982bb4d3fd9908aa01c824ac6202ac8618ac24;hpb=493b09323c6b07ea66ba3f4725c1f1831fd98222 diff --git a/source/xinestream.h b/source/xinestream.h index 65f25ab..c5778c7 100644 --- a/source/xinestream.h +++ b/source/xinestream.h @@ -2,6 +2,7 @@ #define XINESTREAM_H_ #include +#include #include #include #include @@ -23,6 +24,8 @@ public: sigc::signal signal_title_changed; sigc::signal signal_duration_changed; sigc::signal signal_position_changed; + sigc::signal signal_channels_changed; + sigc::signal signal_finished; private: XineEngine &engine; @@ -33,6 +36,9 @@ private: std::string title; Msp::Time::TimeDelta duration; Msp::Time::TimeDelta position; + std::vector audio_channels; + std::vector spu_channels; + bool channels_changed; public: XineStream(XineEngine &, const std::string &); @@ -43,6 +49,12 @@ public: 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 &get_audio_channels() const { return audio_channels; } + const std::vector &get_spu_channels() const { return spu_channels; } + void set_audio_channel(unsigned); + void set_audio_off(); + void set_spu_channel(unsigned); + void set_spu_off(); void play(); void seek(const Msp::Time::TimeDelta &); @@ -55,6 +67,7 @@ public: void tick(); private: void update_info(); + void update_channels(); void handle_event(const xine_event_t &); };