]> git.tdb.fi Git - xinema.git/blobdiff - source/xinestream.h
Revise the channel interface
[xinema.git] / source / xinestream.h
index c5778c7d0f36975acb193d2c16c7c510e987687b..c4df85ded5383b1dd6af54f7b7116a6adf9a92b3 100644 (file)
@@ -20,11 +20,18 @@ public:
                PLAYING
        };
 
+       enum
+       {
+               OFF = -1
+       };
+
        sigc::signal<void, State> signal_state_changed;
        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> signal_channels_changed;
+       sigc::signal<void, int> signal_current_audio_channel_changed;
+       sigc::signal<void, int> signal_current_spu_channel_changed;
        sigc::signal<void> signal_finished;
 
 private:
@@ -38,6 +45,8 @@ private:
        Msp::Time::TimeDelta position;
        std::vector<std::string> audio_channels;
        std::vector<std::string> spu_channels;
+       int current_audio;
+       int current_spu;
        bool channels_changed;
 
 public:
@@ -51,10 +60,10 @@ public:
        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 set_audio_channel(unsigned);
-       void set_audio_off();
-       void set_spu_channel(unsigned);
-       void set_spu_off();
+       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 play();
        void seek(const Msp::Time::TimeDelta &);