showTips->setCheckable(true);
connect(showTips, SIGNAL(toggled(bool)), this, SLOT(slotSwitchMonitorInfo(bool)));
showTips->setChecked(KdenliveSettings::displayMonitorInfo());
+
+ QAction *dropFrames = m_contextMenu->addAction(KIcon(), i18n("Real time (drop frames)"));
+ dropFrames->setCheckable(true);
+ dropFrames->setChecked(true);
+ connect(dropFrames, SIGNAL(toggled(bool)), this, SLOT(slotSwitchDropFrames(bool)));
+
m_configMenu->addAction(showTips);
+ m_configMenu->addAction(dropFrames);
}
m_currentClip->setZone(pos);
}
+void Monitor::slotSwitchDropFrames(bool show)
+{
+ render->setDropFrames(show);
+}
+
void Monitor::slotSwitchMonitorInfo(bool show)
{
KdenliveSettings::setDisplayMonitorInfo(show);
}
}
+
MonitorRefresh::MonitorRefresh(QWidget* parent) : \
QWidget(parent),
m_renderer(NULL)
void slotSeek();
void setClipZone(QPoint pos);
void slotSwitchMonitorInfo(bool show);
+ void slotSwitchDropFrames(bool show);
public slots:
void slotOpenFile(const QString &);
Render::Render(const QString & rendererName, int winid, int /* extid */, QWidget *parent) :
QObject(parent),
- m_isBlocked(1),
+ m_isBlocked(0),
m_name(rendererName),
m_mltConsumer(NULL),
m_mltProducer(NULL),
void Render::askForRefresh()
{
// Use a Timer so that we don't refresh too much
- m_refreshTimer->start(500);
+ m_refreshTimer->start(300);
}
void Render::doRefresh()
}
}
+void Render::setDropFrames(bool show)
+{
+ if (m_mltConsumer) {
+ int dropFrames = 1;
+ if (show == false) dropFrames = 0;
+ m_mltConsumer->stop();
+ m_mltConsumer->set("play.real_time", dropFrames);
+ m_mltConsumer->start();
+ }
+}
+
double Render::playSpeed()
{
if (m_mltProducer) return m_mltProducer->get_speed();
QList <Mlt::Producer *> producersList();
void updatePreviewSettings();
+ void setDropFrames(bool show);
private: // Private attributes & methods
/** The name of this renderer - useful to identify the renderes by what they do - e.g. background rendering, workspace monitor, etc... */