+ /** @brief Edits an effect parameters in MLT's playlist. */
+ bool mltEditEffect(int track, GenTime position, EffectsParameterList params);
+ bool mltEditTrackEffect(int track, EffectsParameterList params);
+
+ /** @brief Updates the "kdenlive_ix" (index) value of an effect. */
+ void mltUpdateEffectPosition(int track, GenTime position, int oldPos, int newPos);
+
+ /** @brief Changes the order of effects in MLT's playlist.
+ *
+ * It switches effects from oldPos and newPos, updating the "kdenlive_ix"
+ * (index) value. */
+ void mltMoveEffect(int track, GenTime position, int oldPos, int newPos);
+ void mltMoveTrackEffect(int track, int oldPos, int newPos);
+
+ /** @brief Enables/disables audio/video in a track. */
+ void mltChangeTrackState(int track, bool mute, bool blind);
+ bool mltMoveTransition(QString type, int startTrack, int newTrack, int newTransitionTrack, GenTime oldIn, GenTime oldOut, GenTime newIn, GenTime newOut);
+ bool mltAddTransition(QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool refresh = true);
+ void mltDeleteTransition(QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool refresh = true);
+ void mltUpdateTransition(QString oldTag, QString tag, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml, bool force = false);
+ void mltUpdateTransitionParams(QString type, int a_track, int b_track, GenTime in, GenTime out, QDomElement xml);
+ void mltAddClipTransparency(ItemInfo info, int transitiontrack, int id);
+ void mltMoveTransparency(int startTime, int endTime, int startTrack, int endTrack, int id);
+ void mltDeleteTransparency(int pos, int track, int id);
+ void mltResizeTransparency(int oldStart, int newStart, int newEnd, int track, int id);
+ void mltInsertTrack(int ix, bool videoTrack);
+ void mltDeleteTrack(int ix);
+ bool mltUpdateClipProducer(Mlt::Tractor *tractor, int track, int pos, Mlt::Producer *prod);
+ void mltPlantTransition(Mlt::Field *field, Mlt::Transition &tr, int a_track, int b_track);
+ Mlt::Producer *invalidProducer(const QString &id);
+
+ /** @brief Changes the speed of a clip in MLT's playlist.
+ *
+ * It creates a new "framebuffer" producer, which must have its "resource"
+ * property set to "video.mpg?0.6", where "video.mpg" is the path to the
+ * clip and "0.6" is the speed in percentage. The newly created producer
+ * will have its "id" property set to "slowmotion:parentid:speed", where
+ * "parentid" is the id of the original clip in the ClipManager list and
+ * "speed" is the current speed. */
+ int mltChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, double speed, double oldspeed, int strobe, Mlt::Producer *prod);
+
+ const QList <Mlt::Producer *> producersList();
+ void updatePreviewSettings();
+ void setDropFrames(bool show);
+ QString updateSceneListFps(double current_fps, double new_fps, QString scene);
+ void showFrame(Mlt::Frame&);
+
+ void showAudio(Mlt::Frame&);
+ /** @brief This property is used to decide if the renderer should send audio data for monitoring. */
+ bool analyseAudio;
+
+ QList <int> checkTrackSequence(int);
+ void sendFrameUpdate();
+
+ /** @brief Returns a pointer to the main producer. */
+ Mlt::Producer *getProducer();
+ /** @brief Returns the number of clips to process (When requesting clip info). */
+ int processingItems();
+ /** @brief Force processing of clip with selected id. */
+ void forceProcessing(const QString &id);
+ /** @brief Are we currently processing clip with selected id. */
+ bool isProcessing(const QString &id);
+
+ /** @brief Requests the file properties for the specified URL (will be put in a queue list)
+ @param xml The xml parameters for the clip
+ @param clipId The clip Id string
+ @param imageHeight The height (in pixels) of the returned thumbnail (height of a treewidgetitem in projectlist)
+ @param replaceProducer If true, the MLT producer will be recreated */
+ void getFileProperties(const QDomElement &xml, const QString &clipId, int imageHeight, bool replaceProducer = true);
+
+ /** @brief Lock the MLT service */
+ Mlt::Tractor *lockService();
+ /** @brief Unlock the MLT service */
+ void unlockService(Mlt::Tractor *tractor);
+ const QString activeClipId();
+
+private:
+
+ /** @brief The name of this renderer.
+ *
+ * Useful to identify the renderers by what they do - e.g. background
+ * rendering, workspace monitor, etc. */