]> git.sesse.net Git - kdenlive/blob - src/monitormanager.cpp
Improve clip monitor
[kdenlive] / src / monitormanager.cpp
1 #include <QObject>
2 #include <QTimer>
3
4 #include "monitormanager.h"
5
6 MonitorManager::MonitorManager(QWidget *parent)
7     : QObject(parent)
8 {
9
10
11 }
12
13 void MonitorManager::setTimecode(Timecode tc)
14 {
15   m_timecode = tc;
16 }
17
18 Timecode MonitorManager::timecode()
19 {
20   return m_timecode;
21 }
22
23 void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor)
24 {
25   m_clipMonitor = clipMonitor;
26   m_projectMonitor = projectMonitor;
27   QTimer::singleShot(750, this, SLOT(initClipMonitor()));
28 }
29
30 void MonitorManager::initClipMonitor()
31 {
32   m_clipMonitor->initMonitor();
33   QTimer::singleShot(1500, this, SLOT(initProjectMonitor()));
34 }
35
36 void MonitorManager::initProjectMonitor()
37 {
38   m_clipMonitor->stop();
39   m_projectMonitor->initMonitor();
40   activateMonitor("project");
41   emit connectMonitors();
42 }
43
44 void MonitorManager::activateMonitor(QString name)
45 {
46   if (m_activeMonitor == name) return;
47   if (name == "clip") {
48     m_projectMonitor->stop();
49     m_clipMonitor->start();
50     emit raiseClipMonitor(true);
51   }
52   else {
53     m_clipMonitor->stop();
54     m_projectMonitor->start();
55     m_projectMonitor->raise();
56     emit raiseClipMonitor(false);
57   }
58   m_activeMonitor = name;
59 }
60
61 #include "monitormanager.moc"