26 #include <MltProducer.h> 27 #include "shotcut_mlt_properties.h" 29 class QmlProducer :
public QObject
32 Q_PROPERTY(
int in READ in() NOTIFY inChanged)
33 Q_PROPERTY(
int out READ out() NOTIFY outChanged)
34 Q_PROPERTY(
int aspectRatio READ aspectRatio() NOTIFY producerChanged)
35 Q_PROPERTY(
int duration READ duration() NOTIFY durationChanged)
36 Q_PROPERTY(QString resource READ resource() NOTIFY producerChanged)
37 Q_PROPERTY(QString mlt_service READ mlt_service() NOTIFY producerChanged)
38 Q_PROPERTY(QString hash READ hash() NOTIFY producerChanged)
39 Q_PROPERTY(QString name READ name() NOTIFY producerChanged)
40 Q_PROPERTY(QVariant audioLevels READ audioLevels NOTIFY audioLevelsChanged)
41 Q_PROPERTY(
int fadeIn READ fadeIn NOTIFY producerChanged)
42 Q_PROPERTY(
int fadeOut READ fadeOut NOTIFY producerChanged)
43 Q_PROPERTY(
double speed READ speed NOTIFY producerChanged)
44 Q_PROPERTY(
int position READ position WRITE setPosition NOTIFY positionChanged)
45 Q_PROPERTY(
double displayAspectRatio READ displayAspectRatio NOTIFY producerChanged)
48 explicit QmlProducer(QObject *parent = 0);
53 int duration() {
return m_producer.is_valid()? out() - in() + 1 : 0; }
55 QString mlt_service() {
return m_producer.is_valid()? m_producer.get(
"mlt_service") : QString(); }
56 QString hash() {
return m_producer.is_valid()? m_producer.get(kShotcutHashProperty) : QString(); }
58 QVariant audioLevels();
62 int position()
const {
return m_position; }
63 void setPosition(
int position);
64 void seek(
int position);
65 Mlt::Producer& producer() {
return m_producer; }
66 Q_INVOKABLE
void audioLevelsReady(
const QModelIndex &index);
67 Q_INVOKABLE
void remakeAudioLevels();
68 double displayAspectRatio();
71 void producerChanged();
72 void positionChanged(
int position);
73 void seeked(
int position);
74 void inChanged(
int delta);
75 void outChanged(
int delta);
76 void audioLevelsChanged();
77 void durationChanged();
80 void setProducer(Mlt::Producer& producer);
81 void remakeAudioLevels(
bool isKeyframesVisible);
84 Mlt::Producer m_producer;
88 #endif // QMLPRODUCER_H