1 /***************************************************************************
2 * Copyright (C) 2010 by Simon Andreas Eugster (simon.eu@gmail.com) *
3 * This file is part of kdenlive. See www.kdenlive.org. *
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 ***************************************************************************/
17 #include "waveformgenerator.h"
20 Waveform::Waveform(Monitor *projMonitor, Monitor *clipMonitor, QWidget *parent) :
21 AbstractScopeWidget(projMonitor, clipMonitor, parent),
22 initialDimensionUpdateDone(false)
24 ui = new Ui::Waveform_UI();
27 ui->paintMode->addItem(i18n("Yellow"), QVariant(WaveformGenerator::PaintMode_Yellow));
28 ui->paintMode->addItem(i18n("Green"), QVariant(WaveformGenerator::PaintMode_Green));
32 b &= connect(ui->paintMode, SIGNAL(currentIndexChanged(int)), this, SLOT(forceUpdateScope()));
37 m_waveformGenerator = new WaveformGenerator();
44 delete m_waveformGenerator;
47 void Waveform::readConfig()
49 AbstractScopeWidget::readConfig();
51 KSharedConfigPtr config = KGlobal::config();
52 KConfigGroup scopeConfig(config, configName());
53 ui->paintMode->setCurrentIndex(scopeConfig.readEntry("paintmode", 0));
56 void Waveform::writeConfig()
58 KSharedConfigPtr config = KGlobal::config();
59 KConfigGroup scopeConfig(config, configName());
60 scopeConfig.writeEntry("paintmode", ui->paintMode->currentIndex());
65 QRect Waveform::scopeRect()
67 // Distance from top/left/right
70 QPoint topleft(offset, ui->verticalSpacer->geometry().y()+offset);
72 return QRect(topleft, this->size() - QSize(offset+topleft.x(), offset+topleft.y()));
76 ///// Implemented methods /////
78 QString Waveform::widgetName() const { return QString("Waveform"); }
79 bool Waveform::isHUDDependingOnInput() const { return false; }
80 bool Waveform::isScopeDependingOnInput() const { return true; }
81 bool Waveform::isBackgroundDependingOnInput() const { return false; }
83 QImage Waveform::renderHUD(uint)
85 emit signalHUDRenderingFinished(0, 1);
89 QImage Waveform::renderScope(uint accelFactor, QImage qimage)
91 QTime start = QTime::currentTime();
94 int paintmode = ui->paintMode->itemData(ui->paintMode->currentIndex()).toInt();
95 QImage wave = m_waveformGenerator->calculateWaveform(scopeRect().size(), qimage, (WaveformGenerator::PaintMode) paintmode,
98 emit signalScopeRenderingFinished(start.elapsed(), 1);
102 QImage Waveform::renderBackground(uint)
104 emit signalBackgroundRenderingFinished(0, 1);