X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fmonitormanager.cpp;h=738a808445224f9044713f8aeb871cd50a92197b;hb=53e75edc7ee97957c2deb9cff75f31eee2f592e9;hp=923f08ccb609dbdf239bd112dbb95500f648f620;hpb=bf67d14b18cc897935691c96da63a2e978c5ba3a;p=kdenlive diff --git a/src/monitormanager.cpp b/src/monitormanager.cpp index 923f08cc..738a8084 100644 --- a/src/monitormanager.cpp +++ b/src/monitormanager.cpp @@ -19,6 +19,7 @@ #include "monitormanager.h" +#include "renderer.h" #include "kdenlivesettings.h" #include @@ -30,7 +31,8 @@ MonitorManager::MonitorManager(QWidget *parent) : QObject(parent), m_clipMonitor(NULL), - m_projectMonitor(NULL) + m_projectMonitor(NULL), + m_blocked(false) { } @@ -47,7 +49,10 @@ void MonitorManager::initMonitors(Monitor *clipMonitor, Monitor *projectMonitor) void MonitorManager::activateMonitor(QString name) { - if (m_activeMonitor == name) return; + if (m_blocked || m_clipMonitor == NULL || m_projectMonitor == NULL) + return; + if (m_activeMonitor == name) + return; if (name == "clip") { m_projectMonitor->stop(); m_clipMonitor->start(); @@ -55,30 +60,23 @@ void MonitorManager::activateMonitor(QString name) } else { m_clipMonitor->stop(); m_projectMonitor->start(); - m_projectMonitor->raise(); emit raiseClipMonitor(false); } m_activeMonitor = name; + emit checkColorScopes(); } -void MonitorManager::switchMonitors() +void MonitorManager::slotSwitchMonitors(bool activateClip) { - if (m_clipMonitor->isActive()) { - m_clipMonitor->stop(); - m_projectMonitor->start(); - m_projectMonitor->raise(); - m_activeMonitor = m_projectMonitor->name(); - emit raiseClipMonitor(false); - } else { - m_projectMonitor->stop(); - m_clipMonitor->start(); - m_activeMonitor = m_clipMonitor->name(); - emit raiseClipMonitor(true); - } + if (activateClip) + activateMonitor("clip"); + else + activateMonitor("project"); } void MonitorManager::stopActiveMonitor() { + if (m_blocked) return; if (m_clipMonitor->isActive()) m_clipMonitor->pause(); else m_projectMonitor->pause(); } @@ -89,6 +87,11 @@ void MonitorManager::slotPlay() else m_projectMonitor->slotPlay(); } +void MonitorManager::slotPause() +{ + stopActiveMonitor(); +} + void MonitorManager::slotPlayZone() { if (m_clipMonitor->isActive()) m_clipMonitor->slotPlayZone(); @@ -151,18 +154,37 @@ void MonitorManager::slotEnd() void MonitorManager::resetProfiles(Timecode tc) { + if (m_blocked) return; m_timecode = tc; - QTimer::singleShot(300, this, SLOT(slotResetProfiles())); + slotResetProfiles(); + //QTimer::singleShot(300, this, SLOT(slotResetProfiles())); } void MonitorManager::slotResetProfiles() { + if (m_blocked) return; if (m_projectMonitor == NULL || m_clipMonitor == NULL) return; + QString active = m_activeMonitor; activateMonitor("clip"); - m_clipMonitor->resetProfile(); + m_clipMonitor->resetProfile(KdenliveSettings::current_profile()); + m_clipMonitor->updateTimecodeFormat(); activateMonitor("project"); - m_projectMonitor->resetProfile(); + m_projectMonitor->resetProfile(KdenliveSettings::current_profile()); + m_projectMonitor->updateTimecodeFormat(); //m_projectMonitor->refreshMonitor(true); + activateMonitor(active); +} + +void MonitorManager::slotRefreshCurrentMonitor() +{ + if (m_clipMonitor->isActive()) m_clipMonitor->refreshMonitor(); + else m_projectMonitor->refreshMonitor(); +} + +void MonitorManager::slotUpdateAudioMonitoring() +{ + m_clipMonitor->render->analyseAudio = KdenliveSettings::monitor_audio(); + m_projectMonitor->render->analyseAudio = KdenliveSettings::monitor_audio(); } #include "monitormanager.moc"