]> git.sesse.net Git - kdenlive/blobdiff - src/renderer.h
Fix several DVD wizard monitor issue, might solve:
[kdenlive] / src / renderer.h
index fd237706b28841872d0503a83958362cf3ecbb84..241459a17171cdcf6d3e44dcbc3b79d432eb9e40 100644 (file)
 #include <QList>
 #include <QEvent>
 
+#ifdef Q_WS_MAC
+#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
@@ -77,7 +81,7 @@ Q_OBJECT public:
                       APP_NOEXIST
                     };
 
-    Render(const QString & rendererName, int winid, int extid, QWidget *parent = 0);
+    Render(const QString & rendererName, int winid, int extid, QString profile = QString(), QWidget *parent = 0);
     ~Render();
 
     /** Seeks the renderer clip to the given time. */
@@ -123,7 +127,7 @@ Q_OBJECT public:
     void stop(const GenTime & startTime);
     void setVolume(double volume);
 
-    QPixmap extractFrame(int frame_position, int width = -1, int height = -1);
+    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
@@ -157,7 +161,7 @@ Q_OBJECT public:
 
     /** Turn on or off on screen display */
     void refreshDisplay();
-    int resetProfile();
+    int resetProfile(const QString profileName);
     double fps() const;
     int renderWidth() const;
     int renderHeight() const;
@@ -165,7 +169,7 @@ Q_OBJECT public:
     double dar() const;
 
     /** Playlist manipulation */
-    void mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
+    int mltInsertClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
     void mltUpdateClip(ItemInfo info, QDomElement element, Mlt::Producer *prod);
     void mltCutClip(int track, GenTime position);
     void mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int> trackTransitionStartList, int track, const GenTime duration, const GenTime timeOffset);
@@ -202,9 +206,13 @@ Q_OBJECT public:
     in the ClipManager list and speed is the current speed */
     int mltChangeClipSpeed(ItemInfo info, double speed, double oldspeed, int strobe, Mlt::Producer *prod);
 
-    QList <Mlt::Producer *> producersList();
+    const QList <Mlt::Producer *> producersList();
     void updatePreviewSettings();
     void setDropFrames(bool show);
+    QString updateSceneListFps(double current_fps, double new_fps, QString scene);
+#ifdef Q_WS_MAC
+    void showFrame(Mlt::Frame&);
+#endif
 
 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... */
@@ -232,13 +240,17 @@ private:   // Private attributes & methods
     /** 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();
+    void mltCheckLength(Mlt::Tractor *tractor);
     void mltPasteEffects(Mlt::Producer *source, Mlt::Producer *dest);
     QMap<QString, QString> mltGetTransitionParamsFromXml(QDomElement xml);
     QMap<QString, Mlt::Producer *> m_slowmotionProducers;
-    void buildConsumer();
+    void buildConsumer(const QString profileName);
     void resetZoneMode();
     void fillSlowMotionProducers();
 
@@ -274,6 +286,8 @@ signals:   // Signals
     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);
 
 public slots:  // Public slots
     /** Start Consumer */
@@ -287,7 +301,7 @@ 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, bool replaceProducer = true);
 
     void exportFileToFirewire(QString srcFileName, int port, GenTime startTime, GenTime endTime);
     static char *decodedString(QString str);