widgets/monitorscenecontrolwidget_ui.ui
widgets/cornerswidget_ui.ui
widgets/audiospectrum_ui.ui
+ widgets/spectrogram_ui.ui
)
set(kdenlive_SRCS
abstractscopewidget.cpp
audioscopes/abstractaudioscopewidget.cpp
audioscopes/audiospectrum.cpp
+ audioscopes/spectrogram.cpp
audioscopes/ffttools.cpp
rebuildgroupcommand.cpp
colorscopes/abstractgfxscopewidget.cpp
--- /dev/null
+/***************************************************************************
+ * Copyright (C) 2010 by Simon Andreas Eugster (simon.eu@gmail.com) *
+ * This file is part of kdenlive. See www.kdenlive.org. *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#include "spectrogram.h"
+
+Spectrogram::Spectrogram(QWidget *parent) :
+ AbstractAudioScopeWidget(false, parent)
+{
+ ui = new Ui::Spectrogram_UI;
+ ui->setupUi(this);
+ AbstractScopeWidget::init();
+}
+
+Spectrogram::~Spectrogram()
+{
+ writeConfig();
+}
+
+void Spectrogram::readConfig()
+{
+ AbstractScopeWidget::readConfig();
+}
+void Spectrogram::writeConfig() {}
+
+QString Spectrogram::widgetName() const { return QString("Spectrogram"); }
+
+QRect Spectrogram::scopeRect() { return AbstractScopeWidget::rect(); }
+
+QImage Spectrogram::renderHUD(uint) { return QImage(); }
+QImage Spectrogram::renderAudioScope(uint accelerationFactor, const QVector<int16_t> audioFrame, const int freq, const int num_channels, const int num_samples) {
+ return QImage();
+}
+QImage Spectrogram::renderBackground(uint) { return QImage(); }
+
+bool Spectrogram::isHUDDependingOnInput() const { return false; }
+bool Spectrogram::isScopeDependingOnInput() const { return false; }
+bool Spectrogram::isBackgroundDependingOnInput() const { return false; }
--- /dev/null
+/***************************************************************************
+ * Copyright (C) 2010 by Simon Andreas Eugster (simon.eu@gmail.com) *
+ * This file is part of kdenlive. See www.kdenlive.org. *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+#ifndef SPECTROGRAM_H
+#define SPECTROGRAM_H
+
+#include <QtCore>
+
+#include "abstractaudioscopewidget.h"
+#include "ui_spectrogram_ui.h"
+
+class Spectrogram_UI;
+class Spectrogram : public AbstractAudioScopeWidget {
+ Q_OBJECT
+
+public:
+ Spectrogram(QWidget *parent = 0);
+ ~Spectrogram();
+
+ QString widgetName() const;
+
+protected:
+ ///// Implemented methods /////
+ QRect scopeRect();
+ QImage renderHUD(uint accelerationFactor);
+ QImage renderAudioScope(uint accelerationFactor, const QVector<int16_t> audioFrame, const int freq, const int num_channels, const int num_samples);
+ QImage renderBackground(uint accelerationFactor);
+ bool isHUDDependingOnInput() const;
+ bool isScopeDependingOnInput() const;
+ bool isBackgroundDependingOnInput() const;
+ virtual void readConfig();
+ void writeConfig();
+
+private:
+ Ui::Spectrogram_UI *ui;
+};
+
+#endif // SPECTROGRAM_H
#include "colorscopes/rgbparade.h"
#include "colorscopes/histogram.h"
#include "audiospectrum.h"
+#include "spectrogram.h"
#include <KApplication>
#include <KAction>
m_audioSpectrumDock->setWidget(m_audioSpectrum);
addDockWidget(Qt::TopDockWidgetArea, m_audioSpectrumDock);
+ m_spectrogram = new Spectrogram();
+ m_spectrogramDock = new QDockWidget(i18n("Spectrogram"), this);
+ m_spectrogramDock->setObjectName(m_spectrogram->widgetName());
+ m_spectrogramDock->setWidget(m_spectrogram);
+ addDockWidget(Qt::TopDockWidgetArea, m_spectrogramDock);
+
// Connect the audio signal to the audio scope slots
bool b = true;
if (m_projectMonitor) {
m_audioSpectrum, SLOT(slotReceiveAudio(QVector<int16_t>, int, int, int)));
b &= connect(m_projectMonitor->render, SIGNAL(audioSamplesSignal(const QVector<int16_t>&, const int&, const int&, const int&)),
m_audiosignal, SLOT(slotReceiveAudio(const QVector<int16_t>&, const int&, const int&, const int&)));
+ b &= connect(m_projectMonitor->render, SIGNAL(audioSamplesSignal(QVector<int16_t>,int,int,int)),
+ m_spectrogram, SLOT(slotReceiveAudio(QVector<int16_t>,int,int,int)));
}
if (m_clipMonitor) {
qDebug() << "clip monitor connected";
m_audioSpectrum, SLOT(slotReceiveAudio(QVector<int16_t>, int, int, int)));
b &= connect(m_clipMonitor->render, SIGNAL(audioSamplesSignal(const QVector<int16_t>&, int, int, int)),
m_audiosignal, SLOT(slotReceiveAudio(const QVector<int16_t>&, int, int, int)));
+ b &= connect(m_clipMonitor->render, SIGNAL(audioSamplesSignal(QVector<int16_t>,int,int,int)),
+ m_spectrogram, SLOT(slotReceiveAudio(QVector<int16_t>,int,int,int)));
}
- // Ensure connection was set up correctly
+ // Ensure connections were set up correctly
Q_ASSERT(b);
m_undoViewDock = new QDockWidget(i18n("Undo History"), this);
class KActionCollection;
class AudioSignal;
class AudioSpectrum;
+class Spectrogram;
class MainWindow : public KXmlGuiWindow
{
QDockWidget *m_audioSpectrumDock;
AudioSpectrum *m_audioSpectrum;
+ QDockWidget *m_spectrogramDock;
+ Spectrogram *m_spectrogram;
+
QDockWidget *m_undoViewDock;
QUndoView *m_undoView;
QUndoGroup *m_commandStack;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Spectrogram_UI</class>
+ <widget class="QWidget" name="Spectrogram_UI">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>