]> git.sesse.net Git - kdenlive/blob - src/audioscopes/audiospectrum.cpp
Audio scope: Signals and slots not working
[kdenlive] / src / audioscopes / audiospectrum.cpp
1 #include "audiospectrum.h"
2 #include "tools/kiss_fftr.h"
3
4 AudioSpectrum::AudioSpectrum(Monitor *projMonitor, Monitor *clipMonitor, QWidget *parent) :
5         AbstractAudioScopeWidget(projMonitor, clipMonitor, true, parent)
6 {
7     init();
8     m_cfg = kiss_fftr_alloc(512, 0,0,0);
9 }
10 AudioSpectrum::~AudioSpectrum()
11 {
12     free(m_cfg);
13 }
14
15 QString AudioSpectrum::widgetName() const { return QString("audiospectrum"); }
16
17 bool AudioSpectrum::isBackgroundDependingOnInput() const { return false; }
18 bool AudioSpectrum::isScopeDependingOnInput() const { return true; }
19 bool AudioSpectrum::isHUDDependingOnInput() const { return false; }
20
21 QImage AudioSpectrum::renderBackground(uint) { return QImage(); }
22 QImage AudioSpectrum::renderScope(uint accelerationFactor, const QVector<int16_t> audioFrame, const int freq, const int num_channels, const int num_samples)
23 {
24     float data[512];
25     kiss_fft_cpx freqData[512];
26     for (int i = 0; i < 512; i++) {
27         data[i] = (float) audioFrame.data()[i];
28     }
29     kiss_fftr(m_cfg, data, freqData);
30     qDebug() << freqData[0].r << " " << freqData[1].r << " " << freqData[2].r;
31     return QImage();
32 }
33 QImage AudioSpectrum::renderHUD(uint) { return QImage(); }
34
35 QRect AudioSpectrum::scopeRect() {
36     return QRect(0,0,40,40);
37 }
38
39 void AudioSpectrum::readConfig()
40 {
41
42 }