]> git.sesse.net Git - kdenlive/blobdiff - src/effectstackedit.h
Merge branch 'master' into effectstack
[kdenlive] / src / effectstackedit.h
index 88688c75981d819415397768a66e42717acf39f4..18d4d3167f6fb32b9a981a34d1d6437cb9ae623d 100644 (file)
@@ -21,6 +21,7 @@
 #include "definitions.h"
 #include "timecode.h"
 #include "keyframeedit.h"
+#include "effectstack/collapsibleeffect.h"
 
 #include <QWidget>
 #include <QDomElement>
 #include <QMap>
 #include <QScrollArea>
 
-enum WIPE_DIRECTON { UP = 0, DOWN = 1, LEFT = 2, RIGHT = 3, CENTER = 4 };
-
-struct wipeInfo {
-    WIPE_DIRECTON start;
-    WIPE_DIRECTON end;
-    int startTransparency;
-    int endTransparency;
-};
-
 class QFrame;
 class Monitor;
 class GeometryWidget;
@@ -57,12 +49,13 @@ public:
     void setFrameSize(QPoint p);
     /** @brief Tells the parameters to update their timecode format according to KdenliveSettings. */
     void updateTimecodeFormat();
+    /** @brief Returns true if this effect wants to keep track of current position in clip. */
+    bool effectNeedsSyncPosition() const;
+    Monitor *monitor();
 
 private:
     /** @brief Deletes all parameter widgets. */
     void clearAllItems();
-    wipeInfo getWipeInfo(QString value);
-    QString getWipeString(wipeInfo info);
     /** @brief Updates parameter @param name according to new value of dependency.
     * @param name Name of the parameter which will be updated
     * @param type Type of the parameter which will be updated
@@ -71,21 +64,20 @@ private:
 
     QVBoxLayout *m_vbox;
     QList<QWidget*> m_uiItems;
-    QWidget *m_baseWidget;
     QDomElement m_params;
     QMap<QString, QWidget*> m_valueItems;
-    MltVideoProfile m_profile;
-    Timecode m_timecode;
     int m_in;
     int m_out;
-    QPoint m_frameSize;
     KeyframeEdit *m_keyframeEditor;
     Monitor *m_monitor;
     GeometryWidget *m_geometryWidget;
+    EffectMetaInfo m_metaInfo;
+    QWidget *m_baseWidget;
+    ParameterContainer *m_paramWidget;
 
 public slots:
     /** @brief Called when an effect is selected, builds the UIĀ for this effect. */
-    void transferParamDesc(const QDomElement d, ItemInfo info, bool isEffect = true);
+    void transferParamDesc(const QDomElement &d, ItemInfo info, bool isEffect = true);
 
     /** @brief Called whenever(?) some parameter is changed in the gui.
      *
@@ -94,15 +86,20 @@ public slots:
 
     /** @brief Pass position changes of the timeline cursor to the effects to keep their local timelines in sync. */
     void slotSyncEffectsPos(int pos);
+    
+private slots:
+    void slotStartFilterJobAction();
 
 signals:
-    void parameterChanged(const QDomElement, const QDomElement);
+    void parameterChanged(const QDomElement &, const QDomElement &, int);
     void seekTimeline(int);
     void displayMessage(const QString&, int);
     void checkMonitorPosition(int);
     void syncEffectsPos(int pos);
     void showComments(bool show);
     void effectStateChanged(bool enabled);
+    /** @brief Start an MLT filter job on this clip. */
+    void startFilterJob(const QString &filterName, const QString &filterParams, const QString &finalFilterName, const QString &consumer, const QString &consumerParams, const QString &properties);
 };
 
 #endif