MythTV  master
mythfrontendservice.h
Go to the documentation of this file.
1 #ifndef MYTHFRONTENDSERVICE_H
2 #define MYTHFRONTENDSERVICE_H
3 
4 // MythTV
6 
7 #define FRONTEND_SERVICE QString("/Frontend/")
8 #define FRONTEND_HANDLE QString("Frontend")
9 
10 class FrontendStatus : public QObject
11 {
12  Q_OBJECT
13  Q_CLASSINFO("Version", "1.1")
14  Q_CLASSINFO("State", "type=QString")
15  Q_CLASSINFO("ChapterTimes", "type=QString;name=Chapter")
16  Q_CLASSINFO("SubtitleTracks", "type=QString;name=Track")
17  Q_CLASSINFO("AudioTracks", "type=QString;name=Track")
18  SERVICE_PROPERTY2(QString, Name)
19  SERVICE_PROPERTY2(QString, Version)
20  SERVICE_PROPERTY2(QVariantMap, State)
21  SERVICE_PROPERTY2(QVariantList, ChapterTimes)
22  SERVICE_PROPERTY2(QVariantMap, SubtitleTracks)
23  SERVICE_PROPERTY2(QVariantMap, AudioTracks)
24 
25  public:
26  Q_INVOKABLE FrontendStatus(QObject *parent = nullptr)
27  : QObject ( parent ) {};
28  FrontendStatus(QString Name, QString Version, QVariantMap State);
29 };
30 
32 
33 class FrontendActionList : public QObject
34 {
35  Q_OBJECT
36  Q_CLASSINFO("Version", "1.0")
37  Q_CLASSINFO("ActionList", "type=QString;name=Action")
38  SERVICE_PROPERTY2(QVariantMap, ActionList)
39 
40  public:
41  Q_INVOKABLE FrontendActionList(QObject *parent = nullptr)
42  : QObject ( parent ) {};
43  FrontendActionList(QVariantMap List);
44 };
45 
47 
49 {
50  Q_OBJECT
51  Q_CLASSINFO("Version", "2.1")
52  Q_CLASSINFO("SendAction", "methods=POST")
53  Q_CLASSINFO("SendKey", "methods=POST")
54  Q_CLASSINFO("PlayVideo", "methods=POST")
55  Q_CLASSINFO("PlayRecording", "methods=POST")
56  Q_CLASSINFO("SendMessage", "methods=POST")
57  Q_CLASSINFO("SendNotification", "methods=POST")
58  Q_CLASSINFO("GetContextList", "name=StringList") // Consistency with old code
59 
60  public slots:
61  static bool SendAction (const QString& Action, const QString& Value, uint Width, uint Height);
62  static bool SendKey (const QString& Key);
63  static FrontendActionList* GetActionList(const QString& Context);
64  static QStringList GetContextList ();
65  static FrontendStatus* GetStatus ();
66  static bool PlayVideo (const QString& Id, bool UseBookmark);
67  static bool PlayRecording (int RecordedId, int ChanId, const QDateTime& StartTime);
68  static bool SendMessage (const QString& Message, uint Timeout);
69  static bool SendNotification(bool Error, const QString& Type,
70  const QString& Message, const QString& Origin,
71  const QString& Description, const QString& Image,
72  const QString& Extra, const QString& ProgressText,
73  float Progress, std::chrono::seconds Timeout,
74  bool Fullscreen, uint Visibility,
75  uint Priority);
76 
77  public:
79  ~MythFrontendService() override = default;
80  static void RegisterCustomTypes();
81 
82  protected:
83  static bool IsValidAction(const QString& Action);
84 
85  private:
86  Q_DISABLE_COPY(MythFrontendService)
87 };
88 
89 #endif
MythFrontendService
Definition: mythfrontendservice.h:48
ActionList
QList< ActionID > ActionList
Definition: action.h:115
FrontendActionList::FrontendActionList
Q_INVOKABLE FrontendActionList(QObject *parent=nullptr)
Definition: mythfrontendservice.h:41
Image
Definition: image.h:33
FrontendActionList
Definition: mythfrontendservice.h:33
Action
An action (for this plugin) consists of a description, and a set of key sequences.
Definition: action.h:40
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(StandardSetting *)
SendMessage
static int SendMessage(const MythUtilCommandLineParser &cmdline)
Definition: messageutils.cpp:55
SERVICE_PROPERTY2
#define SERVICE_PROPERTY2(Type, Name)
Definition: mythhttpservice.h:72
State
State
Definition: zmserver.h:68
FrontendStatus::FrontendStatus
Q_INVOKABLE FrontendStatus(QObject *parent=nullptr)
Definition: mythfrontendservice.h:26
uint
unsigned int uint
Definition: compat.h:81
MythHTTPService
Definition: mythhttpservice.h:19
FrontendStatus
Definition: mythfrontendservice.h:10
mythhttpservice.h
Name
Definition: channelsettings.cpp:71
Priority
Definition: channelsettings.cpp:216