MythTV  master
v2programGuide.h
Go to the documentation of this file.
1 // Program Name: programGuide.h
3 // Created : Jan. 15, 2010
4 //
5 // Purpose :
6 //
7 // Copyright (c) 2010 David Blain <dblain@mythtv.org>
8 //
9 // Licensed under the GPL v2 or later, see COPYING for details
10 //
12 
13 #ifndef V2PROGRAMGUIDE_H_
14 #define V2PROGRAMGUIDE_H_
15 
16 #include <QDateTime>
17 #include <QString>
18 
20 
21 #include "v2programAndChannel.h"
22 
25 //
26 //
27 //
30 
31 class V2ProgramGuide : public QObject
32 {
33  Q_OBJECT
34  Q_CLASSINFO( "Version", "1.0" );
35 
36  // Q_CLASSINFO Used to augment Metadata for properties.
37  // See datacontracthelper.h for details
38 
39  Q_CLASSINFO( "Channels", "type=V2ChannelInfo");
40  Q_CLASSINFO( "AsOf" , "transient=true" );
41 
42  SERVICE_PROPERTY2 ( QDateTime , StartTime )
43  SERVICE_PROPERTY2 ( QDateTime , EndTime )
44  SERVICE_PROPERTY2 ( bool , Details )
45  SERVICE_PROPERTY2 ( int , StartIndex )
46  SERVICE_PROPERTY2 ( int , Count )
47  SERVICE_PROPERTY2 ( int , TotalAvailable)
48  SERVICE_PROPERTY2 ( QDateTime , AsOf )
49  SERVICE_PROPERTY2 ( QString , Version )
50  SERVICE_PROPERTY2 ( QString , ProtoVer )
51  SERVICE_PROPERTY2 ( QVariantList, Channels )
52 
53  public:
54 
55  Q_INVOKABLE V2ProgramGuide(QObject *parent = nullptr)
56  : QObject( parent )
57  {
58  }
59 
60  void Copy( const V2ProgramGuide *src )
61  {
62  m_StartTime = src->m_StartTime ;
63  m_EndTime = src->m_EndTime ;
64  m_Details = src->m_Details ;
65  m_StartIndex = src->m_StartIndex ;
66  m_Count = src->m_Count ;
67  m_TotalAvailable = src->m_TotalAvailable ;
68  m_AsOf = src->m_AsOf ;
69  m_Version = src->m_Version ;
70  m_ProtoVer = src->m_ProtoVer ;
71 
72  CopyListContents< V2ChannelInfo >( this, m_Channels, src->m_Channels );
73  }
74 
76  {
77  // We must make sure the object added to the QVariantList has
78  // a parent of 'this'
79 
80  auto *pObject = new V2ChannelInfo( this );
81  m_Channels.append( QVariant::fromValue<QObject *>( pObject ));
82 
83  return pObject;
84  }
85 
86  private:
88 };
89 
91 
92 #endif
V2ProgramGuide
Definition: v2programGuide.h:31
v2programAndChannel.h
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(StandardSetting *)
SERVICE_PROPERTY2
#define SERVICE_PROPERTY2(Type, Name)
Definition: mythhttpservice.h:72
V2ProgramGuide::Q_CLASSINFO
Q_CLASSINFO("Version", "1.0")
mythhttpservice.h
V2ProgramGuide::V2ProgramGuide
Q_INVOKABLE V2ProgramGuide(QObject *parent=nullptr)
Definition: v2programGuide.h:55
V2ProgramGuide::Q_DISABLE_COPY
Q_DISABLE_COPY(V2ProgramGuide)
V2ProgramGuide::Copy
void Copy(const V2ProgramGuide *src)
Definition: v2programGuide.h:60
V2ProgramGuide::AddNewChannel
V2ChannelInfo * AddNewChannel()
Definition: v2programGuide.h:75
V2ChannelInfo
Definition: v2programAndChannel.h:27