]> git.tdb.fi Git - xinema.git/blobdiff - remote/source/streamcontrolitem.h
Implement seeking and play/pause controls in the remote
[xinema.git] / remote / source / streamcontrolitem.h
index 5b9b2bc0bac7111ce66ef1802468e7edee4e16e4..cb08836c69ca0a21327832057069202b5405020d 100644 (file)
@@ -2,6 +2,7 @@
 #define STREAMCONTROLITEM_H_
 
 #include <QQuickItem>
+#include "xinemacontrol.h"
 
 class XinemaControlItem;
 
@@ -10,9 +11,20 @@ class StreamControlItem: public QQuickItem
        Q_OBJECT
 
        Q_PROPERTY(XinemaControlItem *control READ get_control WRITE set_control NOTIFY control_changed)
+       Q_PROPERTY(PlaybackState playbackState READ get_playback_state WRITE set_playback_state NOTIFY playback_state_changed)
        Q_PROPERTY(QString title READ get_title NOTIFY title_changed)
        Q_PROPERTY(float duration READ get_duration NOTIFY duration_changed)
-       Q_PROPERTY(float position READ get_position NOTIFY position_changed)
+       Q_PROPERTY(float position READ get_position WRITE set_position NOTIFY position_changed)
+
+       Q_ENUMS(PlaybackState)
+
+public:
+       enum PlaybackState
+       {
+               Stopped = XinemaControl::STOPPED,
+               Paused = XinemaControl::PAUSED,
+               Playing = XinemaControl::PLAYING
+       };
 
 private:
        XinemaControlItem *control;
@@ -23,12 +35,16 @@ public:
        void set_control(XinemaControlItem *);
        XinemaControlItem *get_control() const { return control; }
 
+       PlaybackState get_playback_state() const;
+       void set_playback_state(PlaybackState);
        QString get_title() const;
        float get_duration() const;
+       void set_position(float);
        float get_position() const;
 
 signals:
        void control_changed();
+       void playback_state_changed();
        void title_changed();
        void duration_changed();
        void position_changed();