X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitormanager.h;h=30e1864be2c959c9563c163845495fe495d5c82c;hb=290ad96d0c2765f5b1955165a47e07c3e328cae3;hp=f9b8d76d1d831fb51e8f8777bea262b3d8fefd9f;hpb=187158b0450f465536c15cc31499bcc277d2a451;p=kdenlive diff --git a/src/monitormanager.h b/src/monitormanager.h index f9b8d76d..30e1864b 100644 --- a/src/monitormanager.h +++ b/src/monitormanager.h @@ -22,35 +22,70 @@ #define MONITORMANAGER_H #include "monitor.h" +#include "recmonitor.h" #include "timecode.h" -class Monitor; class MonitorManager : public QObject { - Q_OBJECT - - public: - MonitorManager(QWidget *parent=0); + Q_OBJECT - void initMonitors(Monitor *clipMonitor, Monitor *projectMonitor); - void activateMonitor(QString name); +public: + MonitorManager(QWidget *parent = 0); + void initMonitors(Monitor *clipMonitor, Monitor *projectMonitor, RecMonitor *recMonitor); + void appendMonitor(AbstractMonitor *monitor); + void removeMonitor(AbstractMonitor *monitor); Timecode timecode(); - void setTimecode(Timecode tc); + void resetProfiles(Timecode tc); + void stopActiveMonitor(); + AbstractRender *activeRenderer(); + void updateScopeSource(); + void clearScopeSource(); - private: +public slots: + + /** @brief Activates a monitor. + * @param name name of the monitor to activate */ + void activateMonitor(QString name = QString()); + bool isActive(const QString &name) const; + void slotPlay(); + void slotPause(); + void slotPlayZone(); + void slotLoopZone(); + void slotRewind(double speed = 0); + void slotForward(double speed = 0); + void slotRewindOneFrame(); + void slotForwardOneFrame(); + void slotRewindOneSecond(); + void slotForwardOneSecond(); + void slotStart(); + void slotEnd(); + void slotResetProfiles(); + + /** @brief Switches between project and clip monitor. + * @ref activateMonitor + * @param activateClip whether to activate the clip monitor */ + void slotSwitchMonitors(bool activateClip); + void slotUpdateAudioMonitoring(); + +private slots: + void slotRefreshCurrentMonitor(); + +private: Monitor *m_clipMonitor; Monitor *m_projectMonitor; - QString m_activeMonitor; Timecode m_timecode; + AbstractMonitor *m_activeMonitor; + bool m_blocked; + QList m_monitorsList; - private slots: - void initProjectMonitor(); - void initClipMonitor(); - - signals: - void connectMonitors(); - void raiseClipMonitor(bool); +signals: + /** @brief Emitted when the active monitor changes */ + void raiseMonitor(AbstractMonitor *); + /** @brief When the monitor changed, update the visible color scopes */ + void checkColorScopes(); + /** @brief When the active monitor renderer was deleted, reset color scopes */ + void clearScopes(); };