X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frecmonitor.h;h=79befd52336e2ba931917ddc05068c8e0602bdfc;hb=5d2a663632df09f4b04acf0aeb0406ea51c8543d;hp=ba44c3059de15981075f74b0f2f81b3c9b828828;hpb=7d58b3e254099385f5d4834eef6dee6bd8d1c424;p=kdenlive diff --git a/src/recmonitor.h b/src/recmonitor.h index ba44c305..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 @@ -30,40 +38,51 @@ #include #include #include +#include +#include -#include "ui_recmonitor_ui.h" -#include "smallruler.h" -#include "regiongrabber.h" +#if KDE_IS_VERSION(4,2,0) +#include +#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}; + enum CAPTUREDEVICE {FIREWIRE = 0, VIDEO4LINUX = 1, SCREENGRAB = 2, BLACKMAGIC = 3}; protected: virtual void mousePressEvent(QMouseEvent * event); private: - Ui::RecMonitor_UI ui; - QString m_tmpFolder; QString m_name; - RegionGrabber *rgnGrab; 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; 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; @@ -79,6 +98,10 @@ private: void checkDeviceAvailability(); 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(); private slots: void slotStartCapture(bool play = true); @@ -91,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); @@ -98,6 +125,7 @@ public slots: void start(); void activateRecMonitor(); void slotPlay(); + void slotUpdateCaptureFolder(const QString currentProjectFolder); signals: void renderPosition(int);