diff --git a/plotview.cpp b/plotview.cpp index 5459637..b2f8da5 100644 --- a/plotview.cpp +++ b/plotview.cpp @@ -133,8 +133,8 @@ void PlotView::setFFTAndZoom(int size, int zoom) spectrogramPlot->setZoomLevel(zoom); // Update horizontal (time) scrollbar - horizontalScrollBar()->setSingleStep(size * 10 / pow(2, zoomLevel)); - horizontalScrollBar()->setPageStep(size * 100 / pow(2, zoomLevel)); + horizontalScrollBar()->setSingleStep(size * 10 / zoomLevel); + horizontalScrollBar()->setPageStep(size * 100 / zoomLevel); updateView(); } @@ -199,7 +199,7 @@ void PlotView::resizeEvent(QResizeEvent * event) off_t PlotView::samplesPerLine() { - return fftSize / (int)pow(2, zoomLevel); + return fftSize / zoomLevel; } void PlotView::scrollContentsBy(int dx, int dy) diff --git a/spectrogramcontrols.cpp b/spectrogramcontrols.cpp index 01d3a83..70cdc9a 100644 --- a/spectrogramcontrols.cpp +++ b/spectrogramcontrols.cpp @@ -117,7 +117,9 @@ void SpectrogramControls::setDefaults() void SpectrogramControls::fftOrZoomChanged(int value) { - emit fftOrZoomChanged((int)pow(2, fftSizeSlider->value()), zoomLevelSlider->value()); + int fftSize = pow(2, fftSizeSlider->value()); + int zoomLevel = pow(2, zoomLevelSlider->value()); + emit fftOrZoomChanged(fftSize, zoomLevel); } void SpectrogramControls::fileOpenButtonClicked() diff --git a/spectrogramplot.cpp b/spectrogramplot.cpp index a05255b..92fdee8 100644 --- a/spectrogramplot.cpp +++ b/spectrogramplot.cpp @@ -162,7 +162,7 @@ void SpectrogramPlot::setPowerMin(int power) void SpectrogramPlot::setZoomLevel(int zoom) { - zoomLevel = clamp(zoom, 0, (int)log2(fftSize)); + zoomLevel = zoom; } int SpectrogramPlot::getHeight() @@ -175,7 +175,7 @@ int SpectrogramPlot::getHeight() int SpectrogramPlot::getStride() { - return fftSize / pow(2, zoomLevel); + return fftSize / zoomLevel; } off_t SpectrogramPlot::lineToSample(off_t line)