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 <QChar> // Fix Qt6 GCC SFINAE warning
17#include <QDateTime>
18#include <QString>
19
21
22#include "v2programAndChannel.h"
23
26//
27//
28//
31
32class V2ProgramGuide : public QObject
33{
34 Q_OBJECT
35 Q_CLASSINFO( "Version", "1.0" );
36
37 // Q_CLASSINFO Used to augment Metadata for properties.
38 // See datacontracthelper.h for details
39
40 Q_CLASSINFO( "Channels", "type=V2ChannelInfo");
41 Q_CLASSINFO( "AsOf" , "transient=true" );
42
43 SERVICE_PROPERTY2 ( QDateTime , StartTime )
44 SERVICE_PROPERTY2 ( QDateTime , EndTime )
45 SERVICE_PROPERTY2 ( bool , Details )
46 SERVICE_PROPERTY2 ( int , StartIndex )
47 SERVICE_PROPERTY2 ( int , Count )
48 SERVICE_PROPERTY2 ( int , TotalAvailable)
49 SERVICE_PROPERTY2 ( QDateTime , AsOf )
50 SERVICE_PROPERTY2 ( QString , Version )
51 SERVICE_PROPERTY2 ( QString , ProtoVer )
52 SERVICE_PROPERTY2 ( QVariantList, Channels )
53
54 public:
55
56 Q_INVOKABLE V2ProgramGuide(QObject *parent = nullptr)
57 : QObject( parent )
58 {
59 }
60
61 void Copy( const V2ProgramGuide *src )
62 {
63 m_StartTime = src->m_StartTime ;
64 m_EndTime = src->m_EndTime ;
65 m_Details = src->m_Details ;
66 m_StartIndex = src->m_StartIndex ;
67 m_Count = src->m_Count ;
68 m_TotalAvailable = src->m_TotalAvailable ;
69 m_AsOf = src->m_AsOf ;
70 m_Version = src->m_Version ;
71 m_ProtoVer = src->m_ProtoVer ;
72
73 CopyListContents< V2ChannelInfo >( this, m_Channels, src->m_Channels );
74 }
75
77 {
78 // We must make sure the object added to the QVariantList has
79 // a parent of 'this'
80
81 auto *pObject = new V2ChannelInfo( this );
82 m_Channels.append( QVariant::fromValue<QObject *>( pObject ));
83
84 return pObject;
85 }
86
87 private:
89};
90
92
93#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)