1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-29 03:09:14 -05:00

Audio CAT SISO: fixed GLSpectrumView SSB

This commit is contained in:
f4exb 2023-06-18 00:43:26 +02:00
parent 246303cd46
commit 65bf00a573

View File

@ -2706,17 +2706,17 @@ void GLSpectrumView::applyChanges()
if (m_sampleRate > 0) if (m_sampleRate > 0)
{ {
float scaleDiv = ((float)m_sampleRate / (float)m_timingRate) * (m_ssbSpectrum ? 2 : 1); float timeScaleDiv = ((float)m_sampleRate / (float)m_timingRate) * (m_ssbSpectrum ? 2 : 1);
float halfFFTSize = m_fftSize / 2; float halfFFTSize = m_fftSize / 2;
if (halfFFTSize > m_fftOverlap) { if (halfFFTSize > m_fftOverlap) {
scaleDiv *= halfFFTSize / (halfFFTSize - m_fftOverlap); timeScaleDiv *= halfFFTSize / (halfFFTSize - m_fftOverlap);
} }
if (!m_invertedWaterfall) { if (!m_invertedWaterfall) {
m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, (m_waterfallHeight * m_fftSize) / scaleDiv, 0); m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, (m_waterfallHeight * m_fftSize) / timeScaleDiv, 0);
} else { } else {
m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, 0, (m_waterfallHeight * m_fftSize) / scaleDiv); m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, 0, (m_waterfallHeight * m_fftSize) / timeScaleDiv);
} }
} }
else else
@ -2800,17 +2800,17 @@ void GLSpectrumView::applyChanges()
if (m_sampleRate > 0) if (m_sampleRate > 0)
{ {
float scaleDiv = ((float)m_sampleRate / (float)m_timingRate) * (m_ssbSpectrum ? 2 : 1); float timeScaleDiv = ((float)m_sampleRate / (float)m_timingRate) * (m_ssbSpectrum ? 2 : 1);
float halfFFTSize = m_fftSize / 2; float halfFFTSize = m_fftSize / 2;
if (halfFFTSize > m_fftOverlap) { if (halfFFTSize > m_fftOverlap) {
scaleDiv *= halfFFTSize / (halfFFTSize - m_fftOverlap); timeScaleDiv *= halfFFTSize / (halfFFTSize - m_fftOverlap);
} }
if (!m_invertedWaterfall) { if (!m_invertedWaterfall) {
m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, (m_waterfallHeight * m_fftSize) / scaleDiv, 0); m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, (m_waterfallHeight * m_fftSize) / timeScaleDiv, 0);
} else { } else {
m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, 0, (m_waterfallHeight * m_fftSize) / scaleDiv); m_timeScale.setRange(m_timingRate > 1 ? Unit::TimeHMS : Unit::Time, 0, (m_waterfallHeight * m_fftSize) / timeScaleDiv);
} }
} }
else else
@ -2990,16 +2990,7 @@ void GLSpectrumView::applyChanges()
// channel overlays // channel overlays
int64_t centerFrequency; int64_t centerFrequency;
int frequencySpan; int frequencySpan;
if (m_frequencyZoomFactor == 1.0f)
{
centerFrequency = m_centerFrequency;
frequencySpan = m_sampleRate;
}
else
{
getFrequencyZoom(centerFrequency, frequencySpan); getFrequencyZoom(centerFrequency, frequencySpan);
}
for (int i = 0; i < m_channelMarkerStates.size(); ++i) for (int i = 0; i < m_channelMarkerStates.size(); ++i)
{ {
@ -4518,10 +4509,12 @@ void GLSpectrumView::setPowerScale(int height)
void GLSpectrumView::getFrequencyZoom(int64_t& centerFrequency, int& frequencySpan) void GLSpectrumView::getFrequencyZoom(int64_t& centerFrequency, int& frequencySpan)
{ {
int adjSampleRate = m_ssbSpectrum ? m_sampleRate/2 : m_sampleRate;
qint64 adjCenterFrequency = m_centerFrequency + (m_ssbSpectrum ? m_sampleRate/4 : 0);
frequencySpan = (m_frequencyZoomFactor == 1) ? frequencySpan = (m_frequencyZoomFactor == 1) ?
m_sampleRate : m_sampleRate * (1.0 / m_frequencyZoomFactor); adjSampleRate : adjSampleRate * (1.0 / m_frequencyZoomFactor);
centerFrequency = (m_frequencyZoomFactor == 1) ? centerFrequency = (m_frequencyZoomFactor == 1) ?
m_centerFrequency : (m_frequencyZoomPos - 0.5) * m_sampleRate + m_centerFrequency; adjCenterFrequency : (m_frequencyZoomPos - 0.5) * adjSampleRate + adjCenterFrequency;
} }
// void GLSpectrumView::updateFFTLimits() // void GLSpectrumView::updateFFTLimits()