diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp index f5fcd03a7..e33d7ae91 100644 --- a/sdrgui/gui/glspectrum.cpp +++ b/sdrgui/gui/glspectrum.cpp @@ -1964,6 +1964,8 @@ void GLSpectrum::applyChanges() (m_histogramMarkers[i].m_frequency - m_frequencyScale.getRangeMin()) / m_frequencyScale.getRange(); m_histogramMarkers[i].m_point.ry() = (m_powerScale.getRangeMax() - m_histogramMarkers[i].m_power) / m_powerScale.getRange(); + m_histogramMarkers[i].m_fftBin = + (((m_histogramMarkers[i].m_frequency - m_centerFrequency) / (float) m_sampleRate) * m_fftSize) + (m_fftSize / 2); } // Waterfall markers @@ -2147,6 +2149,7 @@ void GLSpectrum::mousePressEvent(QMouseEvent* event) pHis.ry() = (ep.y()/height() - m_histogramRect.top()) / m_histogramRect.height(); float frequency = m_frequencyScale.getRangeMin() + pHis.x()*m_frequencyScale.getRange(); float power = m_powerScale.getRangeMax() - pHis.y()*m_powerScale.getRange(); + int fftBin = (((frequency - m_centerFrequency) / (float) m_sampleRate) * m_fftSize) + (m_fftSize / 2); if ((pHis.x() >= 0) && (pHis.x() <= 1) && (pHis.y() >= 0) && (pHis.y() <= 1)) { @@ -2155,6 +2158,7 @@ void GLSpectrum::mousePressEvent(QMouseEvent* event) m_histogramMarkers.push_back(HistogramMarker()); m_histogramMarkers.back().m_point = pHis; m_histogramMarkers.back().m_frequency = frequency; + m_histogramMarkers.back().m_fftBin = fftBin; m_histogramMarkers.back().m_frequencyStr = displayScaled( frequency, 'f', diff --git a/sdrgui/gui/glspectrum.h b/sdrgui/gui/glspectrum.h index 032ae3843..e54f98cc1 100644 --- a/sdrgui/gui/glspectrum.h +++ b/sdrgui/gui/glspectrum.h @@ -178,6 +178,7 @@ private: struct HistogramMarker { QPointF m_point; float m_frequency; + int m_fftBin; float m_power; QString m_frequencyStr; QString m_powerStr; @@ -186,6 +187,7 @@ private: HistogramMarker() : m_point(0, 0), m_frequency(0), + m_fftBin(0), m_power(0), m_frequencyStr(), m_powerStr(), @@ -195,6 +197,7 @@ private: HistogramMarker( const QPointF& point, float frequency, + int fftBin, float power, const QString& frequencyStr, const QString& powerStr, @@ -203,6 +206,7 @@ private: ) : m_point(point), m_frequency(frequency), + m_fftBin(fftBin), m_power(power), m_frequencyStr(frequencyStr), m_powerStr(powerStr), @@ -212,6 +216,7 @@ private: HistogramMarker(const HistogramMarker& other) : m_point(other.m_point), m_frequency(other.m_frequency), + m_fftBin(other.m_fftBin), m_power(other.m_power), m_frequencyStr(other.m_frequencyStr), m_powerStr(other.m_powerStr),