23#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);
49 QString name()
const {
return m_name; }
50 QString property()
const {
return m_property; }
51 QStringList gangedProperties()
const {
return m_gangedProperties; }
52 bool isCurve()
const {
return m_isCurve; }
53 double minimum()
const {
return m_minimum; }
54 double maximum()
const {
return m_maximum; }
55 QString units()
const {
return m_units; }
56 bool isRectangle()
const {
return m_isRectangle; }
57 RangeType rangeType()
const {
return m_rangeType; }
58 bool isColor()
const {
return m_isColor; }
66 QStringList m_gangedProperties;
72 RangeType m_rangeType;
76class QmlKeyframesMetadata :
public QObject
79 Q_PROPERTY(
bool allowTrim MEMBER m_allowTrim NOTIFY changed)
80 Q_PROPERTY(
bool allowAnimateIn MEMBER m_allowAnimateIn NOTIFY changed)
81 Q_PROPERTY(
bool allowAnimateOut MEMBER m_allowAnimateOut NOTIFY changed)
82 Q_PROPERTY(QQmlListProperty<QmlKeyframesParameter> parameters READ parameters NOTIFY changed)
84 Q_PROPERTY(QList<QString> simpleProperties MEMBER m_simpleProperties NOTIFY changed)
85 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
86 Q_PROPERTY(
bool enabled MEMBER m_enabled NOTIFY changed)
87 Q_PROPERTY(
bool allowOvershoot MEMBER m_allowOvershoot NOTIFY changed)
90 explicit QmlKeyframesMetadata(QObject *parent = 0);
92 bool allowTrim()
const {
return m_allowTrim; }
93 bool allowAnimateIn()
const {
return m_allowAnimateIn; }
94 bool allowAnimateOut()
const {
return m_allowAnimateOut; }
95 QList<QString> simpleProperties()
const {
return m_simpleProperties; }
96 bool allowOvershoot()
const {
return m_allowOvershoot; }
97 QQmlListProperty<QmlKeyframesParameter> parameters()
99 return QQmlListProperty<QmlKeyframesParameter>(
this, &m_parameters);
101 int parameterCount()
const {
return m_parameters.count(); }
102 QmlKeyframesParameter *parameter(
int index)
const {
return m_parameters[index]; }
103 Q_INVOKABLE QmlKeyframesParameter *parameter(
const QString &propertyName)
const;
104 void checkVersion(
const QString &version);
112 bool m_allowAnimateIn;
113 bool m_allowAnimateOut;
114 QList<QmlKeyframesParameter *> m_parameters;
115 QList<QString> m_simpleProperties;
116 QString m_minimumVersion;
118 bool m_allowOvershoot;
121class QmlMetadata :
public QObject
124 Q_PROPERTY(PluginType type READ type WRITE setType NOTIFY changed)
125 Q_PROPERTY(QString name READ name WRITE setName NOTIFY changed)
126 Q_PROPERTY(QString mlt_service READ mlt_service WRITE set_mlt_service NOTIFY changed)
127 Q_PROPERTY(
bool needsGPU READ needsGPU WRITE setNeedsGPU NOTIFY changed)
128 Q_PROPERTY(QString qml READ qmlFileName WRITE setQmlFileName NOTIFY changed)
129 Q_PROPERTY(QString vui READ vuiFileName WRITE setVuiFileName NOTIFY changed)
130 Q_PROPERTY(QUrl qmlFilePath READ qmlFilePath NOTIFY changed)
131 Q_PROPERTY(QUrl vuiFilePath READ vuiFilePath NOTIFY changed)
132 Q_PROPERTY(
bool isAudio READ isAudio WRITE setIsAudio NOTIFY changed)
133 Q_PROPERTY(
bool isHidden READ isHidden WRITE setIsHidden NOTIFY changed)
134 Q_PROPERTY(
bool isFavorite READ isFavorite WRITE setIsFavorite NOTIFY changed)
135 Q_PROPERTY(QString gpuAlt READ gpuAlt WRITE setGpuAlt NOTIFY changed)
136 Q_PROPERTY(
bool allowMultiple READ allowMultiple WRITE setAllowMultiple NOTIFY changed)
137 Q_PROPERTY(
bool isClipOnly READ isClipOnly WRITE setIsClipOnly NOTIFY changed)
138 Q_PROPERTY(
bool isTrackOnly READ isTrackOnly WRITE setIsTrackOnly NOTIFY changed)
139 Q_PROPERTY(
bool isOutputOnly READ isOutputOnly WRITE setIsOutputOnly NOTIFY changed)
140 Q_PROPERTY(
bool isGpuCompatible READ isGpuCompatible() WRITE setIsGpuCompatible NOTIFY changed)
141 Q_PROPERTY(QmlKeyframesMetadata *keyframes READ keyframes NOTIFY changed)
142 Q_PROPERTY(
bool isDeprecated READ isDeprecated WRITE setIsDeprecated NOTIFY changed)
143 Q_PROPERTY(QString minimumVersion MEMBER m_minimumVersion NOTIFY changed)
144 Q_PROPERTY(QString keywords MEMBER m_keywords NOTIFY changed)
145 Q_PROPERTY(QString icon READ iconFilePath WRITE setIconFileName NOTIFY changed)
146 Q_PROPERTY(
bool seekReverse MEMBER m_seekReverse NOTIFY changed)
159 explicit QmlMetadata(QObject *parent = 0);
162 PluginType type()
const {
return m_type; }
163 void setType(PluginType);
164 QString name()
const {
return m_name; }
165 void setName(
const QString &);
166 QString mlt_service()
const {
return m_mlt_service; }
167 void set_mlt_service(
const QString &);
168 QString uniqueId()
const;
169 bool needsGPU()
const {
return m_needsGPU; }
170 void setNeedsGPU(
bool);
171 QString qmlFileName()
const {
return m_qmlFileName; }
172 void setQmlFileName(
const QString &);
173 QString vuiFileName()
const {
return m_vuiFileName; }
174 void setVuiFileName(
const QString &);
175 QDir path()
const {
return m_path; }
176 void setPath(
const QDir &path);
177 QUrl qmlFilePath()
const;
178 QUrl vuiFilePath()
const;
179 QString iconFilePath()
const
181 return (m_icon.isEmpty() || m_icon.startsWith(
"qrc:"))
183 : QUrl::fromLocalFile(m_path.absoluteFilePath(m_icon)).toString();
185 void setIconFileName(
const QString &);
186 bool isAudio()
const {
return m_isAudio; }
187 void setIsAudio(
bool isAudio);
188 bool isHidden()
const {
return m_isHidden; }
189 void setIsHidden(
bool isHidden);
190 bool isFavorite()
const {
return m_isFavorite; }
191 void setIsFavorite(
bool isFavorite);
192 QString gpuAlt()
const {
return m_gpuAlt; }
193 void setGpuAlt(
const QString &);
194 bool allowMultiple()
const {
return m_allowMultiple; }
195 void setAllowMultiple(
bool allowMultiple);
196 bool isClipOnly()
const {
return m_isClipOnly; }
197 void setIsClipOnly(
bool isClipOnly);
198 bool isTrackOnly()
const {
return m_isTrackOnly; }
199 void setIsTrackOnly(
bool isTrackOnly);
200 bool isOutputOnly()
const {
return m_isOutputOnly; }
201 void setIsOutputOnly(
bool isOutputOnly);
202 bool isGpuCompatible()
const {
return m_isGpuCompatible; }
203 void setIsGpuCompatible(
bool isCompatible) { m_isGpuCompatible = isCompatible; }
204 QmlKeyframesMetadata *keyframes() {
return &m_keyframes; }
205 const QmlKeyframesMetadata *keyframes()
const {
return &m_keyframes; }
206 bool isDeprecated()
const {
return m_isDeprecated; }
207 void setIsDeprecated(
bool deprecated) { m_isDeprecated = deprecated; }
208 bool isMltVersion(
const QString &version);
209 QString keywords()
const {
return m_keywords; }
210 bool seekReverse()
const {
return m_seekReverse; }
218 QString m_mlt_service;
220 QString m_qmlFileName;
221 QString m_vuiFileName;
227 bool m_allowMultiple;
231 bool m_isGpuCompatible;
232 QmlKeyframesMetadata m_keyframes;
234 QString m_minimumVersion;