mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-28 18:58:48 -05:00
AM demod channel mode: fixed some frequency display inconsistencies
This commit is contained in:
parent
003a04ed70
commit
ee51ffd705
@ -200,11 +200,13 @@ void AMDemodGUI::on_frequencyMode_currentIndexChanged(int index)
|
|||||||
{
|
{
|
||||||
m_settings.m_frequencyMode = (AMDemodSettings::FrequencyMode) index;
|
m_settings.m_frequencyMode = (AMDemodSettings::FrequencyMode) index;
|
||||||
ui->deltaFrequency->blockSignals(true);
|
ui->deltaFrequency->blockSignals(true);
|
||||||
|
|
||||||
if (m_settings.m_frequencyMode == AMDemodSettings::Offset)
|
if (m_settings.m_frequencyMode == AMDemodSettings::Offset)
|
||||||
{
|
{
|
||||||
ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999);
|
ui->deltaFrequency->setValueRange(false, 7, -9999999, 9999999);
|
||||||
ui->deltaFrequency->setValue(m_settings.m_inputFrequencyOffset);
|
ui->deltaFrequency->setValue(m_settings.m_inputFrequencyOffset);
|
||||||
ui->deltaUnits->setText("Hz");
|
ui->deltaUnits->setText("Hz");
|
||||||
|
|
||||||
if (m_settings.m_snap)
|
if (m_settings.m_snap)
|
||||||
{
|
{
|
||||||
m_settings.m_snap = false;
|
m_settings.m_snap = false;
|
||||||
@ -229,10 +231,14 @@ void AMDemodGUI::on_frequencyMode_currentIndexChanged(int index)
|
|||||||
ui->deltaFrequency->setValue(freqToChannel(m_settings.m_frequency) / 1000);
|
ui->deltaFrequency->setValue(freqToChannel(m_settings.m_frequency) / 1000);
|
||||||
ui->deltaUnits->setText("MHz");
|
ui->deltaUnits->setText("MHz");
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->deltaFrequency->blockSignals(false);
|
ui->deltaFrequency->blockSignals(false);
|
||||||
|
|
||||||
if (m_settings.m_snap) {
|
if (m_settings.m_snap) {
|
||||||
applySnap();
|
applySnap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateAbsoluteCenterFrequency();
|
||||||
applySettings();
|
applySettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,11 +262,14 @@ void AMDemodGUI::calcOffset()
|
|||||||
void AMDemodGUI::channelMarkerChangedByCursor()
|
void AMDemodGUI::channelMarkerChangedByCursor()
|
||||||
{
|
{
|
||||||
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency();
|
||||||
|
|
||||||
if (m_settings.m_snap) {
|
if (m_settings.m_snap) {
|
||||||
applySnap();
|
applySnap();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_settings.m_frequency = m_deviceCenterFrequency + m_settings.m_inputFrequencyOffset;
|
m_settings.m_frequency = m_deviceCenterFrequency + m_settings.m_inputFrequencyOffset;
|
||||||
int value = 0;
|
int value = 0;
|
||||||
|
|
||||||
if (m_settings.m_frequencyMode == AMDemodSettings::Offset) {
|
if (m_settings.m_frequencyMode == AMDemodSettings::Offset) {
|
||||||
value = m_settings.m_inputFrequencyOffset;
|
value = m_settings.m_inputFrequencyOffset;
|
||||||
} else if (m_settings.m_frequencyMode == AMDemodSettings::MediumWave) {
|
} else if (m_settings.m_frequencyMode == AMDemodSettings::MediumWave) {
|
||||||
@ -653,9 +662,32 @@ void AMDemodGUI::snapClicked()
|
|||||||
} else {
|
} else {
|
||||||
m_settings.m_snap = !m_settings.m_snap;
|
m_settings.m_snap = !m_settings.m_snap;
|
||||||
}
|
}
|
||||||
if (m_settings.m_snap) {
|
|
||||||
|
if (m_settings.m_snap)
|
||||||
|
{
|
||||||
applySnap();
|
applySnap();
|
||||||
|
|
||||||
|
qint64 value;
|
||||||
|
|
||||||
|
if (m_settings.m_frequencyMode == AMDemodSettings::Offset) {
|
||||||
|
value = m_settings.m_inputFrequencyOffset;
|
||||||
|
} else if (m_settings.m_frequencyMode == AMDemodSettings::MediumWave) {
|
||||||
|
value = m_settings.m_frequency / 1000;
|
||||||
|
} else if (m_settings.m_frequencyMode == AMDemodSettings::Airband25k) {
|
||||||
|
value = m_settings.m_frequency / 1000;
|
||||||
|
} else if (m_settings.m_frequencyMode == AMDemodSettings::Airband8K) {
|
||||||
|
value = freqToChannel(m_settings.m_frequency) / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We support finer tuning by marker than by deltaFrequency widget (unless in offset mode),
|
||||||
|
// so block signals so it doesn't truncate frequency to limit of widget
|
||||||
|
ui->deltaFrequency->blockSignals(true);
|
||||||
|
ui->deltaFrequency->setValue(value);
|
||||||
|
ui->deltaFrequency->blockSignals(false);
|
||||||
|
|
||||||
|
updateAbsoluteCenterFrequency();
|
||||||
|
}
|
||||||
|
|
||||||
displaySnap();
|
displaySnap();
|
||||||
applySettings();
|
applySettings();
|
||||||
}
|
}
|
||||||
@ -667,6 +699,7 @@ void AMDemodGUI::applySnap()
|
|||||||
}
|
}
|
||||||
|
|
||||||
qint64 frequency = m_deviceCenterFrequency + m_settings.m_inputFrequencyOffset;
|
qint64 frequency = m_deviceCenterFrequency + m_settings.m_inputFrequencyOffset;
|
||||||
|
|
||||||
if (m_settings.m_frequencyMode == AMDemodSettings::MediumWave)
|
if (m_settings.m_frequencyMode == AMDemodSettings::MediumWave)
|
||||||
{
|
{
|
||||||
frequency = (frequency / 1000) * 1000;
|
frequency = (frequency / 1000) * 1000;
|
||||||
@ -677,9 +710,11 @@ void AMDemodGUI::applySnap()
|
|||||||
}
|
}
|
||||||
else if (m_settings.m_frequencyMode == AMDemodSettings::Airband8K)
|
else if (m_settings.m_frequencyMode == AMDemodSettings::Airband8K)
|
||||||
{
|
{
|
||||||
frequency = std::round((frequency / 8333) * 8333.3);
|
frequency = std::round((frequency / 8333) * 8333.33333333);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_settings.m_inputFrequencyOffset = frequency - m_deviceCenterFrequency;
|
m_settings.m_inputFrequencyOffset = frequency - m_deviceCenterFrequency;
|
||||||
|
m_settings.m_frequency = frequency;
|
||||||
m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset);
|
m_channelMarker.setCenterFrequency(m_settings.m_inputFrequencyOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user