]> git.sesse.net Git - kdenlive/blobdiff - src/recmonitor.h
Revert "Drop support for KDE 4.3."
[kdenlive] / src / recmonitor.h
index 79befd52336e2ba931917ddc05068c8e0602bdfc..fe1d90fb2fb0bd3611ebcc83fcabbf232ae7b574 100644 (file)
@@ -26,7 +26,7 @@
 #ifndef RECMONITOR_H
 #define RECMONITOR_H
 
-#include "blackmagic/capture.h"
+#include "abstractmonitor.h"
 #include "ui_recmonitor_ui.h"
 
 #include <QToolBar>
 #include <kcapacitybar.h>
 #endif
 
-class RecMonitor : public QWidget, public Ui::RecMonitor_UI
+class MonitorManager;
+class MltDeviceCapture;
+class AbstractRender;
+
+class RecMonitor : public AbstractMonitor, public Ui::RecMonitor_UI
 {
     Q_OBJECT
 
 public:
-    explicit RecMonitor(QString name, QWidget *parent = 0);
+    explicit RecMonitor(QString name, MonitorManager *manager, QWidget *parent = 0);
     virtual ~RecMonitor();
 
-    QString name() const;
-
+    const QString name() const;
+    AbstractRender *abstractRender();
+    void analyseFrames(bool analyse);
     enum CAPTUREDEVICE {FIREWIRE = 0, VIDEO4LINUX = 1, SCREENGRAB = 2, BLACKMAGIC = 3};
 
 protected:
@@ -62,7 +67,6 @@ protected:
 
 private:
     QString m_name;
-    bool m_isActive;
     KDateTime m_captureTime;
     /** @brief Provide feedback about dvgrab operations */
     QLabel m_dvinfo;
@@ -95,17 +99,19 @@ private:
     QAction *m_rewAction;
     QAction *m_stopAction;
     QAction *m_discAction;
+
+    MonitorManager *m_manager;
+    MltDeviceCapture *m_captureDevice;
+    VideoPreviewContainer *m_videoBox;
+    bool m_analyse;
     void checkDeviceAvailability();
-    QPixmap mergeSideBySide(const QPixmap& pix, const QString txt);
+    QPixmap mergeSideBySide(const QPixmap& pix, const QString &txt);
     void manageCapturedFiles();
-    CaptureHandler *m_bmCapture;
-    /** @brief Indicates whether we are currently capturing from BLACKMAGIC. */
-    bool m_blackmagicCapturing;
-    void createBlackmagicDevice();
+    /** @brief Build MLT producer for device, using path as profile. */
+    void buildMltDevice(const QString &path);
 
 private slots:
-    void slotStartCapture(bool play = true);
-    void slotStopCapture();
+    void slotStartPreview(bool play = true);
     void slotRecord();
     void slotProcessStatus(QProcess::ProcessState status);
     void slotVideoDeviceChanged(int ix);
@@ -116,21 +122,24 @@ private slots:
     void slotConfigure();
     void slotReadDvgrabInfo();
     void slotUpdateFreeSpace();
-    void slotGotBlackmagicFrameNumber(ulong ix);
-    void slotGotBlackmagicMessage(const QString &message);
+    void slotSetInfoMessage(const QString &message);
+    void slotDroppedFrames(int dropped);
+    /** @brief Change setting for preview while recording. */
+    void slotChangeRecordingPreview(int ix);
 
 public slots:
     void refreshRecMonitor(bool visible);
+    void slotPlay();
     void stop();
     void start();
-    void activateRecMonitor();
-    void slotPlay();
-    void slotUpdateCaptureFolder(const QString currentProjectFolder);
+    void slotStopCapture();
+    void slotUpdateCaptureFolder(const QString &currentProjectFolder);
 
 signals:
     void renderPosition(int);
     void durationChanged(int);
     void addProjectClip(KUrl);
+    void addProjectClipList(KUrl::List);
     void showConfigDialog(int, int);
 };