X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frenderer.h;h=66b7022f7f1165bff3d43a2d51a0a3071099f919;hb=f20225e0078b03502709b4bee99563cd5593ee75;hp=241459a17171cdcf6d3e44dcbc3b79d432eb9e40;hpb=2950bfaa74c8dbc91e72634a8c2efbc107f571ae;p=kdenlive diff --git a/src/renderer.h b/src/renderer.h index 241459a1..66b7022f 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -52,6 +52,7 @@ namespace Mlt class Consumer; class Playlist; class Tractor; +class Transition; class Frame; class Producer; class Filter; @@ -169,8 +170,8 @@ Q_OBJECT public: double dar() const; /** Playlist manipulation */ - int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod); - void mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod); + int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod, bool overwrite = false, bool push = false); + bool mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod); void mltCutClip(int track, GenTime position); void mltInsertSpace(QMap trackClipStartList, QMap trackTransitionStartList, int track, const GenTime duration, const GenTime timeOffset); int mltGetSpaceLength(const GenTime pos, int track, bool fromBlankStart); @@ -178,13 +179,20 @@ Q_OBJECT public: bool mltResizeClipEnd(ItemInfo info, GenTime clipDuration); bool mltResizeClipStart(ItemInfo info, GenTime diff); bool mltResizeClipCrop(ItemInfo info, GenTime diff); - bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart, Mlt::Producer *prod); - bool mltMoveClip(int startTrack, int endTrack, int pos, int moveStart, Mlt::Producer *prod); + bool mltMoveClip(int startTrack, int endTrack, GenTime pos, GenTime moveStart, Mlt::Producer *prod, bool overwrite = false, bool insert = false); + bool mltMoveClip(int startTrack, int endTrack, int pos, int moveStart, Mlt::Producer *prod, bool overwrite = false, bool insert = false); bool mltRemoveClip(int track, GenTime position); + /** Delete an effect to a clip in MLT's playlist */ bool mltRemoveEffect(int track, GenTime position, QString index, bool updateIndex, bool doRefresh = true); + /** Add an effect to a clip in MLT's playlist */ bool mltAddEffect(int track, GenTime position, EffectsParameterList params, bool doRefresh = true); + /** Edit an effect parameters in MLT */ bool mltEditEffect(int track, GenTime position, EffectsParameterList params); + /** This only updates the "kdenlive_ix" (index) value of an effect */ + void mltUpdateEffectPosition(int track, GenTime position, int oldPos, int newPos); + /** This changes the order of effects in MLT, inverting effects from oldPos and newPos, also updating the kdenlive_ix value */ void mltMoveEffect(int track, GenTime position, int oldPos, int newPos); + /** This changes the state of a track, enabling / disabling audio and video */ 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); @@ -197,14 +205,14 @@ Q_OBJECT public: void mltResizeTransparency(int oldStart, int newStart, int newEnd, int track, int id); void mltInsertTrack(int ix, bool videoTrack); void mltDeleteTrack(int ix); - void mltUpdateClipProducer(int track, int pos, Mlt::Producer *prod); + bool mltUpdateClipProducer(int track, int pos, Mlt::Producer *prod); /** Change speed of a clip in playlist. To do this, we create a new "framebuffer" producer. This new producer must have its "resource" param set to: video.mpg?0.6 where video.mpg is the path to the clip and 0.6 is the speed in percents. The newly created producer will have it's "id" parameter 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, double speed, double oldspeed, int strobe, Mlt::Producer *prod); + int mltChangeClipSpeed(ItemInfo info, ItemInfo speedIndependantInfo, double speed, double oldspeed, int strobe, Mlt::Producer *prod); const QList producersList(); void updatePreviewSettings(); @@ -213,6 +221,7 @@ Q_OBJECT public: #ifdef Q_WS_MAC void showFrame(Mlt::Frame&); #endif + QList checkTrackSequence(int); private: // Private attributes & methods /** The name of this renderer - useful to identify the renderes by what they do - e.g. background rendering, workspace monitor, etc... */ @@ -285,7 +294,6 @@ signals: // Signals void rendererStopped(int); void removeInvalidClip(const QString &, bool replaceProducer); void refreshDocumentProducers(); - void blockMonitors(); /** Used on OS X - emitted when a frame's image is to be shown. */ void showImageSignal(QImage); @@ -301,12 +309,13 @@ public slots: // Public slots /** Wraps the VEML command of the same name. Requests the file properties for the specified url from the renderer. Upon return, the result will be emitted via replyGetFileProperties(). */ - void getFileProperties(const QDomElement xml, const QString &clipId, bool replaceProducer = true); + void getFileProperties(const QDomElement xml, const QString &clipId, int imageHeight, bool replaceProducer = true); void exportFileToFirewire(QString srcFileName, int port, GenTime startTime, GenTime endTime); static char *decodedString(QString str); void mltSavePlaylist(); void slotSplitView(bool doit); + void slotSwitchFullscreen(); }; #endif