]> git.sesse.net Git - kdenlive/blobdiff - src/monitormanager.h
Do not uselessly switch monitors at startup
[kdenlive] / src / monitormanager.h
index e8f5aa779afcfab4e0827d4e3dfcd3762104ceef..9369c5ace6bceeede8cc26929a24b8c8cab1853d 100644 (file)
 #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 setTimecode(Timecode tc);
-    void resetProfiles(QString prof);
-    void switchMonitors();
+    void resetProfiles(Timecode tc);
+    void stopActiveMonitor();
+    AbstractRender *activeRenderer();
+    void updateScopeSource();
+    void clearScopeSource();
 
 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 slotRewind();
-    void slotForward();
+    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;
+    QList <AbstractMonitor *>m_monitorsList;
 
 signals:
-    void raiseClipMonitor(bool);
+    /** @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();
 
 };