MythTV master
v2programAndChannel.h
Go to the documentation of this file.
1
2// Program Name: program.h
3// Created : Jan. 15, 2010
4//
5// Copyright (c) 2010 David Blain <dblain@mythtv.org>
6//
7// Licensed under the GPL v2 or later, see COPYING for details
8//
10
11#ifndef V2PROGRAMANDCHANNEL_H_
12#define V2PROGRAMANDCHANNEL_H_
13
14#include <QDateTime>
15#include <QString>
16
18
19#include "v2recording.h"
20#include "v2artworkInfoList.h"
21#include "v2castMemberList.h"
22
23
24class V2Program;
25
26
27class V2ChannelInfo : public QObject
28{
29 Q_OBJECT
30 Q_CLASSINFO( "Version", "2.4" );
31
32 // Q_CLASSINFO Used to augment Metadata for properties.
33 // See datacontracthelper.h for details
34
35 Q_CLASSINFO( "Programs", "type=V2Program");
36
37 SERVICE_PROPERTY2( uint , ChanId )
38 SERVICE_PROPERTY2( QString , ChanNum )
39 SERVICE_PROPERTY2( QString , CallSign )
40 SERVICE_PROPERTY2( QString , IconURL )
41 SERVICE_PROPERTY2( QString , Icon )
42 SERVICE_PROPERTY2( QString , ChannelName )
43 SERVICE_PROPERTY2( uint , MplexId )
44 SERVICE_PROPERTY2( uint , ServiceId )
45 SERVICE_PROPERTY2( uint , ATSCMajorChan )
46 SERVICE_PROPERTY2( uint , ATSCMinorChan )
47 SERVICE_PROPERTY2( QString , Format )
48 SERVICE_PROPERTY2( QString , FrequencyId )
49 SERVICE_PROPERTY2( int , FineTune )
50 SERVICE_PROPERTY2( QString , ChanFilters )
51 SERVICE_PROPERTY2( int , SourceId )
52 SERVICE_PROPERTY2( int , InputId )
53 SERVICE_PROPERTY2( bool , CommFree )
56 SERVICE_PROPERTY2( QString , ExtendedVisible )
57 SERVICE_PROPERTY2( QString , XMLTVID )
58 SERVICE_PROPERTY2( QString , DefaultAuth )
59 SERVICE_PROPERTY2( QString , ChannelGroups )
60 SERVICE_PROPERTY2( QString , Inputs )
61 SERVICE_PROPERTY2( uint , ServiceType )
62 SERVICE_PROPERTY2( int , RecPriority )
65 SERVICE_PROPERTY2( QVariantList, Programs )
66
67 public:
68
69 Q_INVOKABLE V2ChannelInfo(QObject *parent = nullptr)
70 : QObject ( parent ),
71 m_Visible (true)
72 {
73 }
74
75 void Copy( const V2ChannelInfo *src )
76 {
77 m_ChanId = src->m_ChanId ;
78 m_ChanNum = src->m_ChanNum ;
79 m_CallSign = src->m_CallSign ;
80 m_IconURL = src->m_IconURL ;
81 m_Icon = src->m_Icon ;
82 m_ChannelName = src->m_ChannelName ;
83 m_ChanFilters = src->m_ChanFilters ;
84 m_SourceId = src->m_SourceId ;
85 m_InputId = src->m_InputId ;
86 m_CommFree = src->m_CommFree ;
87 m_UseEIT = src->m_UseEIT ;
88 m_Visible = src->m_Visible ;
89 m_ExtendedVisible = src->m_ExtendedVisible;
90 m_ChannelGroups = src->m_ChannelGroups;
91 m_Inputs = src->m_Inputs;
92 m_RecPriority = src->m_RecPriority;
93 m_TimeOffset = src->m_TimeOffset;
94 m_CommMethod = src->m_CommMethod;
95
96 CopyListContents< V2Program >( this, m_Programs, src->m_Programs );
97 }
98
100
101 private:
103};
104
106
107class V2Program : public QObject
108{
109 Q_OBJECT
110 Q_CLASSINFO( "Version" , "1.12" );
111 Q_CLASSINFO( "defaultProp", "Description" );
112 Q_CLASSINFO( "deprecated" , "FileSize,FileName,HostName");
113
114
115 SERVICE_PROPERTY2( QDateTime , StartTime )
116 SERVICE_PROPERTY2( QDateTime , EndTime )
117 SERVICE_PROPERTY2( QString , Title )
118 SERVICE_PROPERTY2( QString , SubTitle )
119 SERVICE_PROPERTY2( QString , Category )
120 SERVICE_PROPERTY2( QString , CatType )
121 SERVICE_PROPERTY2( bool , Repeat )
122 SERVICE_PROPERTY2( QString , SeriesId )
123 SERVICE_PROPERTY2( QString , ProgramId )
124 SERVICE_PROPERTY2( double , Stars )
125 SERVICE_PROPERTY2( QDateTime , LastModified )
126 SERVICE_PROPERTY2( int , ProgramFlags )
127 SERVICE_PROPERTY2( QString , ProgramFlagNames )
128 SERVICE_PROPERTY2( int , VideoProps )
129 SERVICE_PROPERTY2( QString , VideoPropNames )
130 SERVICE_PROPERTY2( int , AudioProps )
131 SERVICE_PROPERTY2( QString , AudioPropNames )
132 SERVICE_PROPERTY2( int , SubProps )
133 SERVICE_PROPERTY2( QString , SubPropNames )
134 SERVICE_PROPERTY2( QDate , Airdate )
135 SERVICE_PROPERTY2( int , ReleaseYear )
136 SERVICE_PROPERTY2( QString , Description )
137 SERVICE_PROPERTY2( QString , Inetref )
138 SERVICE_PROPERTY2( int , Season )
139 SERVICE_PROPERTY2( int , Episode )
140 SERVICE_PROPERTY2( int , TotalEpisodes)
141
142 // ----
143 // DEPRECATED
144 // These don't belong here, they are Recording only metadata
145 SERVICE_PROPERTY2( qlonglong , FileSize )
146 SERVICE_PROPERTY2( QString , FileName )
147 SERVICE_PROPERTY2( QString , HostName )
148 // ----
149
150 Q_PROPERTY( QObject* Channel READ Channel USER true)
151 Q_PROPERTY( QObject* Recording READ Recording USER true)
152 Q_PROPERTY( QObject* Artwork READ Artwork USER true)
153 Q_PROPERTY( QObject* Cast READ Cast USER true)
154
155
160
161 public:
162
163 Q_INVOKABLE V2Program(QObject *parent = nullptr)
164 : QObject( parent )
165 {
166 }
167
168 void Copy( const V2Program *src )
169 {
170 m_StartTime = src->m_StartTime;
171 m_EndTime = src->m_EndTime;
172 m_Title = src->m_Title;
173 m_SubTitle = src->m_SubTitle;
174 m_Category = src->m_Category;
175 m_CatType = src->m_CatType;
176 m_Repeat = src->m_Repeat;
177 m_SeriesId = src->m_SeriesId;
178 m_ProgramId = src->m_ProgramId;
179 m_Stars = src->m_Stars;
180 m_LastModified = src->m_LastModified;
181 m_ProgramFlags = src->m_ProgramFlags;
182 m_VideoProps = src->m_VideoProps;
183 m_AudioProps = src->m_AudioProps;
184 m_SubProps = src->m_SubProps;
185 m_Airdate = src->m_Airdate;
186 m_Description = src->m_Description;
187 m_Inetref = src->m_Inetref;
188 m_Season = src->m_Season;
189 m_Episode = src->m_Episode;
190 m_TotalEpisodes = src->m_TotalEpisodes;
191 // DEPRECATED
192 m_FileSize = src->m_FileSize;
193 m_FileName = src->m_FileName;
194 m_HostName = src->m_HostName;
195
196 if ( src->m_Channel != nullptr)
197 Channel()->Copy( src->m_Channel );
198
199 if ( src->m_Recording != nullptr)
200 Recording()->Copy( src->m_Recording );
201
202 if ( src->m_Artwork != nullptr)
203 Artwork()->Copy( src->m_Artwork );
204
205 if (src->m_Cast != nullptr)
206 Cast()->Copy( src->m_Cast );
207 }
208
209 private:
211};
212
214{
215 // We must make sure the object added to the QVariantList has
216 // a parent of 'this'
217
218 auto *pObject = new V2Program( this );
219 m_Programs.append( QVariant::fromValue<QObject *>( pObject ));
220
221 return pObject;
222}
223
225
226#endif
Q_INVOKABLE V2ChannelInfo(QObject *parent=nullptr)
V2Program * AddNewProgram()
Q_CLASSINFO("Programs", "type=V2Program")
void Copy(const V2ChannelInfo *src)
Q_DISABLE_COPY(V2ChannelInfo)
Q_CLASSINFO("Version", "2.4")
Q_CLASSINFO("Version", "1.12")
Q_CLASSINFO("defaultProp", "Description")
Q_DISABLE_COPY(V2Program)
void Copy(const V2Program *src)
Q_INVOKABLE V2Program(QObject *parent=nullptr)
unsigned int uint
Definition: compat.h:68
Q_DECLARE_METATYPE(std::chrono::seconds)
#define SERVICE_PROPERTY2(Type, Name)
#define SERVICE_PROPERTY_COND_PTR(type, name)
static bool Recording(const RecordingInfo *p)
Definition: scheduler.cpp:221
@ Stars
Definition: synaesthesia.h:23
VERBOSE_PREAMBLE Most true
Definition: verbosedefs.h:95