]> git.sesse.net Git - kdenlive/blobdiff - src/recmonitor.h
Prepare checking of removed / deleted files in a project:
[kdenlive] / src / recmonitor.h
index 20bba7b36b707b6dd69b8f0034d813e5cdf19ba8..f216a1134fa9214ee6a2522fd6491830bf68ebe1 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef RECMONITOR_H
 #define RECMONITOR_H
 
+#include "ui_recmonitor_ui.h"
+
 #include <QToolBar>
 #include <QTimer>
 #include <QProcess>
 #include <KIcon>
 #include <KAction>
 #include <KRestrictedLine>
+#include <KDateTime>
+#include <kdeversion.h>
 
-#include "ui_recmonitor_ui.h"
-#include "smallruler.h"
+#if KDE_IS_VERSION(4,2,0)
+#include <kcapacitybar.h>
+#endif
 
-class RecMonitor : public QWidget {
+class RecMonitor : public QWidget, public Ui::RecMonitor_UI
+{
     Q_OBJECT
 
 public:
-    RecMonitor(QString name, QWidget *parent = 0);
+    explicit RecMonitor(QString name, QWidget *parent = 0);
+    virtual ~RecMonitor();
+
     QString name() const;
 
+    enum CAPTUREDEVICE {FIREWIRE = 0, VIDEO4LINUX = 1, SCREENGRAB = 2};
 
 protected:
     virtual void mousePressEvent(QMouseEvent * event);
 
 private:
-    Ui::RecMonitor_UI ui;
-    QString m_tmpFolder;
     QString m_name;
-
     bool m_isActive;
+    KDateTime m_captureTime;
+    QLabel m_dvinfo;
 
+#if KDE_IS_VERSION(4,2,0)
+    KCapacityBar *m_freeSpace;
+    QTimer m_spaceTimer;
+#endif
 
     KUrl m_captureFile;
+    KIcon m_playIcon;
+    KIcon m_pauseIcon;
 
-    QProcess *captureProcess;
-    QProcess *displayProcess;
-    QTimer *m_initTimer;
+    QProcess *m_captureProcess;
+    QProcess *m_displayProcess;
     bool m_isCapturing;
+    /** did the user capture something ? */
+    bool m_didCapture;
+    bool m_isPlaying;
     QStringList m_captureArgs;
     QStringList m_displayArgs;
+    QAction *m_recAction;
+    QAction *m_playAction;
+    QAction *m_fwdAction;
+    QAction *m_rewAction;
+    QAction *m_stopAction;
+    QAction *m_discAction;
+    void checkDeviceAvailability();
+    QPixmap mergeSideBySide(const QPixmap& pix, const QString txt);
+    void manageCapturedFiles();
 
 private slots:
-    void slotSwitchCapture();
-    void slotCapture();
+    void slotStartCapture(bool play = true);
+    void slotStopCapture();
+    void slotRecord();
     void slotProcessStatus(QProcess::ProcessState status);
+    void slotVideoDeviceChanged(int ix);
+    void slotRewind();
+    void slotForward();
+    void slotDisconnect();
+    //void slotStartGrab(const QRect &rect);
+    void slotConfigure();
+    void slotReadDvgrabInfo();
+    void slotUpdateFreeSpace();
 
 public slots:
     void refreshRecMonitor(bool visible);
@@ -72,11 +106,13 @@ public slots:
     void start();
     void activateRecMonitor();
     void slotPlay();
+    void slotUpdateCaptureFolder();
 
 signals:
     void renderPosition(int);
     void durationChanged(int);
     void addProjectClip(KUrl);
+    void showConfigDialog(int, int);
 };
 
 #endif