MythTV master
v2programGuide.h
Go to the documentation of this file.
1
2// 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
31class 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
void Copy(const V2ProgramGuide *src)
Q_CLASSINFO("AsOf", "transient=true")
V2ChannelInfo * AddNewChannel()
Q_DISABLE_COPY(V2ProgramGuide)
Q_CLASSINFO("Version", "1.0")
Q_INVOKABLE V2ProgramGuide(QObject *parent=nullptr)
Q_CLASSINFO("Channels", "type=V2ChannelInfo")
Q_DECLARE_METATYPE(std::chrono::seconds)
#define SERVICE_PROPERTY2(Type, Name)