#define MONITORMANAGER_H
#include "monitor.h"
+#include "recmonitor.h"
#include "timecode.h"
-class Monitor;
-class MonitorManager : public QObject {
+class MonitorManager : public QObject
+{
Q_OBJECT
public:
MonitorManager(QWidget *parent = 0);
- void initMonitors(Monitor *clipMonitor, Monitor *projectMonitor);
+ void initMonitors(Monitor *clipMonitor, Monitor *projectMonitor, RecMonitor *recMonitor);
+ void appendMonitor(AbstractMonitor *monitor);
+ void removeMonitor(AbstractMonitor *monitor);
Timecode timecode();
- void switchMonitors();
- bool projectMonitorFocused();
void resetProfiles(Timecode tc);
+ void stopActiveMonitor();
+ AbstractRender *activeRenderer();
+ void updateScopeSource();
public slots:
- void activateMonitor(QString name = QString::null);
+
+ /** @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 <AbstractMonitor *>m_monitorsList;
signals:
- void raiseClipMonitor(bool);
+ /** @brief Emitted when the active monitor changes */
+ void raiseMonitor(AbstractMonitor *);
+ /** @brief When the monitor changed, update the visible color scopes */
+ void checkColorScopes();
};