kopia lustrzana https://gitlab.com/eliggett/wfview
More meters!
rodzic
06642dcd5e
commit
81a82fc467
12
prefs.h
12
prefs.h
|
@ -25,11 +25,12 @@ enum prefIfItem {
|
|||
if_confirmExit = 1 << 12,
|
||||
if_confirmPowerOff = 1 << 13,
|
||||
if_meter2Type = 1 << 14,
|
||||
if_clickDragTuningEnable = 1 << 15,
|
||||
if_currentColorPresetNumber = 1 << 16,
|
||||
if_rigCreatorEnable = 1 << 17,
|
||||
if_frequencyUnits = 1 << 18,
|
||||
if_all = 1 << 19
|
||||
if_meter3Type = 1 << 15,
|
||||
if_clickDragTuningEnable = 1 << 16,
|
||||
if_currentColorPresetNumber = 1 << 17,
|
||||
if_rigCreatorEnable = 1 << 18,
|
||||
if_frequencyUnits = 1 << 19,
|
||||
if_all = 1 << 20
|
||||
};
|
||||
|
||||
enum prefColItem {
|
||||
|
@ -178,6 +179,7 @@ struct preferences {
|
|||
bool confirmExit;
|
||||
bool confirmPowerOff;
|
||||
meter_t meter2Type;
|
||||
meter_t meter3Type;
|
||||
bool clickDragTuningEnable;
|
||||
int currentColorPresetNumber = 0;
|
||||
bool rigCreatorEnable = false;
|
||||
|
|
|
@ -81,6 +81,20 @@ void settingswidget::populateComboBoxes()
|
|||
ui->meter2selectionCombo->show();
|
||||
ui->meter2selectionCombo->blockSignals(false);
|
||||
|
||||
ui->meter3selectionCombo->blockSignals(true);
|
||||
ui->meter3selectionCombo->addItem("None", meterNone);
|
||||
ui->meter3selectionCombo->addItem("SWR", meterSWR);
|
||||
ui->meter3selectionCombo->addItem("ALC", meterALC);
|
||||
ui->meter3selectionCombo->addItem("Compression", meterComp);
|
||||
ui->meter3selectionCombo->addItem("Voltage", meterVoltage);
|
||||
ui->meter3selectionCombo->addItem("Current", meterCurrent);
|
||||
ui->meter3selectionCombo->addItem("Center", meterCenter);
|
||||
ui->meter3selectionCombo->addItem("TxRxAudio", meterAudio);
|
||||
ui->meter3selectionCombo->addItem("RxAudio", meterRxAudio);
|
||||
ui->meter3selectionCombo->addItem("TxAudio", meterTxMod);
|
||||
ui->meter3selectionCombo->show();
|
||||
ui->meter3selectionCombo->blockSignals(false);
|
||||
|
||||
ui->secondaryMeterSelectionLabel->show();
|
||||
|
||||
ui->audioRXCodecCombo->blockSignals(true);
|
||||
|
@ -414,6 +428,14 @@ void settingswidget::updateIfPref(prefIfItem pif)
|
|||
ui->meter2selectionCombo->blockSignals(false);
|
||||
break;
|
||||
}
|
||||
case if_meter3Type:
|
||||
{
|
||||
ui->meter3selectionCombo->blockSignals(true);
|
||||
int m = ui->meter3selectionCombo->findData(prefs->meter3Type);
|
||||
ui->meter3selectionCombo->setCurrentIndex(m);
|
||||
ui->meter3selectionCombo->blockSignals(false);
|
||||
break;
|
||||
}
|
||||
case if_clickDragTuningEnable:
|
||||
quietlyUpdateCheckbox(ui->clickDragTuningEnableChk, prefs->clickDragTuningEnable);
|
||||
break;
|
||||
|
@ -1492,6 +1514,12 @@ void settingswidget::on_meter2selectionCombo_currentIndexChanged(int index)
|
|||
emit changedIfPref(if_meter2Type);
|
||||
}
|
||||
|
||||
void settingswidget::on_meter3selectionCombo_currentIndexChanged(int index)
|
||||
{
|
||||
prefs->meter3Type = static_cast<meter_t>(ui->meter3selectionCombo->itemData(index).toInt());
|
||||
emit changedIfPref(if_meter3Type);
|
||||
}
|
||||
|
||||
void settingswidget::on_tuningFloorZerosChk_clicked(bool checked)
|
||||
{
|
||||
prefs->niceTS = checked;
|
||||
|
@ -2646,3 +2674,4 @@ void settingswidget::connectionStatus(bool conn)
|
|||
ui->serverTXAudioOutputCombo->setEnabled(!conn);
|
||||
ui->audioSystemServerCombo->setEnabled(!conn);
|
||||
}
|
||||
|
||||
|
|
|
@ -236,6 +236,8 @@ private slots:
|
|||
|
||||
void serverAddUserLine(int row,const QString& user="", const QString& pass="", const int& type=0);
|
||||
|
||||
void on_meter3selectionCombo_currentIndexChanged(int index);
|
||||
|
||||
private:
|
||||
Ui::settingswidget *ui;
|
||||
void createSettingsListItems();
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<item>
|
||||
<widget class="QStackedWidget" name="settingsStack">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="radioAccess">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||
|
@ -1052,13 +1052,16 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
|
|||
<item>
|
||||
<widget class="QLabel" name="secondaryMeterSelectionLabel">
|
||||
<property name="text">
|
||||
<string>Secondary Meter Selection:</string>
|
||||
<string>Additional Meter Selection:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="meter2selectionCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="meter3selectionCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="autoPollBtn">
|
||||
<property name="toolTip">
|
||||
|
@ -1276,8 +1279,8 @@ ONLY use Manual CI-V when Transceive mode is not supported</string>
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>925</width>
|
||||
<height>330</height>
|
||||
<width>916</width>
|
||||
<height>309</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
|
|
85
wfmain.cpp
85
wfmain.cpp
|
@ -729,6 +729,7 @@ void wfmain::receiveNetworkAudioLevels(networkAudioLevels l)
|
|||
void wfmain::setupMainUI()
|
||||
{
|
||||
ui->meter2Widget->hide();
|
||||
ui->meter3Widget->hide();
|
||||
|
||||
// Future ideas:
|
||||
//ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod);
|
||||
|
@ -1519,6 +1520,8 @@ void wfmain::setDefPrefs()
|
|||
defPrefs.confirmExit = true;
|
||||
defPrefs.confirmPowerOff = true;
|
||||
defPrefs.meter2Type = meterNone;
|
||||
defPrefs.meter3Type = meterNone;
|
||||
|
||||
defPrefs.tcpPort = 0;
|
||||
defPrefs.tciPort = 50001;
|
||||
defPrefs.waterfallFormat = 0;
|
||||
|
@ -1589,6 +1592,8 @@ void wfmain::loadSettings()
|
|||
prefs.confirmExit = settings->value("ConfirmExit", defPrefs.confirmExit).toBool();
|
||||
prefs.confirmPowerOff = settings->value("ConfirmPowerOff", defPrefs.confirmPowerOff).toBool();
|
||||
prefs.meter2Type = static_cast<meter_t>(settings->value("Meter2Type", defPrefs.meter2Type).toInt());
|
||||
prefs.meter3Type = static_cast<meter_t>(settings->value("Meter3Type", defPrefs.meter3Type).toInt());
|
||||
|
||||
prefs.clickDragTuningEnable = settings->value("ClickDragTuning", false).toBool();
|
||||
|
||||
prefs.rigCreatorEnable = settings->value("RigCreator",false).toBool();
|
||||
|
@ -2292,7 +2297,10 @@ void wfmain::extChangedIfPref(prefIfItem i)
|
|||
// Not in settings widget
|
||||
break;
|
||||
case if_meter2Type:
|
||||
changeMeter2Type(prefs.meter2Type);
|
||||
changeMeterType(prefs.meter2Type, 2);
|
||||
break;
|
||||
case if_meter3Type:
|
||||
changeMeterType(prefs.meter3Type, 3);
|
||||
break;
|
||||
case if_clickDragTuningEnable:
|
||||
// There's nothing to do here since the code
|
||||
|
@ -2357,6 +2365,7 @@ void wfmain::extChangedColPref(prefColItem i)
|
|||
case col_meterText:
|
||||
ui->meterSPoWidget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
ui->meter2Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
ui->meter3Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
break;
|
||||
default:
|
||||
qWarning(logSystem()) << "Cannot update wfmain col pref" << (int)i;
|
||||
|
@ -2748,6 +2757,7 @@ void wfmain::saveSettings()
|
|||
settings->setValue("ConfirmExit", prefs.confirmExit);
|
||||
settings->setValue("ConfirmPowerOff", prefs.confirmPowerOff);
|
||||
settings->setValue("Meter2Type", (int)prefs.meter2Type);
|
||||
settings->setValue("Meter3Type", (int)prefs.meter3Type);
|
||||
settings->setValue("ClickDragTuning", prefs.clickDragTuningEnable);
|
||||
settings->setValue("RigCreator",prefs.rigCreatorEnable);
|
||||
settings->setValue("FrequencyUnits",prefs.frequencyUnits);
|
||||
|
@ -3897,7 +3907,8 @@ void wfmain::receiveRigID(rigCapabilities rigCaps)
|
|||
}
|
||||
|
||||
// Set the second meter here as I suspect we need to be connected for it to work?
|
||||
changeMeter2Type(prefs.meter2Type);
|
||||
changeMeterType(prefs.meter2Type, 2);
|
||||
changeMeterType(prefs.meter3Type, 3);
|
||||
// for (int i = 0; i < ui->meter2selectionCombo->count(); i++)
|
||||
// {
|
||||
// if (static_cast<meter_t>(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type)
|
||||
|
@ -3963,6 +3974,17 @@ void wfmain::initPeriodicCommands()
|
|||
queue->add(priorityMediumLow,funcToneSquelchType,true,false);
|
||||
|
||||
queue->add(priorityHighest,queueItem(funcSMeter,true));
|
||||
meter* marray[2];
|
||||
marray[0] = ui->meter2Widget;
|
||||
marray[1] = ui->meter3Widget;
|
||||
for(int m=0; m < 2; m++) {
|
||||
funcs meterCmd = meter_tToMeterCommand(marray[m]->getMeterType());
|
||||
if(meterCmd != funcNone) {
|
||||
qDebug() << "Adding meter command per current UI meters.";
|
||||
queue->add(priorityHighest,queueItem(meterCmd,true));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void wfmain::receivePTTstatus(bool pttOn)
|
||||
|
@ -4578,9 +4600,10 @@ void wfmain::receiveTuningStep(unsigned char step)
|
|||
|
||||
void wfmain::receiveMeter(meter_t inMeter, unsigned char level)
|
||||
{
|
||||
|
||||
switch(inMeter)
|
||||
{
|
||||
// These first two meters, S and Power,
|
||||
// are automatically assigned to the primary meter.
|
||||
case meterS:
|
||||
ui->meterSPoWidget->setMeterType(meterS);
|
||||
ui->meterSPoWidget->setLevel(level);
|
||||
|
@ -4592,17 +4615,23 @@ void wfmain::receiveMeter(meter_t inMeter, unsigned char level)
|
|||
ui->meterSPoWidget->update();
|
||||
break;
|
||||
default:
|
||||
if(ui->meter2Widget->getMeterType() == inMeter)
|
||||
{
|
||||
// The incoming meter data matches the UI meter
|
||||
ui->meter2Widget->setLevel(level);
|
||||
} else if ( (ui->meter2Widget->getMeterType() == meterAudio) &&
|
||||
(inMeter == meterTxMod) && amTransmitting) {
|
||||
ui->meter2Widget->setLevel(level);
|
||||
} else if ( (ui->meter2Widget->getMeterType() == meterAudio) &&
|
||||
(inMeter == meterRxAudio) && !amTransmitting) {
|
||||
ui->meter2Widget->setLevel(level);
|
||||
meter* marray[2];
|
||||
marray[0] = ui->meter2Widget;
|
||||
marray[1] = ui->meter3Widget;
|
||||
for(int m=0; m < 2; m++) {
|
||||
if(marray[m]->getMeterType() == inMeter)
|
||||
{
|
||||
// The incoming meter data matches the UI meter
|
||||
marray[m]->setLevel(level);
|
||||
} else if ( (marray[m]->getMeterType() == meterAudio) &&
|
||||
(inMeter == meterTxMod) && amTransmitting) {
|
||||
marray[m]->setLevel(level);
|
||||
} else if ( (marray[m]->getMeterType() == meterAudio) &&
|
||||
(inMeter == meterRxAudio) && !amTransmitting) {
|
||||
marray[m]->setLevel(level);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -4946,15 +4975,26 @@ funcs wfmain::meter_tToMeterCommand(meter_t m)
|
|||
}
|
||||
|
||||
|
||||
void wfmain::changeMeter2Type(meter_t m)
|
||||
void wfmain::changeMeterType(meter_t m, int meterNum)
|
||||
{
|
||||
qDebug() << "Changing meter type.";
|
||||
meter_t newMeterType;
|
||||
meter_t oldMeterType;
|
||||
newMeterType = m;
|
||||
oldMeterType = ui->meter2Widget->getMeterType();
|
||||
|
||||
if(newMeterType == oldMeterType)
|
||||
meter* uiMeter = NULL;
|
||||
if(meterNum == 2) {
|
||||
uiMeter = ui->meter2Widget;
|
||||
} else if (meterNum == 3) {
|
||||
uiMeter = ui->meter3Widget;
|
||||
} else {
|
||||
qCritical() << "Error, invalid meter requested: meterNum ==" << meterNum;
|
||||
return;
|
||||
}
|
||||
newMeterType = m;
|
||||
oldMeterType = uiMeter->getMeterType();
|
||||
|
||||
if(newMeterType == oldMeterType) {
|
||||
qDebug() << "Debug note: the old meter was the same as the new meter.";
|
||||
}
|
||||
|
||||
funcs newCmd = meter_tToMeterCommand(newMeterType);
|
||||
funcs oldCmd = meter_tToMeterCommand(oldMeterType);
|
||||
|
@ -4966,11 +5006,11 @@ void wfmain::changeMeter2Type(meter_t m)
|
|||
|
||||
if(newMeterType==meterNone)
|
||||
{
|
||||
ui->meter2Widget->hide();
|
||||
ui->meter2Widget->setMeterType(newMeterType);
|
||||
uiMeter->hide();
|
||||
uiMeter->setMeterType(newMeterType);
|
||||
} else {
|
||||
ui->meter2Widget->show();
|
||||
ui->meter2Widget->setMeterType(newMeterType);
|
||||
uiMeter->show();
|
||||
uiMeter->setMeterType(newMeterType);
|
||||
if((newMeterType!=meterRxAudio) && (newMeterType!=meterTxMod) && (newMeterType!=meterAudio))
|
||||
queue->add(priorityHighest,queueItem(newCmd,true));
|
||||
}
|
||||
|
@ -5059,6 +5099,7 @@ void wfmain::useColorPreset(colorPrefsType *cp)
|
|||
//qInfo(logSystem()) << "Setting plots to color preset number " << cp->presetNum << ", with name " << *(cp->presetName);
|
||||
ui->meterSPoWidget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
ui->meter2Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
ui->meter3Widget->setColors(cp->meterLevel, cp->meterPeakScale, cp->meterPeakLevel, cp->meterAverage, cp->meterLowerLine, cp->meterLowText);
|
||||
foreach(auto vfo, vfos) {
|
||||
vfo->colorPreset(cp);
|
||||
}
|
||||
|
|
2
wfmain.h
2
wfmain.h
|
@ -469,7 +469,7 @@ private slots:
|
|||
void on_ritTuneDial_valueChanged(int value);
|
||||
void on_ritEnableChk_clicked(bool checked);
|
||||
|
||||
void changeMeter2Type(meter_t m);
|
||||
void changeMeterType(meter_t m, int meterNum);
|
||||
void enableRigCtl(bool enabled);
|
||||
|
||||
void on_memoriesBtn_clicked();
|
||||
|
|
16
wfmain.ui
16
wfmain.ui
|
@ -117,6 +117,22 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="meter" name="meter3Widget" native="true">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>60</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
|
Ładowanie…
Reference in New Issue