From b8421eb0562ff039790def1b31a4fc6c66676380 Mon Sep 17 00:00:00 2001 From: Alberto Villa Date: Thu, 20 May 2010 07:03:55 +0000 Subject: [PATCH] - Cleanup. svn path=/trunk/kdenlive/; revision=4458 --- src/monitor.cpp | 18 ---- src/monitor.h | 16 +++- src/monitormanager.cpp | 22 ++--- src/monitormanager.h | 7 ++ src/renderer.cpp | 21 +---- src/renderer.h | 201 +++++++++++++++++++++++++---------------- 6 files changed, 154 insertions(+), 131 deletions(-) diff --git a/src/monitor.cpp b/src/monitor.cpp index 9513a74e..a550944f 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -349,8 +349,6 @@ GenTime Monitor::getSnapForPos(bool previous) return GenTime(); } - - void Monitor::slotZoneMoved(int start, int end) { m_ruler->setZone(start, end); @@ -397,7 +395,6 @@ void Monitor::mouseReleaseEvent(QMouseEvent * event) } } - // virtual void Monitor::mouseMoveEvent(QMouseEvent *event) { @@ -456,16 +453,7 @@ QStringList Monitor::mimeTypes() const return qstrList; } - // virtual -/** Move to other position on mousewheel - * - * Moves towards end of clip/timeline on mousewheel down/back, - * opposite for mousewheel up/forward. - * - * Ctrl+wheel moves single frame, without Ctrl moves a second. - * - * See also http://www.kdenlive.org/mantis/view.php?id=265 */ void Monitor::wheelEvent(QWheelEvent * event) { if (event->modifiers() == Qt::ControlModifier) { @@ -788,7 +776,6 @@ void Monitor::slotSaveZone() //render->setSceneList(doc, 0); } - void Monitor::resetProfile(const QString profile) { if (render == NULL) return; @@ -807,7 +794,6 @@ const QString Monitor::sceneList() return render->sceneList(); } - void Monitor::setClipZone(QPoint pos) { if (m_currentClip == NULL) return; @@ -864,7 +850,6 @@ QStringList Monitor::getZoneInfo() const return result; } - MonitorRefresh::MonitorRefresh(QWidget* parent) : \ QWidget(parent), m_renderer(NULL) @@ -884,7 +869,6 @@ void MonitorRefresh::paintEvent(QPaintEvent * /*event*/) if (m_renderer) m_renderer->doRefresh(); } - Overlay::Overlay(QWidget* parent) : QLabel(parent) { @@ -905,8 +889,6 @@ void Overlay::paintEvent(QPaintEvent * /*event*/) painter.drawText(rect(), Qt::AlignCenter, text()); } - - void Overlay::setOverlayText(const QString &text, bool isZone) { setHidden(true); diff --git a/src/monitor.h b/src/monitor.h index f246af70..79cb5b69 100644 --- a/src/monitor.h +++ b/src/monitor.h @@ -87,14 +87,22 @@ public: protected: virtual void mousePressEvent(QMouseEvent * event); virtual void mouseReleaseEvent(QMouseEvent * event); + + /** @brief Move to another position on mouse wheel event. + * + * Moves towards the end of the clip/timeline on mouse wheel down/back, the + * opposite on mouse wheel up/forward. + * Ctrl + wheel moves by a single frame, without Ctrl it moves by a second. + * + * See also http://www.kdenlive.org/mantis/view.php?id=265. */ virtual void wheelEvent(QWheelEvent * event); virtual void mouseMoveEvent(QMouseEvent *event); virtual QStringList mimeTypes() const; - /* virtual void dragMoveEvent(QDragMoveEvent * event); - virtual Qt::DropActions supportedDropActions() const;*/ + /*virtual void dragMoveEvent(QDragMoveEvent * event); + virtual Qt::DropActions supportedDropActions() const;*/ -// virtual void resizeEvent(QResizeEvent * event); -// virtual void paintEvent(QPaintEvent * event); + //virtual void resizeEvent(QResizeEvent * event); + //virtual void paintEvent(QPaintEvent * event); private: Ui::Monitor_UI m_ui; diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 9348c9de..0fdcd52d 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -48,8 +48,10 @@ void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor) void MonitorManager::activateMonitor(QString name) { - if (m_blocked || m_clipMonitor == NULL) return; - if (m_activeMonitor == name) return; + if (m_blocked || m_clipMonitor == NULL || m_projectMonitor == NULL) + return; + if (m_activeMonitor == name) + return; if (name == "clip") { m_projectMonitor->stop(); m_clipMonitor->start(); @@ -64,18 +66,10 @@ void MonitorManager::activateMonitor(QString name) void MonitorManager::slotSwitchMonitors(bool activateClip) { - if (m_blocked || m_clipMonitor == NULL) return; - if (!activateClip && m_clipMonitor->isActive()) { - m_clipMonitor->stop(); - m_projectMonitor->start(); - m_activeMonitor = m_projectMonitor->name(); - emit raiseClipMonitor(false); - } else if (activateClip && m_projectMonitor->isActive()) { - m_projectMonitor->stop(); - m_clipMonitor->start(); - m_activeMonitor = m_clipMonitor->name(); - emit raiseClipMonitor(true); - } + if (activateClip) + activateMonitor("clip"); + else + activateMonitor("project"); } void MonitorManager::stopActiveMonitor() diff --git a/src/monitormanager.h b/src/monitormanager.h index 80717eb4..3dcfc7aa 100644 --- a/src/monitormanager.h +++ b/src/monitormanager.h @@ -38,6 +38,9 @@ public: void stopActiveMonitor(); public slots: + + /** @brief Activates a monitor. + * @param name name of the monitor to activate */ void activateMonitor(QString name = QString()); void slotPlay(); void slotPlayZone(); @@ -51,6 +54,10 @@ public slots: void slotStart(); void slotEnd(); void slotResetProfiles(); + + /** @brief Switches between project and clip monitor. + * @ref activateMonitor + * @param activateClip whether to activate the clip monitor */ void slotSwitchMonitors(bool activateClip); private: diff --git a/src/renderer.cpp b/src/renderer.cpp index 59c65b74..69bec29b 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -327,7 +327,6 @@ int Render::resetProfile(const QString profileName) return 1; } -/** Wraps the VEML command of the same name; Seeks the renderer clip to the given time. */ void Render::seek(GenTime time) { if (!m_mltProducer) @@ -850,8 +849,8 @@ void Render::getFileProperties(const QDomElement xml, const QString &clipId, int } -/** Create the producer from the MLT XML QDomDocument */ #if 0 +/** Create the producer from the MLT XML QDomDocument */ void Render::initSceneList() { kDebug() << "-------- INIT SCENE LIST ------_"; @@ -888,9 +887,6 @@ void Render::initSceneList() } #endif - - -/** Create the producer from the MLT XML QDomDocument */ int Render::setProducer(Mlt::Producer *producer, int position) { if (m_winid == -1) return -1; @@ -931,15 +927,11 @@ int Render::setProducer(Mlt::Producer *producer, int position) return error; } - - -/** Create the producer from the MLT XML QDomDocument */ int Render::setSceneList(QDomDocument list, int position) { return setSceneList(list.toString(), position); } -/** Create the producer from the MLT XML QDomDocument */ int Render::setSceneList(QString playlist, int position) { if (m_winid == -1) return -1; @@ -1059,7 +1051,6 @@ int Render::setSceneList(QString playlist, int position) //if (position != 0) emit rendererPosition(position); } -/** Create the producer from the MLT XML QDomDocument */ const QString Render::sceneList() { QString playlist; @@ -1100,7 +1091,6 @@ bool Render::saveSceneList(QString path, QDomElement kdenliveData) return true; } - void Render::saveZone(KUrl url, QString desc, QPoint zone) { kDebug() << "// SAVING CLIP ZONE, RENDER: " << m_name; @@ -1445,7 +1435,6 @@ const QString & Render::rendererName() const return m_name; } - void Render::emitFrameNumber(double position) { m_framePosition = position; @@ -1466,14 +1455,11 @@ void Render::emitConsumerStopped() } } - - void Render::exportFileToFirewire(QString /*srcFileName*/, int /*port*/, GenTime /*startTime*/, GenTime /*endTime*/) { KMessageBox::sorry(0, i18n("Firewire is not enabled on your system.\n Please install Libiec61883 and recompile Kdenlive")); } - void Render::exportCurrentFrame(KUrl url, bool /*notify*/) { if (!m_mltProducer) { @@ -1513,8 +1499,9 @@ void Render::showFrame(Mlt::Frame& frame) } #endif -/** MLT PLAYLIST DIRECT MANIPULATON **/ - +/* + * MLT playlist direct manipulation. + */ void Render::mltCheckLength(Mlt::Tractor *tractor) { diff --git a/src/renderer.h b/src/renderer.h index cca79926..3036d08f 100644 --- a/src/renderer.h +++ b/src/renderer.h @@ -15,6 +15,17 @@ * * ***************************************************************************/ +/** + * @class Render + * @author Jason Wood + * @brief Client side of the interface to a renderer. + * + * From Kdenlive's point of view, you treat the Render object as the renderer, + * and simply use it as if it was local. Calls are asynchronous - you send a + * call out, and then receive the return value through the relevant signal that + * get's emitted once the call completes. + */ + #ifndef RENDERER_H #define RENDERER_H @@ -33,15 +44,6 @@ #include "videoglwidget.h" #endif - -/**Render encapsulates the client side of the interface to a renderer. -From Kdenlive's point of view, you treat the Render object as the -renderer, and simply use it as if it was local. Calls are asyncrhonous - -you send a call out, and then receive the return value through the -relevant signal that get's emitted once the call completes. - *@author Jason Wood - */ - class Render; class QTimer; @@ -61,7 +63,6 @@ class Profile; class Service; }; - class MltErrorEvent : public QEvent { public: @@ -74,7 +75,6 @@ private: QString m_message; }; - class Render: public QObject { Q_OBJECT public: @@ -86,7 +86,7 @@ Q_OBJECT public: Render(const QString & rendererName, int winid, int extid, QString profile = QString(), QWidget *parent = 0); ~Render(); - /** Seeks the renderer clip to the given time. */ + /** @brief Seeks the renderer clip to the given time. */ void seek(GenTime time); void seekToFrame(int pos); void seekToFrameDiff(int diff); @@ -95,82 +95,96 @@ Q_OBJECT public: //static QPixmap getVideoThumbnail(char *profile, QString file, int frame, int width, int height); QPixmap getImageThumbnail(KUrl url, int width, int height); - /** Return thumbnail for color clip */ - //void getImage(int id, QString color, QPoint size); + /* Return thumbnail for color clip + void getImage(int id, QString color, QPoint size);*/ // static QPixmap frameThumbnail(Mlt::Frame *frame, int width, int height, bool border = false); - /** Return thumbnail for image clip */ - //void getImage(KUrl url, QPoint size); + /* Return thumbnail for image clip + void getImage(KUrl url, QPoint size);*/ - /** Requests a particular frame from the given file. + /* Requests a particular frame from the given file. * * The pixmap will be returned by emitting the replyGetImage() signal. - * */ - //void getImage(KUrl url, int frame, QPoint size); - + void getImage(KUrl url, int frame, QPoint size);*/ - /** Wraps the VEML command of the same name. Sets the current scene list to - be list. */ int setSceneList(QDomDocument list, int position = 0); + + /** @brief Sets the current scene list. + * @param list new scene list + * @param position (optional) time to seek to + * @return 0 when it has success, different from 0 otherwise + * + * Creates the producer from the MLT XML QDomDocument. Wraps the VEML + * command of the same name. */ int setSceneList(QString playlist, int position = 0); int setProducer(Mlt::Producer *producer, int position); const QString sceneList(); 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 - playback. e.g. 1.0 is normal speed, 0.0 is paused, -1.0 means play - backwards. Does not specify start/stop times for playback.*/ + /** @brief Tells the renderer to play the scene at the specified speed, + * @param speed speed to play the scene to + * + * The speed is relative to normal playback, e.g. 1.0 is normal speed, 0.0 + * is paused, -1.0 means play backwards. It does not specify start/stop + * times for playback. Wraps the VEML command of the same name. */ void play(double speed); void switchPlay(); void pause(); - /** stop playing */ + + /** @brief Stops playing. + * @param startTime time to seek to */ void stop(const GenTime & startTime); void setVolume(double volume); QImage extractFrame(int frame_position, int width = -1, int height = -1); - /** Wraps the VEML command of the same name. Tells the renderer to - play the current scene at the speed specified, relative to normal - playback. e.g. 1.0 is normal speed, 0.0 is paused, -1.0 means play - backwards. Specifes the start/stop times for playback.*/ + + /** @brief Plays the scene starting from a specific time. + * @param startTime time to start playing the scene from + * + * Wraps the VEML command of the same name. */ void play(const GenTime & startTime); void playZone(const GenTime & startTime, const GenTime & stopTime); void loopZone(const GenTime & startTime, const GenTime & stopTime); void saveZone(KUrl url, QString desc, QPoint zone); - /** Returns the name of the renderer. */ + /** @brief Returns the name of the renderer. */ const QString & rendererName() const; - /** Returns the speed at which the renderer is currently playing, 0.0 if the renderer is - not playing anything. */ + /** @brief Returns the speed at which the renderer is currently playing. + * + * It returns 0.0 when the renderer is not playing anything. */ double playSpeed(); - /** Returns the current seek position of the renderer. */ + + /** @brief Returns the current seek position of the renderer. */ GenTime seekPosition() const; int seekFramePosition() const; void emitFrameNumber(double position); void emitConsumerStopped(); - /** Gives the aspect ratio of the consumer */ + /** @brief Returns the aspect ratio of the consumer. */ double consumerRatio() const; void doRefresh(); - /** Save current producer frame as image */ + /** @brief Saves current producer frame as an image. */ void exportCurrentFrame(KUrl url, bool notify); - /** Turn on or off on screen display */ + /** @brief Turns on or off on screen display. */ void refreshDisplay(); int resetProfile(const QString profileName); double fps() const; int renderWidth() const; int renderHeight() const; - /** get display aspect ratio */ + + /** @brief Returns display aspect ratio. */ double dar() const; - /** Playlist manipulation */ + /* + * Playlist manipulation. + */ Mlt::Producer *checkSlowMotionProducer(Mlt::Producer *prod, QDomElement element); int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod, bool overwrite = false, bool push = false); bool mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod); @@ -184,17 +198,26 @@ Q_OBJECT public: 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 */ + + /** @brief Deletes an effect from 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 */ + + /** @brief Adds 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 */ + + /** @brief Edits an effect parameters in MLT's playlist. */ bool mltEditEffect(int track, GenTime position, EffectsParameterList params); - /** This only updates the "kdenlive_ix" (index) value of an effect */ + + /** @brief 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 */ + + /** @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); - /** This changes the state of a track, enabling / disabling audio and video */ + + /** @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); @@ -211,11 +234,14 @@ Q_OBJECT public: void mltPlantTransition(Mlt::Field *field, Mlt::Transition &tr, int a_track, int b_track); Mlt::Producer *invalidProducer(const QString &id); - /** 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 */ + /** @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 percentile. 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 producersList(); @@ -227,8 +253,12 @@ Q_OBJECT public: #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... */ +private: + + /** @brief The name of this renderer. + * + * Useful to identify the renderers by what they do - e.g. background + * rendering, workspace monitor, etc. */ QString m_name; Mlt::Consumer * m_mltConsumer; Mlt::Producer * m_mltProducer; @@ -236,13 +266,16 @@ private: // Private attributes & methods double m_framePosition; double m_fps; - /** true if we are playing a zone (ie the in and out properties have been temporarily changed) */ + /** @brief True if we are playing a zone. + * + * It's determined by the "in" and "out" properties being temporarily + * changed. */ bool m_isZoneMode; bool m_isLoopMode; GenTime m_loopStart; int m_originalOut; - /** true when monitor is in split view (several tracks at the same time) */ + /** @brief True when the monitor is in split view. */ bool m_isSplitView; Mlt::Producer *m_blackClip; @@ -250,14 +283,12 @@ private: // Private attributes & methods QTimer *m_osdTimer; - /** A human-readable description of this renderer. */ + /** @brief A human-readable description of this renderer. */ int m_winid; #ifdef Q_WS_MAC VideoGLWidget *m_glWidget; #endif - - /** Sets the description of this renderer to desc. */ void closeMlt(); void mltCheckLength(Mlt::Tractor *tractor); void mltPasteEffects(Mlt::Producer *source, Mlt::Producer *dest); @@ -267,52 +298,66 @@ private: // Private attributes & methods void resetZoneMode(); void fillSlowMotionProducers(); -private slots: // Private slots - /** refresh monitor display */ +private slots: + + /** @brief Refreshes the monitor display. */ void refresh(); void slotOsdTimeout(); int connectPlaylist(); //void initSceneList(); -signals: // Signals - /** emitted when the renderer recieves a reply to a getFileProperties request. */ +signals: + + /** @brief The renderer received a reply to a getFileProperties request. */ void replyGetFileProperties(const QString &clipId, Mlt::Producer*, const QMap < QString, QString > &, const QMap < QString, QString > &, bool); - /** emitted when the renderer recieves a reply to a getImage request. */ + /** @brief The renderer received a reply to a getImage request. */ void replyGetImage(const QString &, const QPixmap &); - /** Emitted when the renderer stops, either playing or rendering. */ + /** @brief The renderer stopped, either playing or rendering. */ void stopped(); - /** Emitted when the renderer starts playing. */ + + /** @brief The renderer started playing. */ void playing(double); - /** Emitted when the renderer is rendering. */ + + /** @brief The renderer started rendering. */ void rendering(const GenTime &); - /** Emitted when rendering has finished */ + + /** @brief The rendering has finished. */ void renderFinished(); - /** Emitted when the current seek position has been changed by the renderer. */ -// void positionChanged(const GenTime &); - /** Emitted when an error occurs within this renderer. */ + + /* @brief The current seek position has been changed by the renderer. + void positionChanged(const GenTime &);*/ + + /** @brief An error occurred within this renderer. */ void error(const QString &, const QString &); void durationChanged(int); void rendererPosition(int); void rendererStopped(int); void removeInvalidClip(const QString &, bool replaceProducer); void refreshDocumentProducers(); - /** Used on OS X - emitted when a frame's image is to be shown. */ + + /** @brief A frame's image has to be shown. + * + * Used in Mac OS X. */ void showImageSignal(QImage); -public slots: // Public slots - /** Start Consumer */ +public slots: + + /** @brief Starts the consumer. */ void start(); - /** Stop Consumer */ + + /** @brief Stops the consumer. */ void stop(); int getLength(); - /** If the file is readable by mlt, return true, otherwise false */ + + /** @brief Checks if the file is readable by MLT. */ bool isValid(KUrl url); - /** 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(). */ + /** @brief Requests the file properties for the specified URL. + * + * Upon return, the result will be emitted via replyGetFileProperties(). + * Wraps the VEML command of the same name. */ void getFileProperties(const QDomElement xml, const QString &clipId, int imageHeight, bool replaceProducer = true); void exportFileToFirewire(QString srcFileName, int port, GenTime startTime, GenTime endTime); -- 2.39.2