diff --git a/mainwindow.cpp b/mainwindow.cpp index 0b4d5ae..f6dc151 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -23,7 +23,7 @@ #include "mainwindow.h" #include "util.h" -MainWindow::MainWindow() +MainWindow::MainWindow() : spectrogram(nullptr) { setWindowTitle(tr("inspectrum")); scrollArea.viewport()->installEventFilter(this); diff --git a/plotview.cpp b/plotview.cpp index 1bf0442..b01e2dd 100644 --- a/plotview.cpp +++ b/plotview.cpp @@ -40,6 +40,9 @@ void PlotView::refreshSources() { plots.clear(); + auto sp = new SpectrogramPlot(mainSampleSource); + plots.emplace_back(sp); + gr::top_block_sptr iq_tb = gr::make_top_block("multiply"); auto iq_mem_source = gr::blocks::memory_source::make(8); auto iq_mem_sink = gr::blocks::memory_sink::make(8); diff --git a/spectrogramplot.cpp b/spectrogramplot.cpp index d1fa864..e72aa33 100644 --- a/spectrogramplot.cpp +++ b/spectrogramplot.cpp @@ -29,10 +29,11 @@ #include "util.h" -SpectrogramPlot::SpectrogramPlot() +SpectrogramPlot::SpectrogramPlot(SampleSource> *src) { + inputSource = src; sampleRate = 8000000; - setFFTSize(1024); + setFFTSize(512); zoomLevel = 0; powerMax = 0.0f; powerMin = -50.0f; @@ -66,7 +67,6 @@ void SpectrogramPlot::openFile(QString fileName) pixmapCache.clear(); fftCache.clear(); inputSource = newFile; - setHeight(fftSize); } catch (std::runtime_error e) { // TODO: display error } diff --git a/spectrogramplot.h b/spectrogramplot.h index b6c8b9e..cc11272 100644 --- a/spectrogramplot.h +++ b/spectrogramplot.h @@ -37,7 +37,7 @@ class SpectrogramPlot : public Plot Q_OBJECT public: - SpectrogramPlot(); + SpectrogramPlot(SampleSource> *src); ~SpectrogramPlot(); void paintMid(QPainter &painter, QRect &rect, range_t sampleRange); @@ -48,7 +48,7 @@ public: int getStride(); off_t lineToSample(off_t line); - InputSource *inputSource = nullptr; + SampleSource> *inputSource = nullptr; signals: void cursorFrequencyChanged(QString);