25#include <QQmlListProperty>
27class QmlKeyframesParameter :
public QObject
30 Q_PROPERTY(RangeType rangeType MEMBER m_rangeType NOTIFY changed)
31 Q_PROPERTY(QString name MEMBER m_name NOTIFY changed)
32 Q_PROPERTY(QString property MEMBER m_property NOTIFY changed)
33 Q_PROPERTY(QStringList gangedProperties MEMBER m_gangedProperties NOTIFY changed)
34 Q_PROPERTY(
bool isCurve MEMBER m_isCurve NOTIFY changed)
35 Q_PROPERTY(
double minimum MEMBER m_minimum NOTIFY changed)
36 Q_PROPERTY(
double maximum MEMBER m_maximum NOTIFY changed)
37 Q_PROPERTY(QString units MEMBER m_units NOTIFY changed)
38 Q_PROPERTY(
bool isRectangle MEMBER m_isRectangle NOTIFY changed)
39 Q_PROPERTY(
bool isColor MEMBER m_isColor NOTIFY changed)
47 explicit QmlKeyframesParameter(QObject *parent = 0);
53 QString property()
const
57 QStringList gangedProperties()
const
59 return m_gangedProperties;
65 double minimum()
const
69 double maximum()
const
77 bool isRectangle()
const
81 RangeType rangeType()
const
96 QStringList m_gangedProperties;
102 RangeType m_rangeType;
106class QmlKeyframesMetadata :
public QObject
109 Q_PROPERTY(
bool allowTrim MEMBER m_allowTrim NOTIFY changed)
110 Q_PROPERTY(
bool allowAnimateIn MEMBER m_allowAnimateIn NOTIFY changed)
111 Q_PROPERTY(
bool allowAnimateOut MEMBER m_allowAnimateOut NOTIFY changed)
112 Q_PROPERTY(QQmlListProperty<QmlKeyframesParameter> parameters READ parameters NOTIFY changed)
114 Q_PROPERTY(QList<QString> simpleProperties MEMBER m_simpleProperties NOTIFY changed)
115 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
116 Q_PROPERTY(
bool enabled MEMBER m_enabled NOTIFY changed)
117 Q_PROPERTY(
bool allowOvershoot MEMBER m_allowOvershoot NOTIFY changed)
120 explicit QmlKeyframesMetadata(QObject *parent = 0);
122 bool allowTrim()
const
126 bool allowAnimateIn()
const
128 return m_allowAnimateIn;
130 bool allowAnimateOut()
const
132 return m_allowAnimateOut;
134 QList<QString> simpleProperties()
const
136 return m_simpleProperties;
138 bool allowOvershoot()
const
140 return m_allowOvershoot;
142 QQmlListProperty<QmlKeyframesParameter> parameters()
144 return QQmlListProperty<QmlKeyframesParameter>(
this, &m_parameters);
146 int parameterCount()
const
148 return m_parameters.count();
150 QmlKeyframesParameter *parameter(
int index)
const
152 return m_parameters[index];
154 Q_INVOKABLE QmlKeyframesParameter *parameter(
const QString &propertyName)
const;
155 void checkVersion(
const QString &version);
163 bool m_allowAnimateIn;
164 bool m_allowAnimateOut;
165 QList<QmlKeyframesParameter *> m_parameters;
166 QList<QString> m_simpleProperties;
167 QString m_minimumVersion;
169 bool m_allowOvershoot;
173class QmlMetadata :
public QObject
176 Q_PROPERTY(PluginType type READ type WRITE setType NOTIFY changed)
177 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
178 Q_PROPERTY(QString mlt_service READ mlt_service WRITE set_mlt_service NOTIFY changed)
179 Q_PROPERTY(
bool needsGPU READ needsGPU WRITE setNeedsGPU NOTIFY changed)
180 Q_PROPERTY(QString qml READ qmlFileName WRITE setQmlFileName NOTIFY changed)
181 Q_PROPERTY(QString vui READ vuiFileName WRITE setVuiFileName NOTIFY changed)
182 Q_PROPERTY(QUrl qmlFilePath READ qmlFilePath NOTIFY changed)
183 Q_PROPERTY(QUrl vuiFilePath READ vuiFilePath NOTIFY changed)
184 Q_PROPERTY(
bool isAudio READ isAudio WRITE setIsAudio NOTIFY changed)
185 Q_PROPERTY(
bool isHidden READ isHidden WRITE setIsHidden NOTIFY changed)
186 Q_PROPERTY(
bool isFavorite READ isFavorite WRITE setIsFavorite NOTIFY changed)
187 Q_PROPERTY(QString gpuAlt READ gpuAlt WRITE setGpuAlt NOTIFY changed)
188 Q_PROPERTY(
bool allowMultiple READ allowMultiple WRITE setAllowMultiple NOTIFY changed)
189 Q_PROPERTY(
bool isClipOnly READ isClipOnly WRITE setIsClipOnly NOTIFY changed)
190 Q_PROPERTY(
bool isTrackOnly READ isTrackOnly WRITE setIsTrackOnly NOTIFY changed)
191 Q_PROPERTY(
bool isOutputOnly READ isOutputOnly WRITE setIsOutputOnly NOTIFY changed)
192 Q_PROPERTY(
bool isGpuCompatible READ isGpuCompatible() WRITE setIsGpuCompatible NOTIFY changed)
193 Q_PROPERTY(QmlKeyframesMetadata *keyframes READ keyframes NOTIFY changed)
194 Q_PROPERTY(
bool isDeprecated READ isDeprecated WRITE setIsDeprecated NOTIFY changed)
195 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
196 Q_PROPERTY(QString keywords MEMBER m_keywords NOTIFY changed)
197 Q_PROPERTY(QString icon READ iconFilePath WRITE setIconFileName NOTIFY changed)
198 Q_PROPERTY(
bool seekReverse MEMBER m_seekReverse NOTIFY changed)
211 explicit QmlMetadata(QObject *parent = 0);
214 PluginType type()
const
218 void setType(PluginType);
223 void setName(
const QString &);
224 QString mlt_service()
const
226 return m_mlt_service;
228 void set_mlt_service(
const QString &);
229 QString uniqueId()
const;
230 bool needsGPU()
const
234 void setNeedsGPU(
bool);
235 QString qmlFileName()
const
237 return m_qmlFileName;
239 void setQmlFileName(
const QString &);
240 QString vuiFileName()
const
242 return m_vuiFileName;
244 void setVuiFileName(
const QString &);
249 void setPath(
const QDir &path);
250 QUrl qmlFilePath()
const;
251 QUrl vuiFilePath()
const;
252 QString iconFilePath()
const
254 return (m_icon.isEmpty() || m_icon.startsWith(
"qrc:")) ? m_icon :
255 QUrl::fromLocalFile(m_path.absoluteFilePath(m_icon)).toString();
257 void setIconFileName(
const QString &);
262 void setIsAudio(
bool isAudio);
263 bool isHidden()
const
267 void setIsHidden(
bool isHidden);
268 bool isFavorite()
const
272 void setIsFavorite(
bool isFavorite);
273 QString gpuAlt()
const
277 void setGpuAlt(
const QString &);
278 bool allowMultiple()
const
280 return m_allowMultiple;
282 void setAllowMultiple(
bool allowMultiple);
283 bool isClipOnly()
const
287 void setIsClipOnly(
bool isClipOnly);
288 bool isTrackOnly()
const
290 return m_isTrackOnly;
292 void setIsTrackOnly(
bool isTrackOnly);
293 bool isOutputOnly()
const
295 return m_isOutputOnly;
297 void setIsOutputOnly(
bool isOutputOnly);
298 bool isGpuCompatible()
const
300 return m_isGpuCompatible;
302 void setIsGpuCompatible(
bool isCompatible)
304 m_isGpuCompatible = isCompatible;
306 QmlKeyframesMetadata *keyframes()
310 const QmlKeyframesMetadata *keyframes()
const
314 bool isDeprecated()
const
316 return m_isDeprecated;
318 void setIsDeprecated(
bool deprecated)
320 m_isDeprecated = deprecated;
322 bool isMltVersion(
const QString &version);
323 QString keywords()
const
327 bool seekReverse()
const
329 return m_seekReverse;
338 QString m_mlt_service;
340 QString m_qmlFileName;
341 QString m_vuiFileName;
347 bool m_allowMultiple;
351 bool m_isGpuCompatible;
352 QmlKeyframesMetadata m_keyframes;
354 QString m_minimumVersion;