***************************************************************************/
#include "audiosignal.h"
+#include "kdenlivesettings.h"
+
+#include <KLocale>
#include <QVBoxLayout>
#include <QLabel>
+#include <QAction>
#include <QPainter>
#include <QDebug>
#include <QList>
col << Qt::yellow << Qt::yellow << Qt::yellow << Qt::yellow << Qt::yellow ;
col << Qt::darkYellow << Qt::darkYellow << Qt::darkYellow;
col << Qt::red << Qt::red;
+ setContextMenuPolicy(Qt::ActionsContextMenu);
+ QAction *showSignal = new QAction(i18n("Monitor audio signal"), this);
+ showSignal->setCheckable(true);
+ showSignal->setChecked(KdenliveSettings::monitor_audio());
+ connect(showSignal, SIGNAL(toggled(bool)), this, SLOT(slotSwitchAudioMonitoring(bool)));
+ addAction(showSignal);
}
}
p.end();
}
+
+void AudioSignal::slotSwitchAudioMonitoring(bool isOn)
+{
+ KdenliveSettings::setMonitor_audio(isOn);
+ emit updateAudioMonitoring();
+}
+
#include "audiosignal.moc"
m_audiosignalDock->setObjectName("audiosignal");
m_audiosignalDock->setWidget(m_audiosignal);
addDockWidget(Qt::TopDockWidgetArea, m_audiosignalDock);
+ connect(m_audiosignal, SIGNAL(updateAudioMonitoring()), m_monitorManager, SLOT(slotUpdateAudioMonitoring()));
if (m_projectMonitor) {
connect(m_projectMonitor->render, SIGNAL(showAudioSignal(const QByteArray&)), m_audiosignal, SLOT(showAudio(const QByteArray&)));
}
#include <cstdarg>
-
static void kdenlive_callback(void* /*ptr*/, int level, const char* fmt, va_list vl)
{
if (level > MLT_LOG_ERROR) return;
if (self->sendFrameForAnalysis && frame_ptr->convert_image) {
self->emitFrameUpdated(frame);
}
- self->showAudio(frame);
+ if (self->analyseAudio) self->showAudio(frame);
if (frame.get_double("_speed") == 0.0) {
self->emitConsumerStopped();
} else if (frame.get_double("_speed") < 0.0 && mlt_frame_get_position(frame_ptr) <= 0) {
QObject(parent),
m_isBlocked(0),
sendFrameForAnalysis(false),
+ analyseAudio(KdenliveSettings::monitor_audio()),
m_name(rendererName),
m_mltConsumer(NULL),
m_mltProducer(NULL),
metadataPropertyMap[ name.section('.', 0, -2)] = value;
}
producer->seek(0);
- kDebug() << "REquested fuile info for: " << url.path();
emit replyGetFileProperties(clipId, producer, filePropertyMap, metadataPropertyMap, replaceProducer);
// FIXME: should delete this to avoid a leak...
//delete producer;
void Render::switchPlay()
{
- kDebug() << "// SWITCH PLAY";
if (!m_mltProducer || !m_mltConsumer)
return;
if (m_isZoneMode) resetZoneMode();
if (m_mltProducer->get_speed() == 0.0) {
m_isBlocked = false;
- kDebug() << "// SWITCH PLAY, set spped to 1";
if (m_name == "clip" && m_framePosition == (int) m_mltProducer->get_out()) m_mltProducer->seek(0);
m_mltProducer->set_speed(1.0);
m_mltConsumer->set("refresh", 1);
} else {
m_isBlocked = true;
m_mltConsumer->set("refresh", 0);
- kDebug() << "// SWITCH PLAY, set spped to 0";
m_mltProducer->set_speed(0.0);
//emit rendererPosition(m_framePosition);
m_mltProducer->seek(m_framePosition);
QImage qimage(width, height, QImage::Format_ARGB32_Premultiplied);
memcpy(qimage.scanLine(0), image, width * height * 4);
emit showImageSignal(qimage);
- showAudio(frame);
+ if (analyseAudio) showAudio(frame);
if (sendFrameForAnalysis && frame.get_frame()->convert_image) {
emit frameUpdated(qimage.rgbSwapped());
}