X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=remote%2Fsource%2Fxinemacontrol.h;h=573207365c27b2dcfcbd0422620f176bd688faba;hb=857fbdc12041b7f01f45d4dcf2208f9dccf29294;hp=dc7ad8fcd20cbdce0d439013bbe5f359e6da3aa2;hpb=6fd809bbdbfe628ef1e63b68665f374751838baf;p=xinema.git diff --git a/remote/source/xinemacontrol.h b/remote/source/xinemacontrol.h index dc7ad8f..5732073 100644 --- a/remote/source/xinemacontrol.h +++ b/remote/source/xinemacontrol.h @@ -8,12 +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(); @@ -24,19 +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 &); @@ -44,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