X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frecmonitor.h;h=79befd52336e2ba931917ddc05068c8e0602bdfc;hb=548782dfe8b4ec1edc0c15f0062f5a976f1c6ee3;hp=a7159d4c585887ff6abe8f5a60acc80cbae53639;hpb=214311bba3810cb8bebbce7946b85eec378afdbb;p=kdenlive diff --git a/src/recmonitor.h b/src/recmonitor.h index a7159d4c..79befd52 100644 --- a/src/recmonitor.h +++ b/src/recmonitor.h @@ -17,10 +17,18 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ +/** +* @class RecMonitor +* @brief Records video via dvgrab, video4linux and recordmydesktop +* @author Jean-Baptiste Mardelle +*/ #ifndef RECMONITOR_H #define RECMONITOR_H +#include "blackmagic/capture.h" +#include "ui_recmonitor_ui.h" + #include #include #include @@ -31,14 +39,13 @@ #include #include #include +#include #if KDE_IS_VERSION(4,2,0) #include #endif -#include "ui_recmonitor_ui.h" - -class RecMonitor : public QWidget +class RecMonitor : public QWidget, public Ui::RecMonitor_UI { Q_OBJECT @@ -48,19 +55,26 @@ public: QString name() const; - enum CAPTUREDEVICE {FIREWIRE = 0, VIDEO4LINUX = 1, SCREENGRAB = 2}; + enum CAPTUREDEVICE {FIREWIRE = 0, VIDEO4LINUX = 1, SCREENGRAB = 2, BLACKMAGIC = 3}; protected: virtual void mousePressEvent(QMouseEvent * event); private: - Ui::RecMonitor_UI m_ui; QString m_name; bool m_isActive; KDateTime m_captureTime; + /** @brief Provide feedback about dvgrab operations */ + QLabel m_dvinfo; + + /** @brief Keeps a brief (max ten items) history of warning or error messages + * (currently only used for BLACKMAGIC). */ + KComboBox m_logger; + QString m_capturePath; #if KDE_IS_VERSION(4,2,0) KCapacityBar *m_freeSpace; + QTimer m_spaceTimer; #endif KUrl m_captureFile; @@ -84,10 +98,10 @@ private: void checkDeviceAvailability(); QPixmap mergeSideBySide(const QPixmap& pix, const QString txt); void manageCapturedFiles(); - -#if KDE_IS_VERSION(4,2,0) - void updatedFreeSpace(); -#endif + CaptureHandler *m_bmCapture; + /** @brief Indicates whether we are currently capturing from BLACKMAGIC. */ + bool m_blackmagicCapturing; + void createBlackmagicDevice(); private slots: void slotStartCapture(bool play = true); @@ -100,6 +114,10 @@ private slots: void slotDisconnect(); //void slotStartGrab(const QRect &rect); void slotConfigure(); + void slotReadDvgrabInfo(); + void slotUpdateFreeSpace(); + void slotGotBlackmagicFrameNumber(ulong ix); + void slotGotBlackmagicMessage(const QString &message); public slots: void refreshRecMonitor(bool visible); @@ -107,7 +125,7 @@ public slots: void start(); void activateRecMonitor(); void slotPlay(); - void slotUpdateCaptureFolder(); + void slotUpdateCaptureFolder(const QString currentProjectFolder); signals: void renderPosition(int);