X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=remote%2Fsource%2Fxinemacontrol.h;h=fb62bab51be97583c2d37cc4d6910664e9a20b3f;hb=5ddfcd433a000be3c32e7fc6ade4de9e0673de9e;hp=dc7ad8fcd20cbdce0d439013bbe5f359e6da3aa2;hpb=6fd809bbdbfe628ef1e63b68665f374751838baf;p=xinema.git diff --git a/remote/source/xinemacontrol.h b/remote/source/xinemacontrol.h index dc7ad8f..fb62bab 100644 --- a/remote/source/xinemacontrol.h +++ b/remote/source/xinemacontrol.h @@ -2,18 +2,41 @@ #define XINEMACONTROL_H_ #include +#include #include 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; + QSize video_size; + float framerate; + QString video_codec; + QString audio_codec; + QStringList audio_channels; + QStringList spu_channels; + int current_audio_channel; + int current_spu_channel; public: XinemaControl(); @@ -24,9 +47,26 @@ 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; } + const QSize &get_video_size() const { return video_size; } + float get_framerate() const { return framerate; } + const QString &get_video_codec() const { return video_codec; } + const QString &get_audio_codec() const { return audio_codec; } + + 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(); @@ -34,9 +74,16 @@ signals: 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 size_changed(const QSize &); + void framerate_changed(float); + void codecs_changed(const QString &, const QString &); + void channels_changed(); + void current_audio_channel_changed(int); + void current_spu_channel_changed(int); private: void send_request(const QString &); @@ -44,6 +91,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