MythTV master
v2videoMetadataInfo.h
Go to the documentation of this file.
1#ifndef V2VIDEOMETADATAINFO_H_
2#define V2VIDEOMETADATAINFO_H_
3
5#include "v2artworkInfoList.h"
6#include "v2castMemberList.h"
7#include "v2genreList.h"
8
9class V2VideoMetadataInfo : public QObject
10{
11 Q_OBJECT
12 Q_CLASSINFO( "Version" , "2.01" );
13
14 SERVICE_PROPERTY2( int , Id )
15 SERVICE_PROPERTY2( QString , Title )
16 SERVICE_PROPERTY2( QString , SubTitle )
17 SERVICE_PROPERTY2( QString , Tagline )
18 SERVICE_PROPERTY2( QString , Director )
19 SERVICE_PROPERTY2( QString , Studio )
20 SERVICE_PROPERTY2( QString , Description )
21 SERVICE_PROPERTY2( QString , Certification )
22 SERVICE_PROPERTY2( QString , Inetref )
23 SERVICE_PROPERTY2( int , Collectionref )
24 SERVICE_PROPERTY2( QString , HomePage )
25 SERVICE_PROPERTY2( QDateTime , ReleaseDate )
26 SERVICE_PROPERTY2( QDateTime , AddDate )
27 SERVICE_PROPERTY2( float , UserRating )
28 SERVICE_PROPERTY2( int , ChildID )
29 SERVICE_PROPERTY2( int , Length )
30 SERVICE_PROPERTY2( int , PlayCount )
31 SERVICE_PROPERTY2( int , Season )
32 SERVICE_PROPERTY2( int , Episode )
35 SERVICE_PROPERTY2( bool , Watched )
36 SERVICE_PROPERTY2( bool , Processed )
37 SERVICE_PROPERTY2( QString , ContentType )
38 SERVICE_PROPERTY2( QString , FileName )
39 SERVICE_PROPERTY2( QString , Hash )
40 SERVICE_PROPERTY2( QString , HostName )
41 SERVICE_PROPERTY2( QString , Coverart )
42 SERVICE_PROPERTY2( QString , Fanart )
43 SERVICE_PROPERTY2( QString , Banner )
44 SERVICE_PROPERTY2( QString , Screenshot )
45 SERVICE_PROPERTY2( QString , Trailer )
46 SERVICE_PROPERTY2( int , Category )
47 Q_PROPERTY( QObject* Artwork READ Artwork USER true)
48 Q_PROPERTY( QObject* Cast READ Cast USER true)
49 Q_PROPERTY( QObject* Genres READ Genres USER true)
50
54
55 public:
56 Q_INVOKABLE V2VideoMetadataInfo(QObject *parent = nullptr)
57 : QObject( parent )
58 {
59 }
60
61 void Copy( const V2VideoMetadataInfo *src )
62 {
63 m_Id = src->m_Id;
64
65 if ( src->m_Artwork != nullptr)
66 Artwork()->Copy( src->m_Artwork );
67
68 if (src->m_Cast != nullptr)
69 Cast()->Copy( src->m_Cast );
70
71 if (src->m_Genres != nullptr)
72 Genres()->Copy( src->m_Genres );
73
74 }
75
76 private:
78
79
80};
81
83
84
85
86class V2VideoCategory : public QObject
87{
88 Q_OBJECT
89 Q_CLASSINFO( "version" , "1.0" );
90
91 SERVICE_PROPERTY2( int , Id )
92 SERVICE_PROPERTY2( QString , Name )
93
94 public:
95
96 Q_INVOKABLE V2VideoCategory(QObject *parent = nullptr)
97 : QObject( parent )
98 {
99 }
100
101 private:
103};
104
106
107class V2VideoCategoryList : public QObject
108{
109 Q_OBJECT
110 Q_CLASSINFO( "version", "1.0" );
111
112 // Q_CLASSINFO Used to augment Metadata for properties.
113 // See datacontracthelper.h for details
114
115 Q_CLASSINFO( "VideoCategories", "type=V2VideoCategory");
116
117 SERVICE_PROPERTY2( QVariantList, VideoCategories );
118
119 public:
120
121 Q_INVOKABLE V2VideoCategoryList(QObject *parent = nullptr)
122 : QObject( parent )
123 {
124 }
125
127 {
128 // We must make sure the object added to the QVariantList has
129 // a parent of 'this'
130
131 auto *pObject = new V2VideoCategory( this );
132 m_VideoCategories.append( QVariant::fromValue<QObject *>( pObject ));
133
134 return pObject;
135 }
136
137 private:
139};
140
142
143
144#endif // V2VIDEOMETADATAINFO_H_
Q_DISABLE_COPY(V2VideoCategoryList)
V2VideoCategory * AddNewCategory()
Q_CLASSINFO("version", "1.0")
Q_INVOKABLE V2VideoCategoryList(QObject *parent=nullptr)
SERVICE_PROPERTY2(QVariantList, VideoCategories)
Q_CLASSINFO("VideoCategories", "type=V2VideoCategory")
Q_DISABLE_COPY(V2VideoCategory)
Q_INVOKABLE V2VideoCategory(QObject *parent=nullptr)
Q_CLASSINFO("version", "1.0")
void Copy(const V2VideoMetadataInfo *src)
Q_INVOKABLE V2VideoMetadataInfo(QObject *parent=nullptr)
Q_DISABLE_COPY(V2VideoMetadataInfo)
Q_CLASSINFO("Version", "2.01")
Q_DECLARE_METATYPE(std::chrono::seconds)
#define SERVICE_PROPERTY2(Type, Name)
#define SERVICE_PROPERTY_PTR(type, name)