Added an IF Shift-like control for radios with Twin PBF.

merge-requests/7/head
Elliott Liggett 2021-11-05 11:52:20 -07:00
rodzic cecaee397d
commit a9fb81d8f6
4 zmienionych plików z 28 dodań i 6 usunięć

Wyświetl plik

@ -22,7 +22,20 @@ transceiverAdjustments::~transceiverAdjustments()
void transceiverAdjustments::on_IFShiftSlider_valueChanged(int value)
{
emit setIFShift(value);
if(rigCaps.hasIFShift)
{
emit setIFShift(value);
} else {
unsigned char inner = ui->TPBFInnerSlider->value();
unsigned char outer = ui->TPBFOuterSlider->value();
int shift = value - previousIFShift;
inner = MAX( 0, MIN(255,int (inner + shift)) );
outer = MAX( 0, MIN(255,int (outer + shift)) );
ui->TPBFInnerSlider->setValue(inner);
ui->TPBFOuterSlider->setValue(outer);
previousIFShift = value;
}
}
void transceiverAdjustments::on_TPBFInnerSlider_valueChanged(int value)
@ -38,8 +51,10 @@ void transceiverAdjustments::on_TPBFOuterSlider_valueChanged(int value)
void transceiverAdjustments::setRig(rigCapabilities rig)
{
this->rigCaps = rig;
ui->IFShiftSlider->setVisible(rigCaps.hasIFShift);
ui->IFShiftLabel->setVisible(rigCaps.hasIFShift);
if(!rigCaps.hasIFShift)
updateIFShift(128);
//ui->IFShiftSlider->setVisible(rigCaps.hasIFShift);
//ui->IFShiftLabel->setVisible(rigCaps.hasIFShift);
ui->TPBFInnerSlider->setVisible(rigCaps.hasTBPF);
ui->TPBFInnerLabel->setVisible(rigCaps.hasTBPF);

Wyświetl plik

@ -1,6 +1,8 @@
#ifndef TRANSCEIVERADJUSTMENTS_H
#define TRANSCEIVERADJUSTMENTS_H
#include <sys/param.h>
#include <QWidget>
#include "rigidentities.h"
@ -40,6 +42,7 @@ private:
Ui::transceiverAdjustments *ui;
rigCapabilities rigCaps;
bool haveRigCaps = false;
int previousIFShift = 128;
};
#endif // TRANSCEIVERADJUSTMENTS_H

Wyświetl plik

@ -197,6 +197,9 @@
<layout class="QVBoxLayout" name="IFShiftVertLayout">
<item>
<widget class="QSlider" name="IFShiftSlider">
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>

Wyświetl plik

@ -4393,15 +4393,16 @@ void wfmain::on_sqlSlider_valueChanged(int value)
// These three are from the transceiver adjustment window:
void wfmain::changeIFShift(unsigned char level)
{
issueCmd(cmdSetIFShift, level);
//issueCmd(cmdSetIFShift, level);
issueCmdUniquePriority(cmdSetIFShift, level);
}
void wfmain::changeTPBFInner(unsigned char level)
{
issueCmd(cmdSetTPBFInner, level);
issueCmdUniquePriority(cmdSetTPBFInner, level);
}
void wfmain::changeTPBFOuter(unsigned char level)
{
issueCmd(cmdSetTPBFOuter, level);
issueCmdUniquePriority(cmdSetTPBFOuter, level);
}
void wfmain::on_modeFilterCombo_activated(int index)