+ void initEffect(QDomElement effect, int diff = 0);
+
+ /** @brief Gets all keyframes.
+ * @param index Number of the effect
+ * @return a list of strings of keyframes (one string per param) */
+ QStringList keyframes(const int index);
+
+ /** @brief Sets params with keyframes and updates the visible keyframes.
+ * @param ix Number of the effect
+ * @param keyframes a list of strings of keyframes (one string per param), which should be used */
+ void setKeyframes(const int ix, const QStringList keyframes);
+ void setEffectList(const EffectsList effectList);
+ void setSpeed(const double speed, int strobe);
+ double speed() const;
+ int strobe() const;
+ GenTime maxDuration() const;
+ GenTime speedIndependantCropStart() const;
+ GenTime speedIndependantCropDuration() const;
+ const ItemInfo speedIndependantInfo() const;
+ int hasEffect(const QString &tag, const QString &id) const;
+
+ /** @brief Makes sure all keyframes are in the clip's cropped duration.
+ * @return Whether or not changes were made */
+ bool checkKeyFrames();
+ QPixmap startThumb() const;
+ QPixmap endThumb() const;
+ void setVideoOnly(bool force);
+ void setAudioOnly(bool force);
+ bool isVideoOnly() const;
+ bool isAudioOnly() const;
+
+ /** @brief Adjusts the keyframe values to fit a clip resizement.
+ * @param previous Old crop value
+ * @param current New crop value
+ * @param fromStart true = crop from start, false = crop from end
+ * @return true if anything was modified */
+ bool checkEffectsKeyframesPos(const int previous, const int current, bool fromStart);
+ void insertKeyframe(QDomElement effect, int pos, int val);
+ void movedKeyframe(QDomElement effect, int oldpos, int newpos, double value);
+ void updateKeyframes(QDomElement effect);