00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013 #ifndef PROGRAMGUIDE_H_
00014 #define PROGRAMGUIDE_H_
00015
00016 #include <QDateTime>
00017 #include <QString>
00018
00019 #include "serviceexp.h"
00020 #include "datacontracthelper.h"
00021
00022 #include "programAndChannel.h"
00023
00024 namespace DTC
00025 {
00026
00029
00030
00031
00034
00035 class SERVICE_PUBLIC ProgramGuide : public QObject
00036 {
00037 Q_OBJECT
00038 Q_CLASSINFO( "version", "1.0" );
00039
00040
00041
00042
00043 Q_CLASSINFO( "Channels", "type=DTC::ChannelInfo");
00044 Q_CLASSINFO( "AsOf" , "transient=true" );
00045
00046 Q_PROPERTY( QDateTime StartTime READ StartTime WRITE setStartTime )
00047 Q_PROPERTY( QDateTime EndTime READ EndTime WRITE setEndTime )
00048 Q_PROPERTY( int StartChanId READ StartChanId WRITE setStartChanId )
00049 Q_PROPERTY( int EndChanId READ EndChanId WRITE setEndChanId )
00050 Q_PROPERTY( int NumOfChannels READ NumOfChannels WRITE setNumOfChannels )
00051
00052 Q_PROPERTY( bool Details READ Details WRITE setDetails )
00053 Q_PROPERTY( int Count READ Count WRITE setCount )
00054 Q_PROPERTY( QDateTime AsOf READ AsOf WRITE setAsOf )
00055 Q_PROPERTY( QString Version READ Version WRITE setVersion )
00056 Q_PROPERTY( QString ProtoVer READ ProtoVer WRITE setProtoVer )
00057
00058 Q_PROPERTY( QVariantList Channels READ Channels DESIGNABLE true )
00059
00060 PROPERTYIMP ( QDateTime , StartTime )
00061 PROPERTYIMP ( QDateTime , EndTime )
00062 PROPERTYIMP ( int , StartChanId )
00063 PROPERTYIMP ( int , EndChanId )
00064 PROPERTYIMP ( int , NumOfChannels )
00065
00066 PROPERTYIMP ( bool , Details )
00067 PROPERTYIMP ( int , Count )
00068 PROPERTYIMP ( QDateTime , AsOf )
00069 PROPERTYIMP ( QString , Version )
00070 PROPERTYIMP ( QString , ProtoVer )
00071
00072 PROPERTYIMP_RO_REF( QVariantList, Channels )
00073
00074 public:
00075
00076 static void InitializeCustomTypes()
00077 {
00078 qRegisterMetaType< ProgramGuide >();
00079 qRegisterMetaType< ProgramGuide* >();
00080
00081 ChannelInfo::InitializeCustomTypes();
00082 }
00083
00084 public:
00085
00086 ProgramGuide(QObject *parent = 0)
00087 : QObject ( parent ),
00088 m_StartChanId ( 0 ),
00089 m_EndChanId ( 0 ),
00090 m_NumOfChannels ( 0 ),
00091 m_Details ( false ),
00092 m_Count ( 0 )
00093 {
00094 }
00095
00096 ProgramGuide( const ProgramGuide &src )
00097 {
00098 Copy( src );
00099 }
00100
00101 void Copy( const ProgramGuide &src )
00102 {
00103 m_StartTime = src.m_StartTime ;
00104 m_EndTime = src.m_EndTime ;
00105 m_StartChanId = src.m_StartChanId ;
00106 m_EndChanId = src.m_EndChanId ;
00107 m_NumOfChannels= src.m_NumOfChannels;
00108 m_Details = src.m_Details ;
00109 m_Count = src.m_Count ;
00110 m_AsOf = src.m_AsOf ;
00111 m_Version = src.m_Version ;
00112 m_ProtoVer = src.m_ProtoVer ;
00113
00114 CopyListContents< ChannelInfo >( this, m_Channels, src.m_Channels );
00115 }
00116
00117 ChannelInfo *AddNewChannel()
00118 {
00119
00120
00121
00122 ChannelInfo *pObject = new ChannelInfo( this );
00123 Channels().append( QVariant::fromValue<QObject *>( pObject ));
00124
00125 return pObject;
00126 }
00127
00128 };
00129
00130 }
00131
00132 Q_DECLARE_METATYPE( DTC::ProgramGuide )
00133 Q_DECLARE_METATYPE( DTC::ProgramGuide* )
00134
00135 #endif