]> git.sesse.net Git - kdenlive/blobdiff - src/recmonitor.h
i18n: HTML tags don't need to be translated, excluded.
[kdenlive] / src / recmonitor.h
index 20bba7b36b707b6dd69b8f0034d813e5cdf19ba8..ba44c3059de15981075f74b0f2f81b3c9b828828 100644 (file)
 #include <KIcon>
 #include <KAction>
 #include <KRestrictedLine>
+#include <KDateTime>
 
 #include "ui_recmonitor_ui.h"
 #include "smallruler.h"
+#include "regiongrabber.h"
 
 class RecMonitor : public QWidget {
     Q_OBJECT
 
 public:
     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);
@@ -48,23 +53,44 @@ private:
     Ui::RecMonitor_UI ui;
     QString m_tmpFolder;
     QString m_name;
-
+    RegionGrabber *rgnGrab;
     bool m_isActive;
-
+    KDateTime m_captureTime;
 
     KUrl m_captureFile;
+    KIcon m_playIcon;
+    KIcon m_pauseIcon;
 
     QProcess *captureProcess;
     QProcess *displayProcess;
     QTimer *m_initTimer;
     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();
 
 public slots:
     void refreshRecMonitor(bool visible);
@@ -77,6 +103,7 @@ signals:
     void renderPosition(int);
     void durationChanged(int);
     void addProjectClip(KUrl);
+    void showConfigDialog(int, int);
 };
 
 #endif