]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Improve handling of missing clips:
[kdenlive] / src / renderer.h
index 8685765e63fd89e4e6adfd2cb61727291d41eb21..402def2ba6e7df69407c90c3309f8b6ce5b50ad7 100644 (file)
@@ -41,7 +41,8 @@ class Render;
 class QTimer;
 class QPixmap;
 
-namespace Mlt {
+namespace Mlt
+{
 class Consumer;
 class Playlist;
 class Tractor;
@@ -54,7 +55,8 @@ class Multitrack;
 
 
 
-class Render: public QObject {
+class Render: public QObject
+{
 Q_OBJECT public:
 
     enum FailStates { OK = 0,
@@ -93,7 +95,7 @@ Q_OBJECT public:
     void setSceneList(QString playlist, int position = 0);
     void setProducer(Mlt::Producer *producer, int position);
     const QString sceneList();
-    void saveSceneList(QString path, QDomElement kdenliveData = QDomElement());
+    bool saveSceneList(QString path, QDomElement kdenliveData = QDomElement());
 
     /** Wraps the VEML command of the same name. Tells the renderer to
     play the current scene at the speed specified, relative to normal
@@ -141,11 +143,11 @@ Q_OBJECT public:
     /** Turn on or off on screen display */
     void refreshDisplay();
     int resetProfile();
-    const double fps() const;
-    const int renderWidth() const;
-    const int renderHeight() const;
+    double fps() const;
+    int renderWidth() const;
+    int renderHeight() const;
     /** get display aspect ratio */
-    const double dar() const;
+    double dar() const;
 
     /** Playlist manipulation */
     void mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
@@ -153,6 +155,7 @@ Q_OBJECT public:
     void mltCutClip(int track, GenTime position);
     void mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int> trackTransitionStartList, int track, const GenTime duration, const GenTime timeOffset);
     int mltGetSpaceLength(const GenTime pos, int track, bool fromBlankStart);
+    int mltTrackDuration(int track);
     bool mltResizeClipEnd(ItemInfo info, GenTime clipDuration);
     bool mltResizeClipStart(ItemInfo info, GenTime diff);
     bool mltResizeClipCrop(ItemInfo info, GenTime diff);
@@ -192,8 +195,6 @@ private:   // Private attributes & methods
     QString m_name;
     Mlt::Consumer * m_mltConsumer;
     Mlt::Producer * m_mltProducer;
-    Mlt::Producer *m_mltTextProducer;
-    Mlt::Filter *m_osdInfo;
     Mlt::Profile *m_mltProfile;
     double m_framePosition;
     double m_fps;
@@ -208,17 +209,13 @@ private:   // Private attributes & methods
     bool m_isSplitView;
 
     Mlt::Producer *m_blackClip;
-    /** Holds the path to on screen display profile */
-    QString m_osdProfile;
     QString m_activeProfile;
 
-    QTimer *refreshTimer;
-    QTimer *osdTimer;
-    KUrl m_exportedFile;
+    QTimer *m_refreshTimer;
+    QTimer *m_osdTimer;
 
     /** A human-readable description of this renderer. */
     int m_winid;
-    int m_externalwinid;
 
     /** Sets the description of this renderer to desc. */
     void closeMlt();
@@ -258,7 +255,8 @@ signals:   // Signals
     void durationChanged(int);
     void rendererPosition(int);
     void rendererStopped(int);
-    void removeInvalidClip(const QString &);
+    void removeInvalidClip(const QString &, bool replaceProducer);
+    void refreshDocumentProducers();
 
 public slots:  // Public slots
     /** Start Consumer */