master
Hannes Matuschek 12 years ago
parent ae7e888f70
commit 5a7303035c

@ -113,7 +113,7 @@ WaterFallView::_onSpectrumUpdated() {
// Draw new spectrum
for (size_t i=0; i<_N; i++) {
int idx = (_spectrum->fftSize()/2+i) % _spectrum->fftSize();
int idx = (_N/2+i) % _N;
double value = 10*log10(_spectrum->spectrum()[idx])-10*log10(_N);
if (value != value) { value = 0; }
painter.setPen((*_colorMap)(value));
@ -144,12 +144,12 @@ void
WaterFallView::paintEvent(QPaintEvent *evt) {
QPainter painter(this);
painter.save();
painter.setRenderHints(QPainter::SmoothPixmapTransform);
// Draw transformed pixmap
painter.setRenderHints(QPainter::SmoothPixmapTransform|QPainter::Antialiasing);
// Assemble trafo
QTransform trafo;
switch (_dir) {
case BOTTOM_UP:
trafo *= trafo.scale(this->width()/qreal(_N), this->height()/qreal(_M));
trafo.scale(qreal(this->width())/_N, qreal(this->height())/_M);
break;
case LEFT_RIGHT:
trafo.scale(this->width()/qreal(_M), this->height()/qreal(_N));
@ -168,8 +168,14 @@ WaterFallView::paintEvent(QPaintEvent *evt) {
break;
}
painter.setTransform(trafo);
painter.drawPixmap(0,0, _waterfall);
QRect exposedRect = painter.matrix().inverted()
.mapRect(evt->rect())
.adjusted(-1, -1, 1, 1);
qDebug() << "Draw " << QRect(0,0,_N,_M) << " at "
<< painter.matrix().mapRect(QRect(0,0,_N,_M));
// the adjust is to account for half pixels along edges
painter.drawPixmap(exposedRect, _waterfall, exposedRect);
//painter.drawPixmap(0,0, _waterfall);
painter.restore();
}

Loading…
Cancel
Save