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)
46 explicit QmlKeyframesParameter(QObject *parent = 0);
52 QString property()
const
56 QStringList gangedProperties()
const
58 return m_gangedProperties;
64 double minimum()
const
68 double maximum()
const
76 bool isRectangle()
const
80 RangeType rangeType()
const
91 QStringList m_gangedProperties;
97 RangeType m_rangeType;
100class QmlKeyframesMetadata :
public QObject
103 Q_PROPERTY(
bool allowTrim MEMBER m_allowTrim NOTIFY changed)
104 Q_PROPERTY(
bool allowAnimateIn MEMBER m_allowAnimateIn NOTIFY changed)
105 Q_PROPERTY(
bool allowAnimateOut MEMBER m_allowAnimateOut NOTIFY changed)
106 Q_PROPERTY(QQmlListProperty<QmlKeyframesParameter> parameters READ parameters NOTIFY changed)
108 Q_PROPERTY(QList<QString> simpleProperties MEMBER m_simpleProperties NOTIFY changed)
109 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
110 Q_PROPERTY(
bool enabled MEMBER m_enabled NOTIFY changed)
111 Q_PROPERTY(
bool allowSmooth MEMBER m_allowSmooth NOTIFY changed)
114 explicit QmlKeyframesMetadata(QObject *parent = 0);
116 bool allowTrim()
const
120 bool allowAnimateIn()
const
122 return m_allowAnimateIn;
124 bool allowAnimateOut()
const
126 return m_allowAnimateOut;
128 QList<QString> simpleProperties()
const
130 return m_simpleProperties;
132 bool allowSmooth()
const
134 return m_allowSmooth;
137 QQmlListProperty<QmlKeyframesParameter> parameters()
139 return QQmlListProperty<QmlKeyframesParameter>(
this, &m_parameters);
141 int parameterCount()
const
143 return m_parameters.count();
145 QmlKeyframesParameter *parameter(
int index)
const
147 return m_parameters[index];
149 void checkVersion(
const QString &version);
157 bool m_allowAnimateIn;
158 bool m_allowAnimateOut;
159 QList<QmlKeyframesParameter *> m_parameters;
160 QList<QString> m_simpleProperties;
161 QString m_minimumVersion;
167class QmlMetadata :
public QObject
170 Q_PROPERTY(PluginType type READ type WRITE setType NOTIFY changed)
171 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
172 Q_PROPERTY(QString mlt_service READ mlt_service WRITE set_mlt_service NOTIFY changed)
173 Q_PROPERTY(
bool needsGPU READ needsGPU WRITE setNeedsGPU NOTIFY changed)
174 Q_PROPERTY(QString qml READ qmlFileName WRITE setQmlFileName NOTIFY changed)
175 Q_PROPERTY(QString vui READ vuiFileName WRITE setVuiFileName NOTIFY changed)
176 Q_PROPERTY(QUrl qmlFilePath READ qmlFilePath NOTIFY changed)
177 Q_PROPERTY(QUrl vuiFilePath READ vuiFilePath NOTIFY changed)
178 Q_PROPERTY(
bool isAudio READ isAudio WRITE setIsAudio NOTIFY changed)
179 Q_PROPERTY(
bool isHidden READ isHidden WRITE setIsHidden NOTIFY changed)
180 Q_PROPERTY(
bool isFavorite READ isFavorite WRITE setIsFavorite NOTIFY changed)
181 Q_PROPERTY(QString gpuAlt READ gpuAlt WRITE setGpuAlt NOTIFY changed)
182 Q_PROPERTY(
bool allowMultiple READ allowMultiple WRITE setAllowMultiple NOTIFY changed)
183 Q_PROPERTY(
bool isClipOnly READ isClipOnly WRITE setIsClipOnly NOTIFY changed)
184 Q_PROPERTY(
bool isTrackOnly READ isTrackOnly WRITE setIsTrackOnly NOTIFY changed)
185 Q_PROPERTY(
bool isGpuCompatible READ isGpuCompatible() WRITE setIsGpuCompatible NOTIFY changed)
186 Q_PROPERTY(QmlKeyframesMetadata *keyframes READ keyframes NOTIFY changed)
187 Q_PROPERTY(
bool isDeprecated READ isDeprecated WRITE setIsDeprecated NOTIFY changed)
188 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
189 Q_PROPERTY(QString keywords MEMBER m_keywords NOTIFY changed)
190 Q_PROPERTY(QString icon READ iconFilePath WRITE setIconFileName NOTIFY changed)
191 Q_PROPERTY(
bool seekReverse MEMBER m_seekReverse NOTIFY changed)
204 explicit QmlMetadata(QObject *parent = 0);
207 PluginType type()
const
211 void setType(PluginType);
216 void setName(
const QString &);
217 QString mlt_service()
const
219 return m_mlt_service;
221 void set_mlt_service(
const QString &);
222 QString uniqueId()
const;
223 bool needsGPU()
const
227 void setNeedsGPU(
bool);
228 QString qmlFileName()
const
230 return m_qmlFileName;
232 void setQmlFileName(
const QString &);
233 QString vuiFileName()
const
235 return m_vuiFileName;
237 void setVuiFileName(
const QString &);
242 void setPath(
const QDir &path);
243 QUrl qmlFilePath()
const;
244 QUrl vuiFilePath()
const;
245 QString iconFilePath()
const
247 return (m_icon.isEmpty() || m_icon.startsWith(
"qrc:")) ? m_icon :
248 QUrl::fromLocalFile(m_path.absoluteFilePath(m_icon)).toString();
250 void setIconFileName(
const QString &);
255 void setIsAudio(
bool isAudio);
256 bool isHidden()
const
260 void setIsHidden(
bool isHidden);
261 bool isFavorite()
const
265 void setIsFavorite(
bool isFavorite);
266 QString gpuAlt()
const
270 void setGpuAlt(
const QString &);
271 bool allowMultiple()
const
273 return m_allowMultiple;
275 void setAllowMultiple(
bool allowMultiple);
276 bool isClipOnly()
const
280 void setIsClipOnly(
bool isClipOnly);
281 bool isTrackOnly()
const
283 return m_isTrackOnly;
285 void setIsTrackOnly(
bool isTrackOnly);
286 bool isGpuCompatible()
const
288 return m_isGpuCompatible;
290 void setIsGpuCompatible(
bool isCompatible)
292 m_isGpuCompatible = isCompatible;
294 QmlKeyframesMetadata *keyframes()
298 const QmlKeyframesMetadata *keyframes()
const
302 bool isDeprecated()
const
304 return m_isDeprecated;
306 void setIsDeprecated(
bool deprecated)
308 m_isDeprecated = deprecated;
310 bool isMltVersion(
const QString &version);
311 QString keywords()
const
315 bool seekReverse()
const
317 return m_seekReverse;
326 QString m_mlt_service;
328 QString m_qmlFileName;
329 QString m_vuiFileName;
335 bool m_allowMultiple;
338 bool m_isGpuCompatible;
339 QmlKeyframesMetadata m_keyframes;
341 QString m_minimumVersion;