X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fxinestream.h;h=554b448aac489ff7ab5b899b7cec8181ac63249a;hb=19f69a037e98b6b510fca0f270a5a0cf05de522d;hp=c5778c7d0f36975acb193d2c16c7c510e987687b;hpb=a4982bb4d3fd9908aa01c824ac6202ac8618ac24;p=xinema.git diff --git a/source/xinestream.h b/source/xinestream.h index c5778c7..554b448 100644 --- a/source/xinestream.h +++ b/source/xinestream.h @@ -20,15 +20,23 @@ public: PLAYING }; + enum + { + OFF = -1 + }; + sigc::signal signal_state_changed; sigc::signal signal_title_changed; sigc::signal signal_duration_changed; sigc::signal signal_position_changed; sigc::signal signal_channels_changed; + sigc::signal signal_current_audio_channel_changed; + sigc::signal signal_current_spu_channel_changed; sigc::signal signal_finished; private: XineEngine &engine; + std::string filename; xine_stream_t *stream; xine_event_queue_t *queue; Msp::Mutex mutex; @@ -38,6 +46,8 @@ private: Msp::Time::TimeDelta position; std::vector audio_channels; std::vector spu_channels; + int current_audio; + int current_spu; bool channels_changed; public: @@ -48,13 +58,7 @@ 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 &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(); + const std::string &get_title() const; void play(); void seek(const Msp::Time::TimeDelta &); @@ -64,6 +68,13 @@ private: void set_state(State); public: + const std::vector &get_audio_channels() const { return audio_channels; } + const std::vector &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: void update_info();