MythTV master
frontendStatus.h
Go to the documentation of this file.
1#ifndef FRONTENDSTATUS_H
2#define FRONTENDSTATUS_H
3
5
6namespace DTC
7{
8 class FrontendStatus : public QObject
9 {
10 Q_OBJECT
11 Q_CLASSINFO("version", "1.1");
12
13 Q_CLASSINFO( "State", "type=QString");
14 Q_CLASSINFO( "ChapterTimes", "type=QString;name=Chapter");
15 Q_CLASSINFO( "SubtitleTracks", "type=QString;name=Track");
16 Q_CLASSINFO( "AudioTracks", "type=QString;name=Track");
17
18 Q_PROPERTY(QString Name READ Name WRITE setName)
19 Q_PROPERTY(QString Version READ Version WRITE setVersion)
20 Q_PROPERTY(QVariantMap State READ State)
21 Q_PROPERTY(QVariantList ChapterTimes READ ChapterTimes)
22 Q_PROPERTY(QVariantMap SubtitleTracks READ SubtitleTracks)
23 Q_PROPERTY(QVariantMap AudioTracks READ AudioTracks)
24
25 PROPERTYIMP_REF(QString, Name)
26 PROPERTYIMP_REF(QString, Version)
27 PROPERTYIMP_RO_REF(QVariantMap, State)
28 PROPERTYIMP_RO_REF(QVariantList, ChapterTimes)
31
32 public:
33
34 static inline void InitializeCustomTypes();
35
36 Q_INVOKABLE explicit FrontendStatus(QObject *parent = nullptr) : QObject(parent)
37 {
38 }
39
40 void Copy( const FrontendStatus *src)
41 {
42 m_Name = src->m_Name;
43 m_Version = src->m_Version;
44 m_State = src->m_State;
45 m_ChapterTimes = src->m_ChapterTimes;
46 m_SubtitleTracks = src->m_SubtitleTracks;
47 m_AudioTracks = src->m_AudioTracks;
48 }
49
50 void Process(void)
51 {
52 if (m_State.contains("chaptertimes"))
53 {
54#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
55 auto type = static_cast<QMetaType::Type>(m_State["chaptertimes"].type());
56#else
57 auto type = m_State["chaptertimes"].typeId();
58#endif
59 if (type == QMetaType::QVariantList)
60 m_ChapterTimes = m_State["chaptertimes"].toList();
61 m_State.remove("chaptertimes");
62 }
63
64 if (m_State.contains("subtitletracks"))
65 {
66#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
67 auto type = static_cast<QMetaType::Type>(m_State["subtitletracks"].type());
68#else
69 auto type = m_State["subtitletracks"].typeId();
70#endif
71 if (type == QMetaType::QVariantMap)
72 m_SubtitleTracks = m_State["subtitletracks"].toMap();
73 m_State.remove("subtitletracks");
74 }
75
76 if (m_State.contains("audiotracks"))
77 {
78#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
79 auto type = static_cast<QMetaType::Type>(m_State["audiotracks"].type());
80#else
81 auto type = m_State["audiotracks"].typeId();
82#endif
83 if (type == QMetaType::QVariantMap)
84 m_AudioTracks = m_State["audiotracks"].toMap();
85 m_State.remove("audiotracks");
86 }
87 }
88
89 private:
91 };
93{
94 qRegisterMetaType<FrontendStatus*>();
95}
96
97};
98
99#endif // FRONTENDSTATUS_H
Q_CLASSINFO("version", "1.1")
QVariantList ChapterTimes
void Copy(const FrontendStatus *src)
Q_CLASSINFO("ChapterTimes", "type=QString;name=Chapter")
static void InitializeCustomTypes()
Q_CLASSINFO("SubtitleTracks", "type=QString;name=Track")
QVariantMap AudioTracks
Q_INVOKABLE FrontendStatus(QObject *parent=nullptr)
Q_CLASSINFO("State", "type=QString")
QVariantMap SubtitleTracks
Q_DISABLE_COPY(FrontendStatus)
#define PROPERTYIMP_REF(type, name)
#define PROPERTYIMP_RO_REF(type, name)
State
Definition: zmserver.h:69