X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=remote%2Fsource%2Fxinemacontrol.h;h=573207365c27b2dcfcbd0422620f176bd688faba;hb=afa557f5c0b0debaaaf6c4c777ccc2ba10965c50;hp=5dd5e27b225cf8c32f501a20f03759702bc5bb65;hpb=1abfbdd94fa45883f6d742df00508715f79c9954;p=xinema.git diff --git a/remote/source/xinemacontrol.h b/remote/source/xinemacontrol.h index 5dd5e27..5732073 100644 --- a/remote/source/xinemacontrol.h +++ b/remote/source/xinemacontrol.h @@ -8,9 +8,30 @@ class XinemaControl: public QObject { Q_OBJECT +public: + enum PlaybackState + { + STOPPED, + PAUSED, + PLAYING + }; + + enum + { + OFF = -1 + }; + private: QTcpSocket socket; QByteArray buffer; + PlaybackState playback_state; + QString title; + float duration; + float position; + QStringList audio_channels; + QStringList spu_channels; + int current_audio_channel; + int current_spu_channel; public: XinemaControl(); @@ -21,12 +42,36 @@ public: void list_directory(const QString &); void play_file(const QString &); + PlaybackState get_playback_state() const { return playback_state; } + const QString &get_title() const { return title; } + float get_duration() const { return duration; } + float get_position() const { return position; } + + void play(); + void seek(float); + 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(); void directory_started(const QString &); void file_added(const QString &); void subdirectory_added(const QString &); + void playback_state_changed(PlaybackState); + 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 &); @@ -34,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