]> git.tdb.fi Git - xinema.git/blob - remote/source/streamcontrolitem.h
8bb2ccee397a19f0ed4ec16755cf66d7d9a8d8a8
[xinema.git] / remote / source / streamcontrolitem.h
1 #ifndef STREAMCONTROLITEM_H_
2 #define STREAMCONTROLITEM_H_
3
4 #include <QQuickItem>
5 #include "xinemacontrol.h"
6
7 class XinemaControlItem;
8
9 class StreamControlItem: public QQuickItem
10 {
11         Q_OBJECT
12
13         Q_PROPERTY(XinemaControlItem *control READ get_control WRITE set_control NOTIFY control_changed)
14         Q_PROPERTY(PlaybackState playbackState READ get_playback_state WRITE set_playback_state NOTIFY playback_state_changed)
15         Q_PROPERTY(QString title READ get_title NOTIFY title_changed)
16         Q_PROPERTY(float duration READ get_duration NOTIFY duration_changed)
17         Q_PROPERTY(float position READ get_position WRITE set_position NOTIFY position_changed)
18         Q_PROPERTY(QStringList audioChannels READ get_audio_channels NOTIFY channels_changed)
19         Q_PROPERTY(QStringList spuChannels READ get_spu_channels NOTIFY channels_changed)
20         Q_PROPERTY(int currentAudioChannel READ get_current_audio_channel WRITE select_audio_channel NOTIFY current_audio_channel_changed)
21         Q_PROPERTY(int currentSpuChannel READ get_current_spu_channel WRITE select_spu_channel NOTIFY current_spu_channel_changed)
22
23         Q_ENUMS(PlaybackState)
24
25 public:
26         enum PlaybackState
27         {
28                 Stopped = XinemaControl::STOPPED,
29                 Paused = XinemaControl::PAUSED,
30                 Playing = XinemaControl::PLAYING
31         };
32
33 private:
34         XinemaControlItem *control;
35
36 public:
37         StreamControlItem();
38
39         void set_control(XinemaControlItem *);
40         XinemaControlItem *get_control() const { return control; }
41
42         PlaybackState get_playback_state() const;
43         void set_playback_state(PlaybackState);
44         QString get_title() const;
45         float get_duration() const;
46         void set_position(float);
47         float get_position() const;
48         QStringList get_audio_channels() const;
49         QStringList get_spu_channels() const;
50         void select_audio_channel(int);
51         void select_spu_channel(int);
52         int get_current_audio_channel() const;
53         int get_current_spu_channel() const;
54
55 signals:
56         void control_changed();
57         void playback_state_changed();
58         void title_changed();
59         void duration_changed();
60         void position_changed();
61         void channels_changed();
62         void current_audio_channel_changed();
63         void current_spu_channel_changed();
64
65 private slots:
66         void control_channels_changed();
67 };
68
69 #endif