MythTV  master
v2programAndChannel.h
Go to the documentation of this file.
1 // 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 
24 class V2Program;
25 
26 
27 class 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 , ChannelName )
42  SERVICE_PROPERTY2( uint , MplexId )
43  SERVICE_PROPERTY2( uint , ServiceId )
44  SERVICE_PROPERTY2( uint , ATSCMajorChan )
45  SERVICE_PROPERTY2( uint , ATSCMinorChan )
46  SERVICE_PROPERTY2( QString , Format )
47  SERVICE_PROPERTY2( QString , FrequencyId )
48  SERVICE_PROPERTY2( int , FineTune )
49  SERVICE_PROPERTY2( QString , ChanFilters )
50  SERVICE_PROPERTY2( int , SourceId )
51  SERVICE_PROPERTY2( int , InputId )
52  SERVICE_PROPERTY2( bool , CommFree )
53  SERVICE_PROPERTY2( bool , UseEIT )
54  SERVICE_PROPERTY2( bool , Visible )
55  SERVICE_PROPERTY2( QString , ExtendedVisible )
56  SERVICE_PROPERTY2( QString , XMLTVID )
57  SERVICE_PROPERTY2( QString , DefaultAuth )
58  SERVICE_PROPERTY2( QString , ChannelGroups )
59  SERVICE_PROPERTY2( QString , Inputs )
60  SERVICE_PROPERTY2( uint , ServiceType )
61  SERVICE_PROPERTY2( int , RecPriority )
64  SERVICE_PROPERTY2( QVariantList, Programs )
65 
66  public:
67 
68  Q_INVOKABLE V2ChannelInfo(QObject *parent = nullptr)
69  : QObject ( parent ),
70  m_Visible ( true )
71  {
72  }
73 
74  void Copy( const V2ChannelInfo *src )
75  {
76  m_ChanId = src->m_ChanId ;
77  m_ChanNum = src->m_ChanNum ;
78  m_CallSign = src->m_CallSign ;
79  m_IconURL = src->m_IconURL ;
80  m_ChannelName = src->m_ChannelName ;
81  m_ChanFilters = src->m_ChanFilters ;
82  m_SourceId = src->m_SourceId ;
83  m_InputId = src->m_InputId ;
84  m_CommFree = src->m_CommFree ;
85  m_UseEIT = src->m_UseEIT ;
86  m_Visible = src->m_Visible ;
87  m_ExtendedVisible = src->m_ExtendedVisible;
88  m_ChannelGroups = src->m_ChannelGroups;
89  m_Inputs = src->m_Inputs;
90  m_RecPriority = src->m_RecPriority;
91  m_TimeOffset = src->m_TimeOffset;
92  m_CommMethod = src->m_CommMethod;
93 
94  CopyListContents< V2Program >( this, m_Programs, src->m_Programs );
95  }
96 
98 
99  private:
101 };
102 
104 
105 class V2Program : public QObject
106 {
107  Q_OBJECT
108  Q_CLASSINFO( "Version" , "1.12" );
109  Q_CLASSINFO( "defaultProp", "Description" );
110  Q_CLASSINFO( "deprecated" , "FileSize,FileName,HostName");
111 
112 
113  SERVICE_PROPERTY2( QDateTime , StartTime )
114  SERVICE_PROPERTY2( QDateTime , EndTime )
115  SERVICE_PROPERTY2( QString , Title )
116  SERVICE_PROPERTY2( QString , SubTitle )
117  SERVICE_PROPERTY2( QString , Category )
118  SERVICE_PROPERTY2( QString , CatType )
119  SERVICE_PROPERTY2( bool , Repeat )
120  SERVICE_PROPERTY2( QString , SeriesId )
121  SERVICE_PROPERTY2( QString , ProgramId )
122  SERVICE_PROPERTY2( double , Stars )
123  SERVICE_PROPERTY2( QDateTime , LastModified )
124  SERVICE_PROPERTY2( int , ProgramFlags )
125  SERVICE_PROPERTY2( QString , ProgramFlagNames )
126  SERVICE_PROPERTY2( int , VideoProps )
127  SERVICE_PROPERTY2( QString , VideoPropNames )
128  SERVICE_PROPERTY2( int , AudioProps )
129  SERVICE_PROPERTY2( QString , AudioPropNames )
130  SERVICE_PROPERTY2( int , SubProps )
131  SERVICE_PROPERTY2( QString , SubPropNames )
132  SERVICE_PROPERTY2( QDate , Airdate )
133  SERVICE_PROPERTY2( QString , Description )
134  SERVICE_PROPERTY2( QString , Inetref )
135  SERVICE_PROPERTY2( int , Season )
136  SERVICE_PROPERTY2( int , Episode )
137  SERVICE_PROPERTY2( int , TotalEpisodes)
138 
139  // ----
140  // DEPRECATED
141  // These don't belong here, they are Recording only metadata
142  SERVICE_PROPERTY2( qlonglong , FileSize )
143  SERVICE_PROPERTY2( QString , FileName )
144  SERVICE_PROPERTY2( QString , HostName )
145  // ----
146 
147  Q_PROPERTY( QObject* Channel READ Channel USER true)
148  Q_PROPERTY( QObject* Recording READ Recording USER true)
149  Q_PROPERTY( QObject* Artwork READ Artwork USER true)
150  Q_PROPERTY( QObject* Cast READ Cast USER true)
151 
152 
157 
158  public:
159 
160  Q_INVOKABLE V2Program(QObject *parent = nullptr)
161  : QObject( parent )
162  {
163  }
164 
165  void Copy( const V2Program *src )
166  {
167  m_StartTime = src->m_StartTime;
168  m_EndTime = src->m_EndTime;
169  m_Title = src->m_Title;
170  m_SubTitle = src->m_SubTitle;
171  m_Category = src->m_Category;
172  m_CatType = src->m_CatType;
173  m_Repeat = src->m_Repeat;
174  m_SeriesId = src->m_SeriesId;
175  m_ProgramId = src->m_ProgramId;
176  m_Stars = src->m_Stars;
177  m_LastModified = src->m_LastModified;
178  m_ProgramFlags = src->m_ProgramFlags;
179  m_VideoProps = src->m_VideoProps;
180  m_AudioProps = src->m_AudioProps;
181  m_SubProps = src->m_SubProps;
182  m_Airdate = src->m_Airdate;
183  m_Description = src->m_Description;
184  m_Inetref = src->m_Inetref;
185  m_Season = src->m_Season;
186  m_Episode = src->m_Episode;
187  m_TotalEpisodes = src->m_TotalEpisodes;
188  // DEPRECATED
189  m_FileSize = src->m_FileSize;
190  m_FileName = src->m_FileName;
191  m_HostName = src->m_HostName;
192 
193  if ( src->m_Channel != nullptr)
194  Channel()->Copy( src->m_Channel );
195 
196  if ( src->m_Recording != nullptr)
197  Recording()->Copy( src->m_Recording );
198 
199  if ( src->m_Artwork != nullptr)
200  Artwork()->Copy( src->m_Artwork );
201 
202  if (src->m_Cast != nullptr)
203  Cast()->Copy( src->m_Cast );
204  }
205 
206  private:
207  Q_DISABLE_COPY(V2Program);
208 };
209 
211 {
212  // We must make sure the object added to the QVariantList has
213  // a parent of 'this'
214 
215  auto *pObject = new V2Program( this );
216  m_Programs.append( QVariant::fromValue<QObject *>( pObject ));
217 
218  return pObject;
219 }
220 
222 
223 #endif
CommMethod
Definition: channelsettings.cpp:393
SERVICE_PROPERTY_COND_PTR
#define SERVICE_PROPERTY_COND_PTR(type, name)
Definition: mythhttpservice.h:109
Channel
Definition: channel.h:36
V2RecordingInfo
Definition: v2recording.h:23
UseEIT
Definition: videosource.cpp:599
V2ArtworkInfoList
Definition: v2artworkInfoList.h:22
v2recording.h
MythDate::Format
Format
Definition: mythdate.h:15
Visible
Definition: channelsettings.cpp:416
V2ChannelInfo::Copy
void Copy(const V2ChannelInfo *src)
Definition: v2programAndChannel.h:74
true
VERBOSE_PREAMBLE Most true
Definition: verbosedefs.h:95
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(StandardSetting *)
SERVICE_PROPERTY2
#define SERVICE_PROPERTY2(Type, Name)
Definition: mythhttpservice.h:72
V2Program::Copy
void Copy(const V2Program *src)
Definition: v2programAndChannel.h:165
uint
unsigned int uint
Definition: compat.h:81
Stars
@ Stars
Definition: synaesthesia.h:26
Recording
static bool Recording(const RecordingInfo *p)
Definition: scheduler.cpp:221
TimeOffset
Definition: channelsettings.cpp:199
v2artworkInfoList.h
mythhttpservice.h
V2ChannelInfo::AddNewProgram
V2Program * AddNewProgram()
Definition: v2programAndChannel.h:210
V2ChannelInfo::Q_CLASSINFO
Q_CLASSINFO("Version", "2.4")
V2ChannelInfo::V2ChannelInfo
Q_INVOKABLE V2ChannelInfo(QObject *parent=nullptr)
Definition: v2programAndChannel.h:68
V2Program
Definition: v2programAndChannel.h:105
V2CastMemberList
Definition: v2castMemberList.h:13
v2castMemberList.h
V2ChannelInfo
Definition: v2programAndChannel.h:27
V2ChannelInfo::Q_DISABLE_COPY
Q_DISABLE_COPY(V2ChannelInfo)