25 #include <QQmlListProperty>
27 class QmlKeyframesParameter :
public QObject
31 Q_PROPERTY(RangeType rangeType MEMBER m_rangeType NOTIFY changed)
32 Q_PROPERTY(QString name MEMBER m_name NOTIFY changed)
33 Q_PROPERTY(QString property MEMBER m_property NOTIFY changed)
34 Q_PROPERTY(QStringList gangedProperties MEMBER m_gangedProperties NOTIFY changed)
35 Q_PROPERTY(
bool isCurve MEMBER m_isCurve NOTIFY changed)
36 Q_PROPERTY(
double minimum MEMBER m_minimum NOTIFY changed)
37 Q_PROPERTY(
double maximum MEMBER m_maximum NOTIFY changed)
38 Q_PROPERTY(QString units MEMBER m_units NOTIFY changed)
39 Q_PROPERTY(
bool isRectangle MEMBER m_isRectangle NOTIFY changed)
46 explicit QmlKeyframesParameter(QObject* parent = 0);
48 QString name()
const {
return m_name; }
49 QString property()
const {
return m_property; }
50 QStringList gangedProperties()
const {
return m_gangedProperties; }
51 bool isCurve()
const {
return m_isCurve; }
52 double minimum()
const {
return m_minimum; }
53 double maximum()
const {
return m_maximum; }
54 QString units()
const {
return m_units; }
55 bool isRectangle()
const {
return m_isRectangle; }
56 RangeType rangeType()
const {
return m_rangeType; }
64 QStringList m_gangedProperties;
70 RangeType m_rangeType;
73 class QmlKeyframesMetadata :
public QObject
76 Q_PROPERTY(
bool allowTrim MEMBER m_allowTrim NOTIFY changed)
77 Q_PROPERTY(
bool allowAnimateIn MEMBER m_allowAnimateIn NOTIFY changed)
78 Q_PROPERTY(
bool allowAnimateOut MEMBER m_allowAnimateOut NOTIFY changed)
79 Q_PROPERTY(QQmlListProperty<QmlKeyframesParameter> parameters READ parameters NOTIFY changed)
81 Q_PROPERTY(QList<QString> simpleProperties MEMBER m_simpleProperties NOTIFY changed)
82 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
83 Q_PROPERTY(
bool enabled MEMBER m_enabled NOTIFY changed)
84 Q_PROPERTY(
bool allowSmooth MEMBER m_allowSmooth NOTIFY changed)
87 explicit QmlKeyframesMetadata(QObject *parent = 0);
89 bool allowTrim()
const {
return m_allowTrim; }
90 bool allowAnimateIn()
const {
return m_allowAnimateIn; }
91 bool allowAnimateOut()
const {
return m_allowAnimateOut; }
92 QList<QString> simpleProperties()
const {
return m_simpleProperties; }
94 QQmlListProperty<QmlKeyframesParameter> parameters() {
return QQmlListProperty<QmlKeyframesParameter>(
this, m_parameters); }
95 int parameterCount()
const {
return m_parameters.count(); }
96 QmlKeyframesParameter *parameter(
int index)
const {
return m_parameters[index]; }
97 void checkVersion(
const QString& version);
105 bool m_allowAnimateIn;
106 bool m_allowAnimateOut;
107 QList<QmlKeyframesParameter *> m_parameters;
108 QList<QString> m_simpleProperties;
109 QString m_minimumVersion;
115 class QmlMetadata :
public QObject
119 Q_PROPERTY(PluginType type READ type WRITE setType)
120 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
121 Q_PROPERTY(QString mlt_service READ mlt_service WRITE set_mlt_service)
122 Q_PROPERTY(
bool needsGPU READ needsGPU WRITE setNeedsGPU NOTIFY changed)
123 Q_PROPERTY(QString qml READ qmlFileName WRITE setQmlFileName)
124 Q_PROPERTY(QString vui READ vuiFileName WRITE setVuiFileName)
125 Q_PROPERTY(QUrl qmlFilePath READ qmlFilePath )
126 Q_PROPERTY(QUrl vuiFilePath READ vuiFilePath )
127 Q_PROPERTY(
bool isAudio READ isAudio WRITE setIsAudio NOTIFY changed)
128 Q_PROPERTY(
bool isHidden READ isHidden WRITE setIsHidden NOTIFY changed)
129 Q_PROPERTY(
bool isFavorite READ isFavorite WRITE setIsFavorite NOTIFY changed)
130 Q_PROPERTY(QString gpuAlt READ gpuAlt WRITE setGpuAlt NOTIFY changed)
131 Q_PROPERTY(
bool allowMultiple READ allowMultiple WRITE setAllowMultiple)
132 Q_PROPERTY(
bool isClipOnly READ isClipOnly WRITE setIsClipOnly)
133 Q_PROPERTY(
bool isGpuCompatible READ isGpuCompatible() WRITE setIsGpuCompatible)
134 Q_PROPERTY(QmlKeyframesMetadata* keyframes READ keyframes NOTIFY changed)
135 Q_PROPERTY(
bool isDeprecated READ isDeprecated WRITE setIsDeprecated)
136 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
147 explicit QmlMetadata(QObject *parent = 0);
150 PluginType type()
const {
return m_type; }
151 void setType(PluginType);
152 QString name()
const {
return m_name; }
153 void setName(
const QString&);
154 QString mlt_service()
const {
return m_mlt_service; }
155 void set_mlt_service(
const QString&);
156 QString uniqueId()
const;
157 bool needsGPU()
const {
return m_needsGPU; }
158 void setNeedsGPU(
bool);
159 QString qmlFileName()
const {
return m_qmlFileName; }
160 void setQmlFileName(
const QString&);
161 QString vuiFileName()
const {
return m_vuiFileName; }
162 void setVuiFileName(
const QString&);
163 QDir path()
const {
return m_path; }
164 void setPath(
const QDir& path);
165 QUrl qmlFilePath()
const;
166 QUrl vuiFilePath()
const;
167 bool isAudio()
const {
return m_isAudio; }
168 void setIsAudio(
bool isAudio);
169 bool isHidden()
const {
return m_isHidden; }
170 void setIsHidden(
bool isHidden);
171 bool isFavorite()
const {
return m_isFavorite; }
172 void setIsFavorite(
bool isFavorite);
173 QString gpuAlt()
const {
return m_gpuAlt; }
174 void setGpuAlt(
const QString&);
175 bool allowMultiple()
const {
return m_allowMultiple; }
176 void setAllowMultiple(
bool allowMultiple);
177 bool isClipOnly()
const {
return m_isClipOnly; }
178 void setIsClipOnly(
bool isClipOnly);
179 bool isGpuCompatible()
const {
return m_isGpuCompatible; }
180 void setIsGpuCompatible(
bool isCompatible) { m_isGpuCompatible = isCompatible; }
181 QmlKeyframesMetadata* keyframes() {
return &m_keyframes; }
182 const QmlKeyframesMetadata* keyframes()
const {
return &m_keyframes; }
183 bool isDeprecated()
const {
return m_isDeprecated; }
184 void setIsDeprecated(
bool deprecated) { m_isDeprecated = deprecated; }
185 bool isMltVersion(
const QString& version);
193 QString m_mlt_service;
195 QString m_qmlFileName;
196 QString m_vuiFileName;
202 bool m_allowMultiple;
204 bool m_isGpuCompatible;
205 QmlKeyframesMetadata m_keyframes;
207 QString m_minimumVersion;