From: Ed R. <ed....@go...> - 2013-04-21 20:32:14
|
Git commit 0d341548a5af9f4d6f3a4eca82a07a0d3ac5b071 by Ed Rogalsky. Committed on 21/04/2013 at 22:31. Pushed by rogalsky into branch 'feature/jack'. disable fast reverse/forward playing if jack transport is enabled M +2 -1 src/abstractmonitor.h M +1 -1 src/mainwindow.cpp M +20 -1 src/monitor.cpp http://commits.kde.org/kdenlive/0d341548a5af9f4d6f3a4eca82a07a0d3ac5b071 diff --git a/src/abstractmonitor.h b/src/abstractmonitor.h index a8c00bf..56c3880 100644 --- a/src/abstractmonitor.h +++ b/src/abstractmonitor.h @@ -66,7 +66,8 @@ namespace Rndr { NoRole = (1<<0), OpenCloseJackEngineRole = (1<<1), - OpenCloseSlaveRole = (1<<2) + OpenCloseSlaveRole = (1<<2), + NoJackVariSpeedRole = (1<<3) }; }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4369774..2dcf9c6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -256,7 +256,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString & m_projectMonitorDock = new QDockWidget(i18n("Project Monitor"), this); m_projectMonitorDock->setObjectName("project_monitor"); - m_projectMonitor = new Monitor(Kdenlive::projectMonitor, m_monitorManager, Rndr::OpenCloseJackEngineRole | Rndr::OpenCloseSlaveRole, QString()); + m_projectMonitor = new Monitor(Kdenlive::projectMonitor, m_monitorManager, Rndr::OpenCloseJackEngineRole | Rndr::OpenCloseSlaveRole | Rndr::NoJackVariSpeedRole, QString()); m_projectMonitorDock->setWidget(m_projectMonitor); #ifndef Q_WS_MAC diff --git a/src/monitor.cpp b/src/monitor.cpp index 8880c60..332710c 100644 --- a/src/monitor.cpp +++ b/src/monitor.cpp @@ -692,6 +692,15 @@ void Monitor::slotZoneEnd() void Monitor::slotRewind(double speed) { +#ifdef USE_JACK + bool jacktransport = KdenliveSettings::jacktransport(); + bool variSpeedNotSupported = render->hasRole(Rndr::NoJackVariSpeedRole); + + /* in jack mode only speed 1 and forward direction is possible */ + if (jacktransport && variSpeedNotSupported) { + return; + } +#endif slotActivateMonitor(); if (speed == 0) { double currentspeed = render->playSpeed(); @@ -716,7 +725,17 @@ void Monitor::slotRewind(double speed) void Monitor::slotForward(double speed) { - slotActivateMonitor(); +#ifdef USE_JACK + bool jacktransport = KdenliveSettings::jacktransport(); + bool variSpeedNotSupported = render->hasRole(Rndr::NoJackVariSpeedRole); + + /* in jack mode only speed 1 and forward direction is possible */ + if (jacktransport && variSpeedNotSupported) { + return; + } +#endif + + slotActivateMonitor(); if (speed == 0) { double currentspeed = render->playSpeed(); if (currentspeed <= 0) render->play(1); |