00001 #ifndef FRONTENDSTATUS_H
00002 #define FRONTENDSTATUS_H
00003
00004 #include "serviceexp.h"
00005 #include "datacontracthelper.h"
00006
00007 namespace DTC
00008 {
00009 class SERVICE_PUBLIC FrontendStatus : public QObject
00010 {
00011 Q_OBJECT
00012 Q_CLASSINFO("version", "1.0");
00013
00014 Q_CLASSINFO( "State", "type=QString");
00015 Q_CLASSINFO( "ChapterTimes", "type=QString;name=Chapter");
00016 Q_CLASSINFO( "SubtitleTracks", "type=QString;name=Track");
00017 Q_CLASSINFO( "AudioTracks", "type=QString;name=Track");
00018
00019 Q_PROPERTY(QVariantMap State READ State DESIGNABLE true)
00020 Q_PROPERTY(QVariantList ChapterTimes READ ChapterTimes DESIGNABLE true)
00021 Q_PROPERTY(QVariantMap SubtitleTracks READ SubtitleTracks DESIGNABLE true)
00022 Q_PROPERTY(QVariantMap AudioTracks READ AudioTracks DESIGNABLE true)
00023
00024 PROPERTYIMP_RO_REF(QVariantMap, State)
00025 PROPERTYIMP_RO_REF(QVariantList, ChapterTimes)
00026 PROPERTYIMP_RO_REF(QVariantMap, SubtitleTracks)
00027 PROPERTYIMP_RO_REF(QVariantMap, AudioTracks)
00028
00029 public:
00030 static void InitializeCustomTypes()
00031 {
00032 qRegisterMetaType<FrontendStatus>();
00033 qRegisterMetaType<FrontendStatus*>();
00034 }
00035
00036 public:
00037 FrontendStatus(QObject *parent = 0) : QObject(parent)
00038 {
00039 }
00040
00041 FrontendStatus(const FrontendStatus &src)
00042 {
00043 Copy(src);
00044 }
00045
00046 void Copy(const FrontendStatus &src)
00047 {
00048 m_State = src.m_State;
00049 m_ChapterTimes = src.m_ChapterTimes;
00050 m_SubtitleTracks = src.m_SubtitleTracks;
00051 m_AudioTracks = src.m_AudioTracks;
00052 }
00053
00054 void Process(void)
00055 {
00056 if (m_State.contains("chaptertimes"))
00057 {
00058 if (m_State["chaptertimes"].type() == QVariant::List)
00059 m_ChapterTimes = m_State["chaptertimes"].toList();
00060 m_State.remove("chaptertimes");
00061 }
00062
00063 if (m_State.contains("subtitletracks"))
00064 {
00065 if (m_State["subtitletracks"].type() == QVariant::Map)
00066 m_SubtitleTracks = m_State["subtitletracks"].toMap();
00067 m_State.remove("subtitletracks");
00068 }
00069
00070 if (m_State.contains("audiotracks"))
00071 {
00072 if (m_State["audiotracks"].type() == QVariant::Map)
00073 m_AudioTracks = m_State["audiotracks"].toMap();
00074 m_State.remove("audiotracks");
00075 }
00076 }
00077 };
00078 };
00079
00080 Q_DECLARE_METATYPE(DTC::FrontendStatus)
00081 Q_DECLARE_METATYPE(DTC::FrontendStatus*)
00082
00083 #endif // FRONTENDSTATUS_H