]> git.sesse.net Git - kdenlive/blob - src/waveform.cpp
* Scopes: Configuration is saved now.
[kdenlive] / src / waveform.cpp
1 /***************************************************************************
2  *   Copyright (C) 2010 by Simon Andreas Eugster (simon.eu@gmail.com)      *
3  *   This file is part of kdenlive. See www.kdenlive.org.                  *
4  *                                                                         *
5  *   This program is free software; you can redistribute it and/or modify  *
6  *   it under the terms of the GNU General Public License as published by  *
7  *   the Free Software Foundation; either version 2 of the License, or     *
8  *   (at your option) any later version.                                   *
9  ***************************************************************************/
10
11 #include <QPainter>
12 #include <QPoint>
13 #include <QDebug>
14
15 #include "renderer.h"
16 #include "waveform.h"
17 #include "waveformgenerator.h"
18
19
20 Waveform::Waveform(Monitor *projMonitor, Monitor *clipMonitor, QWidget *parent) :
21     AbstractScopeWidget(projMonitor, clipMonitor, parent),
22     initialDimensionUpdateDone(false)
23 {
24     ui = new Ui::Waveform_UI();
25     ui->setupUi(this);
26     init();
27
28     m_waveformGenerator = new WaveformGenerator();
29 }
30
31 Waveform::~Waveform()
32 {
33     delete m_waveformGenerator;
34 }
35
36
37
38 QRect Waveform::scopeRect()
39 {
40     // Distance from top/left/right
41     int offset = 6;
42
43     QPoint topleft(offset, ui->verticalSpacer->geometry().y()+offset);
44
45     return QRect(topleft, this->size() - QSize(offset+topleft.x(), offset+topleft.y()));
46 }
47
48
49 ///// Implemented methods /////
50
51 QString Waveform::widgetName() const { return QString("Waveform"); }
52 bool Waveform::isHUDDependingOnInput() const { return false; }
53 bool Waveform::isScopeDependingOnInput() const { return true; }
54 bool Waveform::isBackgroundDependingOnInput() const { return false; }
55
56 QImage Waveform::renderHUD(uint)
57 {
58     emit signalHUDRenderingFinished(0, 1);
59     return QImage();
60 }
61
62 QImage Waveform::renderScope(uint accelFactor, QImage qimage)
63 {
64     QTime start = QTime::currentTime();
65     start.start();
66
67     QImage wave = m_waveformGenerator->calculateWaveform(scopeRect().size(),
68                                                          qimage, true, accelFactor);
69
70     emit signalScopeRenderingFinished(start.elapsed(), 1);
71     return wave;
72 }
73
74 QImage Waveform::renderBackground(uint)
75 {
76     emit signalBackgroundRenderingFinished(0, 1);
77     return QImage();
78 }