X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frecmonitor.h;h=3324fb8938d38c2f9637d93b985869c0d128440a;hb=05f4fad9a19434399f43ff76e06d1e1a5f74c0f6;hp=79befd52336e2ba931917ddc05068c8e0602bdfc;hpb=9eb745ca5c187fb788a027e1dac0e11a67958e09;p=kdenlive diff --git a/src/recmonitor.h b/src/recmonitor.h index 79befd52..3324fb89 100644 --- a/src/recmonitor.h +++ b/src/recmonitor.h @@ -26,7 +26,8 @@ #ifndef RECMONITOR_H #define RECMONITOR_H -#include "blackmagic/capture.h" +#include "abstractmonitor.h" +#include "definitions.h" #include "ui_recmonitor_ui.h" #include @@ -40,21 +41,23 @@ #include #include #include - -#if KDE_IS_VERSION(4,2,0) #include -#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 +65,6 @@ protected: private: QString m_name; - bool m_isActive; KDateTime m_captureTime; /** @brief Provide feedback about dvgrab operations */ QLabel m_dvinfo; @@ -72,10 +74,8 @@ private: 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; @@ -95,17 +95,24 @@ private: QAction *m_rewAction; QAction *m_stopAction; QAction *m_discAction; + + MonitorManager *m_manager; + MltDeviceCapture *m_captureDevice; + VideoPreviewContainer *m_videoBox; + QAction *m_addCapturedClip; + QAction *m_previewSettings; + + 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); + /** @brief Create string containing an XML playlist for v4l capture. */ + const QString getV4lXmlPlaylist(MltVideoProfile profile); 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 +123,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(bool enable); 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 ¤tProjectFolder); signals: void renderPosition(int); void durationChanged(int); void addProjectClip(KUrl); + void addProjectClipList(KUrl::List); void showConfigDialog(int, int); };