]> git.tdb.fi Git - xinema.git/blobdiff - remote/source/xinemacontrol.h
Add channel selection controls in the remote
[xinema.git] / remote / source / xinemacontrol.h
index 5693554836b88f7e0639810ea57f08f272affe7d..573207365c27b2dcfcbd0422620f176bd688faba 100644 (file)
@@ -16,6 +16,11 @@ public:
                PLAYING
        };
 
+       enum
+       {
+               OFF = -1
+       };
+
 private:
        QTcpSocket socket;
        QByteArray buffer;
@@ -23,6 +28,10 @@ private:
        QString title;
        float duration;
        float position;
+       QStringList audio_channels;
+       QStringList spu_channels;
+       int current_audio_channel;
+       int current_spu_channel;
 
 public:
        XinemaControl();
@@ -43,6 +52,13 @@ public:
        void pause();
        void stop();
 
+       const QStringList &get_audio_channels() const { return audio_channels; }
+       const QStringList &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_channel; }
+       int get_current_spu_channel() const { return current_spu_channel; }
+
 signals:
        void connected();
        void disconnected();
@@ -53,6 +69,9 @@ signals:
        void title_changed(const QString &);
        void duration_changed(float);
        void position_changed(float);
+       void channels_changed();
+       void current_audio_channel_changed(int);
+       void current_spu_channel_changed(int);
 
 private:
        void send_request(const QString &);
@@ -60,6 +79,8 @@ private:
 private slots:
        void data_available();
        void process_reply(const QString &);
+       static int convert_channel(const QString &);
+       static void resize_list(QStringList &, int);
 };
 
 #endif