Porównaj commity

...

9 Commity

Autor SHA1 Wiadomość Data
Phil Taylor cb28ba02ba Small UI format change 2024-03-25 19:02:17 +00:00
Phil Taylor 11de766bfd Add spacer so lack of scope/vfo doesn't deform other controls. 2024-03-25 17:53:01 +00:00
Phil Taylor 84c576c8a7 Fix linux build error 2024-03-25 15:41:07 +00:00
Phil Taylor 1c057d98c2 Move some logs from info to debug 2024-03-25 15:30:18 +00:00
Phil Taylor f088e5b8f9 Make initial commands immediate to improve initial connection 2024-03-25 13:04:24 +00:00
Phil Taylor f2dc28f298 Abort memory window if no rigCaps 2024-03-25 12:47:15 +00:00
Phil Taylor 235869a501 Move rigCaps to a single pointer across whole app. 2024-03-25 12:42:08 +00:00
Phil Taylor ffeec4925a Stop connectiontimer on cancel button 2024-03-25 10:43:23 +00:00
Phil Taylor ce71260bc5 Various fixes
Log External API versions at start
Log connection failures and try reconnect
2024-03-24 23:17:39 +00:00
27 zmienionych plików z 1019 dodań i 1249 usunięć

Wyświetl plik

@ -48,7 +48,7 @@ bool audioConverter::init(QAudioFormat inFormat, codecType inCodec, QAudioFormat
//opus_encoder_ctl(opusEncoder, OPUS_SET_DTX(1));
//opus_encoder_ctl(opusEncoder, OPUS_SET_PACKET_LOSS_PERC(5));
opus_encoder_ctl(opusEncoder, OPUS_SET_COMPLEXITY(opusComplexity)); // Reduce complexity to maybe lower CPU?
qInfo(logAudioConverter()) << "Creating opus encoder: " << opus_strerror(opus_err);
qInfo(logAudioConverter()) << "Creating opus encoder: " << opus_strerror(opus_err);
}
if (inFormat.sampleRate() != outFormat.sampleRate())

Wyświetl plik

@ -13,6 +13,7 @@ bandbuttons::bandbuttons(QWidget *parent) :
this->setWindowTitle("Band Switcher");
this->setObjectName("bandButtons");
queue = cachingQueue::getInstance(this);
connect(queue, SIGNAL(rigCapsUpdated(rigCapabilities*)), this, SLOT(receiveRigCaps(rigCapabilities*)));
}
bandbuttons::~bandbuttons()
@ -25,26 +26,24 @@ int bandbuttons::getBSRNumber()
return ui->bandStkPopdown->currentIndex()+1;
}
void bandbuttons::acceptRigCaps(rigCapabilities rc)
void bandbuttons::receiveRigCaps(rigCapabilities* rc)
{
this->rigCaps = rc;
qDebug(logGui()) << "Accepting new rigcaps into band buttons.";
if(haveRigCaps)
qDebug(logGui()) << "Accepting additional rigcaps into band buttons.";
qDebug(logGui()) << "Bands in this rigcaps: ";
for(size_t i=0; i < rigCaps.bands.size(); i++)
{
qDebug(logGui()) << "band[" << i << "]: " << (unsigned char)rigCaps.bands.at(i).band;
if (rigCaps != Q_NULLPTR) {
qDebug(logGui()) << "Bands in this rigcaps: ";
for(size_t i=0; i < rigCaps->bands.size(); i++)
{
qDebug(logGui()) << "band[" << i << "]: " << (unsigned char)rigCaps->bands.at(i).band;
}
for(size_t i=0; i < 20; i++)
{
qDebug(logGui()) << "bsr[" << i << "]: " << (unsigned char)rigCaps->bsr[i];
}
}
for(size_t i=0; i < 20; i++)
{
qDebug(logGui()) << "bsr[" << i << "]: " << (unsigned char)rigCaps.bsr[i];
}
setUIToRig();
haveRigCaps = true;
}
void bandbuttons::setUIToRig()
@ -76,82 +75,84 @@ void bandbuttons::setUIToRig()
hideButton(ui->band2200mbtn);
hideButton(ui->bandGenbtn);
for (auto &band: rigCaps.bands)
{
switch(band.band)
if (rigCaps != Q_NULLPTR) {
for (auto &band: rigCaps->bands)
{
case(band3cm):
showButton(ui->band3cmbtn);
break;
case(band6cm):
showButton(ui->band6cmbtn);
break;
case(band13cm):
showButton(ui->band13cmbtn);
break;
case(band23cm):
showButton(ui->band23cmbtn);
break;
case(band70cm):
showButton(ui->band70cmbtn);
break;
case(band2m):
showButton(ui->band2mbtn);
break;
case(bandAir):
showButton(ui->bandAirbtn);
break;
case(bandWFM):
showButton(ui->bandWFMbtn);
break;
case(band4m):
showButton(ui->band4mbtn);
break;
case(band6m):
showButton(ui->band6mbtn);
break;
case(band10m):
showButton(ui->band10mbtn);
break;
case(band12m):
showButton(ui->band12mbtn);
break;
case(band15m):
showButton(ui->band15mbtn);
break;
case(band17m):
showButton(ui->band17mbtn);
break;
case(band20m):
showButton(ui->band20mbtn);
break;
case(band30m):
showButton(ui->band30mbtn);
break;
case(band40m):
showButton(ui->band40mbtn);
break;
case(band60m):
showButton(ui->band60mbtn);
break;
case(band80m):
showButton(ui->band80mbtn);
break;
case(band160m):
showButton(ui->band160mbtn);
break;
case(band630m):
showButton(ui->band630mbtn);
break;
case(band2200m):
showButton(ui->band2200mbtn);
break;
case(bandGen):
showButton(ui->bandGenbtn);
break;
switch(band.band)
{
case(band3cm):
showButton(ui->band3cmbtn);
break;
case(band6cm):
showButton(ui->band6cmbtn);
break;
case(band13cm):
showButton(ui->band13cmbtn);
break;
case(band23cm):
showButton(ui->band23cmbtn);
break;
case(band70cm):
showButton(ui->band70cmbtn);
break;
case(band2m):
showButton(ui->band2mbtn);
break;
case(bandAir):
showButton(ui->bandAirbtn);
break;
case(bandWFM):
showButton(ui->bandWFMbtn);
break;
case(band4m):
showButton(ui->band4mbtn);
break;
case(band6m):
showButton(ui->band6mbtn);
break;
case(band10m):
showButton(ui->band10mbtn);
break;
case(band12m):
showButton(ui->band12mbtn);
break;
case(band15m):
showButton(ui->band15mbtn);
break;
case(band17m):
showButton(ui->band17mbtn);
break;
case(band20m):
showButton(ui->band20mbtn);
break;
case(band30m):
showButton(ui->band30mbtn);
break;
case(band40m):
showButton(ui->band40mbtn);
break;
case(band60m):
showButton(ui->band60mbtn);
break;
case(band80m):
showButton(ui->band80mbtn);
break;
case(band160m):
showButton(ui->band160mbtn);
break;
case(band630m):
showButton(ui->band630mbtn);
break;
case(band2200m):
showButton(ui->band2200mbtn);
break;
case(bandGen):
showButton(ui->bandGenbtn);
break;
default:
break;
default:
break;
}
}
}
}
@ -166,33 +167,11 @@ void bandbuttons::hideButton(QPushButton *b)
b->setHidden(true);
}
void bandbuttons::receiveBandStackReg(freqt freqGo, char mode, char filter, bool dataOn)
{
// This function is not currently used, but perhaps it should be?
// Issue: wfmain is also waiting for a BSR and acts upon it.
if(waitingForBSR)
{
qDebug(logGui()) << "Received band stack register and was waiting for one.";
emit issueCmdF(cmdSetFreq, freqGo);
emit issueCmd(cmdSetMode, mode);
//emit issueCmd(cmdSetFilter, filter); // TODO
if(dataOn)
emit issueDelayedCommand(cmdSetDataModeOn);
else
emit issueDelayedCommand(cmdSetDataModeOff);
waitingForBSR = false;
} else {
qWarning(logGui()) << "Received a BSR but did not expect one.";
}
(void)filter;
}
void bandbuttons::bandStackBtnClick(availableBands band)
{
if(haveRigCaps)
if(rigCaps != Q_NULLPTR)
{
for (auto &b: rigCaps.bands)
for (auto &b: rigCaps->bands)
{
if (b.band == band)
{
@ -215,16 +194,19 @@ void bandbuttons::bandStackBtnClick(availableBands band)
void bandbuttons::jumpToBandWithoutBSR(availableBands band)
{
// Sometimes we do not have a BSR for these bands:
for (auto &b: rigCaps.bands)
if (rigCaps != Q_NULLPTR)
{
if (b.band == band)
for (auto &b: rigCaps->bands)
{
freqt f;
f.Hz = (b.lowFreq+b.highFreq)/2.0;
f.MHzDouble = f.Hz/1000000.0;
f.VFO = activeVFO;
queue->add(priorityImmediate,queueItem(funcSelectedFreq,QVariant::fromValue<freqt>(f),false,false));
break;
if (b.band == band)
{
freqt f;
f.Hz = (b.lowFreq+b.highFreq)/2.0;
f.MHzDouble = f.Hz/1000000.0;
f.VFO = activeVFO;
queue->add(priorityImmediate,queueItem(funcSelectedFreq,QVariant::fromValue<freqt>(f),false,false));
break;
}
}
}
}

Wyświetl plik

@ -51,9 +51,7 @@ signals:
public slots:
// These should come from connections to rigCommander:
void acceptRigCaps(rigCapabilities rc);
void receiveBandStackReg(freqt freqGo, char mode, char filter, bool dataOn);
void receiveRigCaps(rigCapabilities* rc);
private slots:
void on_band2200mbtn_clicked();
@ -90,7 +88,7 @@ private:
char bandStkRegCode;
bool waitingForBSR = false;
rigCapabilities rigCaps;
rigCapabilities* rigCaps=Q_NULLPTR;
bool haveRigCaps = false;
cachingQueue* queue;
};

Wyświetl plik

@ -129,7 +129,7 @@ void cachingQueue::add(queuePriority prio ,queueItem item)
// also insert an immediate command to get the current value "now" (removes the need to get rigstate)
queueItem it=item;
it.recurring=false;
queue.insert(queue.cend(),priorityHighest, it);
queue.insert(queue.cend(),priorityImmediate, it);
qDebug() << "adding" << funcString[item.command] << "recurring" << item.recurring << "priority" << prio << "vfo" << item.vfo;
}
queue.insert(prio, item);
@ -171,7 +171,7 @@ void cachingQueue::addUnique(queuePriority prio ,queueItem item)
// also insert an immediate command to get the current value "now" (removes the need to get initial rigstate)
queueItem it = item;
it.recurring=false;
queue.insert(queue.cend(),priorityHighest, it);
queue.insert(queue.cend(),priorityImmediate, it);
qDebug() << "adding unique" << funcString[item.command] << "recurring" << item.recurring << "priority" << prio << "vfo" << item.vfo;
}
queue.insert(prio, item);

Wyświetl plik

@ -118,7 +118,7 @@ public:
QMultiMap <queuePriority,queueItem> getQueueItems();
void lockMutex() {mutex.lock();}
void unlockMutex() {mutex.unlock();}
void setRigCaps(rigCapabilities* caps) { rigCaps = caps; emit rigCapsUpdated(rigCaps);}
void setRigCaps(rigCapabilities* caps) { if (rigCaps != caps) { rigCaps = caps; emit rigCapsUpdated(rigCaps);} }
rigCapabilities* getRigCaps() { return rigCaps; }
};

Wyświetl plik

@ -82,7 +82,7 @@ void cwSender::handleKeySpeed(unsigned char wpm)
{
if (wpm != ui->wpmSpin->value() && (wpm >= ui->wpmSpin->minimum()) && (wpm <= ui->wpmSpin->maximum()))
{
qInfo(logCW()) << "Received new key speed" << wpm;
qDebug(logCW()) << "Received new key speed" << wpm;
ui->wpmSpin->blockSignals(true);
QMetaObject::invokeMethod(ui->wpmSpin, "setValue", Qt::QueuedConnection, Q_ARG(int, wpm));
ui->wpmSpin->blockSignals(false);

Wyświetl plik

@ -4,16 +4,25 @@
#include "memories.h"
#include "ui_memories.h"
memories::memories(rigCapabilities rigCaps, bool slowLoad, QWidget *parent) :
memories::memories(bool slowLoad, QWidget *parent) :
QWidget(parent),
slowLoad(slowLoad),
rigCaps(rigCaps),
ui(new Ui::memories)
{
ui->setupUi(this);
ui->table->setColumnCount(totalColumns);
ui->table->editing(false);
this->setObjectName("RigCtlD");
queue = cachingQueue::getInstance(this);
rigCaps = queue->getRigCaps();
if (rigCaps == Q_NULLPTR)
{
// We have no rigCaps, so cannot continue
return;
}
QStringList headers;
/*
@ -32,9 +41,9 @@ memories::memories(rigCapabilities rigCaps, bool slowLoad, QWidget *parent) :
split << "OFF" << "ON";
dataModes << "OFF" << "DATA1";
if (rigCaps.commands.contains(funcDATA2Mod))
if (rigCaps->commands.contains(funcDATA2Mod))
dataModes.append("DATA2");
if (rigCaps.commands.contains(funcDATA3Mod))
if (rigCaps->commands.contains(funcDATA3Mod))
dataModes.append("DATA3");
filters << "FIL1" << "FIL2" << "FIL3";
@ -42,7 +51,7 @@ memories::memories(rigCapabilities rigCaps, bool slowLoad, QWidget *parent) :
duplexModes << "OFF" << "DUP-" << "DUP+" << "RPS";
toneModes << "OFF" << "TONE" << "TSQL";
if (rigCaps.commands.contains(funcRepeaterDTCS))
if (rigCaps->commands.contains(funcRepeaterDTCS))
toneModes.append("DTCS");
@ -72,12 +81,12 @@ memories::memories(rigCapabilities rigCaps, bool slowLoad, QWidget *parent) :
ui->group->blockSignals(true);
ui->group->addItem("Memory Group",-1);
for (int i=rigCaps.memStart;i<=rigCaps.memGroups;i++) {
for (int i=rigCaps->memStart;i<=rigCaps->memGroups;i++) {
ui->group->addItem(QString("Group %0").arg(i,2,10,QChar('0')),i);
}
if (rigCaps.satMemories && rigCaps.commands.contains(funcSatelliteMode)){
if (rigCaps->satMemories && rigCaps->commands.contains(funcSatelliteMode)){
ui->group->addItem("Satellite",MEMORY_SATGROUP);
}
@ -88,13 +97,13 @@ memories::memories(rigCapabilities rigCaps, bool slowLoad, QWidget *parent) :
dvsql.append(QString::number(i).rightJustified(2,'0'));
}
if (rigCaps.commands.contains(funcVFOEqualAB)) {
if (rigCaps->commands.contains(funcVFOEqualAB)) {
vfos << "VFOA" << "VFOB";
} else if (rigCaps.commands.contains(funcVFOEqualMS)) {
} else if (rigCaps->commands.contains(funcVFOEqualMS)) {
vfos << "MAIN" << "SUB";
}
for (auto &mode: rigCaps.modes){
for (auto &mode: rigCaps->modes){
modes.append(mode.name);
}
@ -131,7 +140,7 @@ void memories::rowAdded(int row)
{
// Find the next available memory number:
quint32 num=rigCaps.memStart;
quint32 num=rigCaps->memStart;
/* This feels unnecessarily complicated, but here we are:
* Set the memory number to 1
@ -160,11 +169,11 @@ void memories::rowAdded(int row)
if (i == rows.end())
{
// No gaps found so work on highest value found
if ((ui->group->currentData().toInt() != 200 && rows.back() < groupMemories-1) || (ui->group->currentData().toInt() == MEMORY_SATGROUP && rows.back() < rigCaps.satMemories-1))
if ((ui->group->currentData().toInt() != 200 && rows.back() < groupMemories-1) || (ui->group->currentData().toInt() == MEMORY_SATGROUP && rows.back() < rigCaps->satMemories-1))
{
num = rows.back() + 1;
}
else if (rows.front() == rigCaps.memStart)
else if (rows.front() == rigCaps->memStart)
{
qWarning() << "Sorry no free memory slots found, please delete one first";
ui->table->removeRow(row);
@ -177,7 +186,9 @@ void memories::rowAdded(int row)
QPushButton* recall = new QPushButton("Recall");
ui->table->setCellWidget(row,columnRecall,recall);
connect(recall, &QPushButton::clicked, this,
[=]() { qInfo() << "Recalling" << num; emit recallMemory((quint32((ui->group->currentData().toUInt() << 16) | num)));});
[=]() { qInfo() << "Recalling" << num;
queue->add(priorityImmediate,queueItem(funcMemoryMode,QVariant::fromValue<uint>((quint32((ui->group->currentData().toUInt() << 16) | num)))));
});
ui->table->model()->setData(ui->table->model()->index(row,columnNum),QString::number(num).rightJustified(3,'0'));
// Set default values (where possible) for all other values:
if (ui->table->item(row,columnSplit) == NULL) ui->table->model()->setData(ui->table->model()->index(row,columnSplit),split[0]);
@ -219,7 +230,7 @@ void memories::rowAdded(int row)
void memories::rowDeleted(quint32 mem)
{
if (mem >= rigCaps.memStart && mem <= rigCaps.memories) {
if (mem >= rigCaps->memStart && mem <= rigCaps->memories) {
qInfo() << "Mem Deleted" << mem;
memoryType currentMemory;
if (ui->group->currentData().toInt() == MEMORY_SATGROUP)
@ -230,7 +241,7 @@ void memories::rowDeleted(quint32 mem)
currentMemory.group=ui->group->currentData().toInt();
currentMemory.channel = mem;
currentMemory.del = true;
emit setMemory(currentMemory);
queue->add(priorityImmediate,queueItem((currentMemory.sat?funcSatelliteMemory:funcMemoryContents),QVariant::fromValue<memoryType>(currentMemory)));
}
}
@ -315,7 +326,7 @@ void memories::on_table_cellChanged(int row, int col)
currentMemory.frequency.Hz = (ui->table->item(row,columnFrequency) == NULL) ? 0 : quint64(ui->table->item(row,columnFrequency)->text().toDouble()*1000000.0);
currentMemory.frequencyB.Hz = (ui->table->item(row,columnFrequencyB) == NULL) ? 0 : quint64(ui->table->item(row,columnFrequencyB)->text().toDouble()*1000000.0);
for (auto &m: rigCaps.modes){
for (auto &m: rigCaps->modes){
if (!ui->table->isColumnHidden(columnMode) && ui->table->item(row,columnMode) != NULL && ui->table->item(row,columnMode)->text()==m.name) {
currentMemory.mode=m.reg;
}
@ -412,8 +423,7 @@ void memories::on_table_cellChanged(int row, int col)
write=false;
}
if (write) {
emit setMemory(currentMemory);
queue->add(priorityImmediate,queueItem((currentMemory.sat?funcSatelliteMemory:funcMemoryContents),QVariant::fromValue<memoryType>(currentMemory)));
qInfo() << "Sending memory, group:" << currentMemory.group << "channel" << currentMemory.channel;
// Set number to not be editable once written. Not sure why but this crashes?
//ui->table->item(row,columnNum)->setFlags(ui->table->item(row,columnNum)->flags() & (~Qt::ItemIsEditable));
@ -431,11 +441,11 @@ void memories::on_group_currentIndexChanged(int index)
// Special case for group 100 on the IC705!
if (ui->group->currentData().toInt() == MEMORY_SATGROUP)
groupMemories=rigCaps.satMemories;
groupMemories=rigCaps->satMemories;
else if (ui->group->currentData().toInt() == MEMORY_SHORTGROUP)
groupMemories=3;
else
groupMemories=rigCaps.memories;
groupMemories=rigCaps->memories;
ui->loadingMemories->setVisible(true);
ui->table->setEditTriggers(QAbstractItemView::NoEditTriggers);
@ -453,15 +463,21 @@ void memories::on_group_currentIndexChanged(int index)
QVector<memParserFormat> parser;
queue->add(priorityImmediate,queueItem(funcSatelliteMode,QVariant::fromValue<bool>(ui->group->currentData().toInt() == MEMORY_SATGROUP)));
if (ui->group->currentData().toInt() == MEMORY_SATGROUP) {
emit setSatelliteMode(true);
parser = rigCaps.satParser;
queue->del(funcSelectedFreq,false);
queue->del(funcSelectedMode,false);
queue->del(funcUnselectedFreq,true);
queue->del(funcUnselectedMode,true);
parser = rigCaps->satParser;
} else {
emit setSatelliteMode(false);
parser = rigCaps.memParser;
queue->addUnique(priorityMedium,funcSelectedFreq,true,false);
queue->addUnique(priorityMedium,funcSelectedMode,true,false);
queue->addUnique(priorityMedium,funcUnselectedFreq,true,true);
queue->addUnique(priorityMedium,funcUnselectedMode,true,true);
parser = rigCaps->memParser;
}
for (auto &parse: parser) {
switch (parse.spec)
{
@ -879,38 +895,49 @@ void memories::on_group_currentIndexChanged(int index)
if (ui->group->currentData().toInt() == MEMORY_SATGROUP) {
lastMemoryRequested = rigCaps.memStart;
lastMemoryRequested = rigCaps->memStart;
if (slowLoad) {
QTimer::singleShot(MEMORY_SLOWLOAD, this, [this]{ emit getSatMemory(lastMemoryRequested); });
QTimer::singleShot(MEMORY_SLOWLOAD, this, [this]{
queue->add(priorityImmediate,queueItem(funcSatelliteMemory,QVariant::fromValue<ushort>(lastMemoryRequested & 0xffff)));
});
} else {
emit getSatMemory(lastMemoryRequested);
queue->add(priorityImmediate,queueItem(funcSatelliteMemory,QVariant::fromValue<ushort>(lastMemoryRequested & 0xffff)));
}
} else {
lastMemoryRequested = quint32((ui->group->currentData().toInt())<<16) | (rigCaps.memStart & 0xffff);
lastMemoryRequested = quint32((ui->group->currentData().toInt())<<16) | (rigCaps->memStart & 0xffff);
if (slowLoad) {
QTimer::singleShot(MEMORY_SLOWLOAD, this, [this]{ emit getMemory(lastMemoryRequested); });
QTimer::singleShot(MEMORY_SLOWLOAD, this, [this]{
queue->add(priorityImmediate,queueItem(funcMemoryContents,QVariant::fromValue<uint>(lastMemoryRequested)));
});
} else {
// Is the current group attached to a particular band?
for (auto &band: rigCaps.bands)
for (auto &band: rigCaps->bands)
{
if (band.memGroup==ui->group->currentData().toInt())
{
emit setBand(band.band);
queue->add(priorityImmediate,queueItem(funcBandStackReg,QVariant::fromValue<uchar>(band.band)));
}
}
emit getMemory(lastMemoryRequested);
queue->add(priorityImmediate,queueItem(funcMemoryContents,QVariant::fromValue<uint>(lastMemoryRequested)));
}
}
}
void memories::on_vfoMode_clicked()
{
emit vfoMode();
queue->addUnique(priorityMedium,funcSelectedFreq,true,false);
queue->addUnique(priorityMedium,funcSelectedMode,true,false);
queue->addUnique(priorityMedium,funcUnselectedFreq,true,true);
queue->addUnique(priorityMedium,funcUnselectedMode,true,true);
}
void memories::on_memoryMode_clicked()
{
emit memoryMode();
queue->add(priorityImmediate,funcMemoryMode);
queue->del(funcSelectedFreq,false);
queue->del(funcSelectedMode,false);
queue->del(funcUnselectedFreq,true);
queue->del(funcUnselectedMode,true);
}
@ -921,9 +948,9 @@ void memories::receiveMemory(memoryType mem)
{
lastMemoryRequested++;
if (mem.sat)
emit getSatMemory(lastMemoryRequested);
queue->add(priorityImmediate,queueItem(funcSatelliteMemory,QVariant::fromValue<ushort>(lastMemoryRequested & 0xffff)));
else
emit getMemory(lastMemoryRequested);
queue->add(priorityImmediate,queueItem(funcMemoryContents,QVariant::fromValue<uint>(lastMemoryRequested)));
timeoutTimer.start(MEMORY_TIMEOUT);
}
else if (mem.channel == groupMemories)
@ -946,7 +973,8 @@ void memories::receiveMemory(memoryType mem)
for (int n = 0; n<ui->table->rowCount();n++)
{
if (ui->table->item(n,columnNum) != NULL && ui->table->item(n,columnNum)->text().toInt() == mem.channel && (rigCaps.memGroups < 2 || mem.sat || mem.group == ui->group->currentData().toInt()))
if (ui->table->item(n,columnNum) != NULL && ui->table->item(n,columnNum)->text().toInt() == mem.channel &&
(rigCaps->memGroups < 2 || mem.sat || mem.group == ui->group->currentData().toInt()))
{
row = n;
break;
@ -961,8 +989,10 @@ void memories::receiveMemory(memoryType mem)
row=ui->table->rowCount()-1;
QPushButton* recall = new QPushButton("Recall");
ui->table->setCellWidget(row,columnRecall,recall);
connect(recall, &QPushButton::clicked, this,
[=]() { qInfo() << "Recalling" << mem.channel; emit recallMemory((quint32((ui->group->currentData().toUInt() << 16) | mem.channel)));});
connect(recall, &QPushButton::clicked, this, [=]() {
qInfo() << "Recalling" << mem.channel;
queue->add(priorityImmediate,queueItem(funcMemoryMode,QVariant::fromValue<uint>(quint32((ui->group->currentData().toUInt() << 16) | mem.channel))));
});
}
ui->table->model()->setData(ui->table->model()->index(row,columnNum),QString::number(mem.channel & 0xffff).rightJustified(3,'0'));
@ -981,12 +1011,12 @@ void memories::receiveMemory(memoryType mem)
ui->table->model()->setData(ui->table->model()->index(row,columnFrequencyB),QString::number(double(mem.frequencyB.Hz/1000000.0),'f',3));
validData++;
for (uint i=0;i<rigCaps.modes.size();i++)
for (uint i=0;i<rigCaps->modes.size();i++)
{
if (mem.mode == rigCaps.modes[i].reg)
if (mem.mode == rigCaps->modes[i].reg)
validData += updateCombo(modes,row,columnMode,i);
if (mem.modeB == rigCaps.modes[i].reg)
if (mem.modeB == rigCaps->modes[i].reg)
validData += updateCombo(modes,row,columnModeB,i);
}
@ -1094,10 +1124,11 @@ void memories::receiveMemory(memoryType mem)
if (validData < visibleColumns) {
qInfo(logRig()) << "Memory" << mem.channel << "Received valid data for" << validData << "columns, " << "expected" << visibleColumns << "requesting again";
if (mem.sat)
emit getSatMemory(mem.channel & 0xffff);
else
emit getMemory(quint32((ui->group->currentData().toInt())<<16) | (mem.channel & 0xffff));
if (mem.sat) {
queue->add(priorityImmediate,queueItem(funcSatelliteMemory,QVariant::fromValue<ushort>(mem.channel & 0xffff)));
} else {
queue->add(priorityImmediate,queueItem(funcMemoryContents,QVariant::fromValue<uint>(mem.channel & 0xffff)));
}
retries++;
}
@ -1155,14 +1186,15 @@ bool memories::checkASCII(QString str)
void memories::timeout()
{
{
if (timeoutCount < 10 )
{
qInfo(logRig()) << "Timeout receiving memory:" << (lastMemoryRequested & 0xffff) << "in group" << (lastMemoryRequested >> 16 & 0xffff);
if (ui->group->currentData().toInt() == MEMORY_SATGROUP)
emit getSatMemory(lastMemoryRequested);
else
emit getMemory(lastMemoryRequested);
if (ui->group->currentData().toInt() == MEMORY_SATGROUP) {
queue->add(priorityImmediate,queueItem(funcSatelliteMemory,QVariant::fromValue<ushort>(lastMemoryRequested & 0xffff)));
} else {
queue->add(priorityImmediate,queueItem(funcMemoryContents,QVariant::fromValue<uint>(lastMemoryRequested)));
}
timeoutTimer.start(MEMORY_TIMEOUT);
timeoutCount++;
} else {
@ -1241,8 +1273,10 @@ void memories::on_csvImport_clicked()
ui->table->insertRow(rownum);
QPushButton* recall = new QPushButton("Recall");
ui->table->setCellWidget(rownum,columnRecall,recall);
connect(recall, &QPushButton::clicked, this,
[=]() { qInfo() << "Recalling" << row[0].toInt(); emit recallMemory((quint32((ui->group->currentData().toUInt() << 16) | row[0].toInt())));});
connect(recall, &QPushButton::clicked, this, [=]() {
qInfo() << "Recalling" << row[0].toInt();
queue->add(priorityImmediate,queueItem(funcMemoryMode,QVariant::fromValue<uint>(quint32((ui->group->currentData().toUInt() << 16) | row[0].toInt()))));
});
}
// rownum is now the row we need to work on.

Wyświetl plik

@ -14,6 +14,7 @@
#include "tablewidget.h"
#include "wfviewtypes.h"
#include "rigidentities.h"
#include "cachingqueue.h"
#define MEMORY_TIMEOUT 1000
#define MEMORY_SLOWLOAD 500
@ -29,23 +30,10 @@ class memories : public QWidget
Q_OBJECT
public:
explicit memories(rigCapabilities rigCaps,bool slowLoad=false,QWidget *parent = nullptr);
explicit memories(bool slowLoad=false,QWidget *parent = nullptr);
~memories();
void populate();
signals:
void setMemory(memoryType mem);
void getMemory(quint32 mem);
void setSatelliteMode(bool en);
void getSatMemory(quint32 mem);
void recallMemory(quint32 mem);
void clearMemory(quint32 mem);
void clearSatMemory(quint32 mem);
void memoryMode();
void vfoMode();
void setBand(char band);
private slots:
void on_table_cellChanged(int row, int col);
void on_group_currentIndexChanged(int index);
@ -64,6 +52,7 @@ private slots:
void timeout();
private:
cachingQueue* queue;
quint32 groupMemories=0;
quint32 lastMemoryRequested=0;
QTimer timeoutTimer;
@ -175,7 +164,7 @@ private:
tableEditor* r1EditorB = Q_NULLPTR;
tableEditor* r2EditorB = Q_NULLPTR;
rigCapabilities rigCaps;
rigCapabilities* rigCaps = Q_NULLPTR;
Ui::memories *ui;
bool extended = false;

Wyświetl plik

@ -16,6 +16,12 @@
pttyHandler::pttyHandler(QString pty, QObject* parent) : QObject(parent)
{
//constructor
this->setObjectName("pttyHandler");
queue = cachingQueue::getInstance(this);
connect(queue, SIGNAL(rigCapsUpdated(rigCapabilities*)), this, SLOT(receiveRigCaps(rigCapabilities*)));
rigCaps = queue->getRigCaps();
if (pty == "" || pty.toLower() == "none")
{
// Just return if pty is not configured.
@ -222,7 +228,7 @@ void pttyHandler::receiveDataIn(int fd) {
qInfo(logSerial()) << "pty remote CI-V changed:" << QString("0x%1").arg((quint8)civId,0,16);
}
// filter C-IV transceive command before forwarding on.
if (inPortData.contains(rigCaps.transceiveCommand))
if (rigCaps != Q_NULLPTR && inPortData.contains(rigCaps->transceiveCommand))
{
//qInfo(logSerial()) << "Filtered transceive command";
//printHex(inPortData, false, true);
@ -337,10 +343,12 @@ void pttyHandler::printHex(const QByteArray& pdata, bool printVert, bool printHo
qDebug(logSerial()) << "----- End hex dump -----";
}
void pttyHandler::receiveFoundRigID(rigCapabilities rigCaps) {
this->rigCaps = rigCaps;
qInfo(logSerial) << "Received rigCapabilities for" << rigCaps.modelName;
void pttyHandler::receiveRigCaps(rigCapabilities* caps)
{
if (caps != Q_NULLPTR) {
qInfo(logSerial()) << "Got rigcaps for:" << caps->modelName;
}
this->rigCaps = caps;
}

Wyświetl plik

@ -11,6 +11,7 @@
#include "rigidentities.h"
#include "wfviewtypes.h"
#include "cachingqueue.h"
// This class abstracts the comm port in a useful way and connects to
// the command creator and command parser.
@ -30,7 +31,7 @@ private slots:
void receiveDataIn(int fd); // from physical port
void receiveDataFromRigToPtty(const QByteArray& data);
void debugThis();
void receiveFoundRigID(rigCapabilities rigCaps);
void receiveRigCaps(rigCapabilities* rigCaps);
signals:
void haveTextMessage(QString message); // status, debug only
@ -73,7 +74,8 @@ private:
bool disableTransceive = false;
QSocketNotifier *ptReader = Q_NULLPTR;
quint8 civId=0;
rigCapabilities rigCaps;
rigCapabilities* rigCaps = Q_NULLPTR;
cachingQueue* queue = Q_NULLPTR;
};
#endif // PTTYHANDLER_H

Wyświetl plik

@ -95,8 +95,6 @@ void rigCommander::commSetup(QHash<unsigned char,QString> rigList, unsigned char
connect(this, SIGNAL(getMoreDebug()), comm, SLOT(debugThis()));
connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis()));
connect(this, SIGNAL(discoveredRigID(rigCapabilities)), ptty, SLOT(receiveFoundRigID(rigCapabilities)));
commonSetup();
}
@ -170,8 +168,6 @@ void rigCommander::commSetup(QHash<unsigned char,QString> rigList, unsigned char
connect(ptty, SIGNAL(havePortError(errorType)), this, SLOT(handlePortError(errorType)));
connect(this, SIGNAL(getMoreDebug()), ptty, SLOT(debugThis()));
connect(this, SIGNAL(discoveredRigID(rigCapabilities)), ptty, SLOT(receiveFoundRigID(rigCapabilities)));
connect(udp, SIGNAL(requestRadioSelection(QList<radio_cap_packet>)), this, SLOT(radioSelection(QList<radio_cap_packet>)));
connect(udp, SIGNAL(setRadioUsage(quint8, bool, quint8, QString, QString)), this, SLOT(radioUsage(quint8, bool, quint8, QString, QString)));
connect(this, SIGNAL(selectedRadio(quint8)), udp, SLOT(setCurrentRadio(quint8)));
@ -2546,7 +2542,7 @@ void rigCommander::receiveCommand(funcs func, QVariant value, uchar vfo)
// Currently only used for RIT (I think)
bool isNegative = false;
short val = value.value<short>();
qInfo() << "Setting rit to " << val;
qDebug() << "Setting RIT to " << val;
if(val < 0)
{
isNegative = true;

Wyświetl plik

@ -310,7 +310,9 @@ void rigCtlD::stopServer()
void rigCtlClient::receiveRigCaps(rigCapabilities* caps)
{
qInfo(logRigCtlD()) << "Got rigcaps for:" << caps->modelName;
if (caps != Q_NULLPTR) {
qInfo(logRigCtlD()) << "Got rigcaps for:" << caps->modelName;
}
this->rigCaps = caps;
}

Wyświetl plik

@ -278,7 +278,6 @@ public:
int startServer(qint16 port);
void stopServer();
rigCapabilities* rigCaps;
signals:
void onStarted();
@ -342,7 +341,7 @@ protected:
private:
cachingQueue* queue;
rigCapabilities* rigCaps;
rigCapabilities* rigCaps=Q_NULLPTR;
rigCtlD* parent;
bool chkVfoEecuted=false;
unsigned long crcTable[256];

Wyświetl plik

@ -490,8 +490,8 @@ Commands\93\Max=1
Commands\93\Command29=false
Commands\94\Type=RIT Frequency
Commands\94\String=\\x21\\x00
Commands\94\Min=0
Commands\94\Max=0
Commands\94\Min=-999
Commands\94\Max=999
Commands\94\Command29=false
Commands\95\Type=RIT Status
Commands\95\String=\\x21\\x01

Wyświetl plik

@ -325,8 +325,8 @@ Commands\60\Max=0
Commands\60\Command29=false
Commands\61\Type=RIT Frequency
Commands\61\String=\\x21\\x01
Commands\61\Min=0
Commands\61\Max=1
Commands\61\Min=-999
Commands\61\Max=999
Commands\61\Command29=false
Commands\62\Type=Selected Freq
Commands\62\String=\\x25\\x00

Wyświetl plik

@ -335,8 +335,8 @@ Commands\62\Max=0
Commands\62\Command29=false
Commands\63\Type=RIT Frequency
Commands\63\String=\\x21\\x01
Commands\63\Min=0
Commands\63\Max=1
Commands\63\Min=-999
Commands\63\Max=999
Commands\63\Command29=false
Commands\64\Type=Selected Freq
Commands\64\String=\\x25\\x00

Wyświetl plik

@ -550,8 +550,8 @@ Commands\105\Max=1
Commands\105\Command29=false
Commands\106\Type=RIT Frequency
Commands\106\String=\\x21\\x00
Commands\106\Min=0
Commands\106\Max=0
Commands\106\Min=-999
Commands\106\Max=999
Commands\106\Command29=false
Commands\107\Type=RIT Status
Commands\107\String=\\x21\\x01
@ -822,13 +822,13 @@ Periodic\32\Command=VFO Dual Watch
Periodic\32\VFO=0
Periodic\size=32
Spans\1\Num=0
Spans\1\Name=±2.5 KHz
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500
Spans\2\Num=1
Spans\2\Name=±5 KHz
Spans\2\Name=±5 KHz
Spans\2\Freq=5000
Spans\3\Num=2
Spans\3\Name=±10 KHz
Spans\3\Name=±10 KHz
Spans\3\Freq=10000
Spans\4\Num=3
Spans\4\Name=±25 KHz
@ -837,13 +837,13 @@ Spans\5\Num=4
Spans\5\Name=±50 KHz
Spans\5\Freq=50000
Spans\6\Num=5
Spans\6\Name=±100 KHz
Spans\6\Name=±100 KHz
Spans\6\Freq=100000
Spans\7\Num=6
Spans\7\Name=±250 KHz
Spans\7\Name=±250 KHz
Spans\7\Freq=250000
Spans\8\Num=7
Spans\8\Name=±500 KHz
Spans\8\Name=±500 KHz
Spans\8\Freq=500000
Spans\size=8
Inputs\1\Num=0

Wyświetl plik

@ -560,8 +560,8 @@ Commands\107\Max=1
Commands\107\Command29=false
Commands\108\Type=RIT Frequency
Commands\108\String=\\x21\\x00
Commands\108\Min=0
Commands\108\Max=0
Commands\108\Min=-999
Commands\108\Max=999
Commands\108\Command29=false
Commands\109\Type=RIT Status
Commands\109\String=\\x21\\x01

Wyświetl plik

@ -607,43 +607,43 @@ Periodic\22\Command=Unselected Mode
Periodic\22\VFO=1
Periodic\size=22
Spans\1\Num=0
Spans\1\Name=2.5 KHz
Spans\1\Name=±2.5 KHz
Spans\1\Freq=2500
Spans\2\Num=0
Spans\2\Name=5 MHz
Spans\2\Name=±5 MHz
Spans\2\Freq=5000000
Spans\3\Num=0
Spans\3\Name=10 MHz
Spans\3\Name=±10 MHz
Spans\3\Freq=10000000
Spans\4\Num=0
Spans\4\Name=25 MHz
Spans\4\Name=±25 MHz
Spans\4\Freq=25000000
Spans\5\Num=1
Spans\5\Name=5 KHz
Spans\5\Name=±5 KHz
Spans\5\Freq=5000
Spans\6\Num=2
Spans\6\Name=10 KHz
Spans\6\Name=±10 KHz
Spans\6\Freq=10000
Spans\7\Num=3
Spans\7\Name=25 KHz
Spans\7\Name=±25 KHz
Spans\7\Freq=25000
Spans\8\Num=4
Spans\8\Name=50 KHz
Spans\8\Name=±50 KHz
Spans\8\Freq=50000
Spans\9\Num=5
Spans\9\Name=100 KHz
Spans\9\Name=±100 KHz
Spans\9\Freq=100000
Spans\10\Num=6
Spans\10\Name=250 KHz
Spans\10\Name=±250 KHz
Spans\10\Freq=250000
Spans\11\Num=7
Spans\11\Name=500 KHz
Spans\11\Name=±500 KHz
Spans\11\Freq=500000
Spans\12\Num=8
Spans\12\Name=1 MHz
Spans\12\Name=±1 MHz
Spans\12\Freq=1000000
Spans\13\Num=9
Spans\13\Name=2.5 MHz
Spans\13\Name=±2.5 MHz
Spans\13\Freq=2500000
Spans\size=13
Inputs\1\Num=0

Wyświetl plik

@ -515,8 +515,8 @@ Commands\98\Max=1
Commands\98\Command29=false
Commands\99\Type=RIT Frequency
Commands\99\String=\\x21\\x00
Commands\99\Min=0
Commands\99\Max=0
Commands\99\Min=-999
Commands\99\Max=999
Commands\99\Command29=false
Commands\100\Type=RIT Status
Commands\100\String=\\x21\\x01

Wyświetl plik

@ -1348,7 +1348,7 @@ void spectrumScope::receiveMode(modeInfo m)
if (mode.reg != m.reg || m.filter != mode.filter || m.data != mode.data)
{
qInfo(logSystem()) << __func__ << QString("Received new mode for %0: %1 (%2) filter:%3 data:%4")
qDebug(logSystem()) << __func__ << QString("Received new mode for %0: %1 (%2) filter:%3 data:%4")
.arg((vfo?"Sub":"Main")).arg(QString::number(m.mk,16)).arg(m.name).arg(m.filter).arg(m.data) ;
if (mode.mk != m.mk) {
@ -1494,7 +1494,7 @@ void spectrumScope::receiveCwPitch(uchar pitch)
if (p != this->cwPitch)
{
passbandCenterFrequency = p / 2000000.0;
qInfo(logSystem()) << QString("%0 Received new CW Pitch %1 Hz was %2 (center freq %3 MHz)").arg((vfo?"Sub":"Main")).arg(p).arg(cwPitch).arg(passbandCenterFrequency);
qDebug(logSystem()) << QString("%0 Received new CW Pitch %1 Hz was %2 (center freq %3 MHz)").arg((vfo?"Sub":"Main")).arg(p).arg(cwPitch).arg(passbandCenterFrequency);
this->cwPitch = p;
}
}
@ -1506,7 +1506,7 @@ void spectrumScope::receivePassband(quint16 pass)
if (passbandWidth != pb) {
passbandWidth = pb;
//trxadj->updatePassband(pass);
qInfo(logSystem()) << QString("%0 Received new IF Filter/Passband %1 Hz").arg(vfo?"Sub":"Main").arg(pass);
qDebug(logSystem()) << QString("%0 Received new IF Filter/Passband %1 Hz").arg(vfo?"Sub":"Main").arg(pass);
emit showStatusBarText(QString("%0 IF filter width %1 Hz (%2 MHz)").arg(vfo?"Sub":"Main").arg(pass).arg(passbandWidth));
}
}

Wyświetl plik

@ -33,11 +33,6 @@ transceiverAdjustments::transceiverAdjustments(QWidget *parent) :
transceiverAdjustments::~transceiverAdjustments()
{
rigCaps.inputs.clear();
rigCaps.preamps.clear();
rigCaps.attenuators.clear();
rigCaps.antennas.clear();
delete ui;
}

Wyświetl plik

@ -84,23 +84,6 @@ void usbController::init(QMutex* mut,usbDevMap* devs ,QVector<BUTTON>* buts,QVec
// We need to make sure that all buttons/knobs have a command assigned, this is a fairly expensive operation
// Perform a deep copy of the command to ensure that each controller is using a unique copy of the command.
#ifdef HID_API_VERSION_MAJOR
if (HID_API_VERSION == HID_API_MAKE_VERSION(hid_version()->major, hid_version()->minor, hid_version()->patch)) {
qInfo(logUsbControl) << QString("Compile-time version matches runtime version of hidapi: %0.%1.%2")
.arg(hid_version()->major)
.arg(hid_version()->minor)
.arg(hid_version()->patch);
}
else {
qInfo(logUsbControl) << QString("Compile-time and runtime versions of hidapi do not match (%0.%1.%2 vs %0.%1.%2)")
.arg(HID_API_VERSION_MAJOR)
.arg(HID_API_VERSION_MINOR)
.arg(HID_API_VERSION_PATCH)
.arg(hid_version()->major)
.arg(hid_version()->minor)
.arg(hid_version()->patch);
}
#endif
hidStatus = hid_init();
if (hidStatus) {
qInfo(logUsbControl()) << "Failed to intialize HID Devices";
@ -1252,7 +1235,7 @@ void usbController::sendRequest(USBDEVICE *dev, usbFeatureType feature, int val,
{
myImage.save(&butBuffer, "BMP");
quint16 payloadLen = dev->type.maxPayload - sizeof(streamdeck_v1_image_header);
quint16 payloadLen = dev->type.maxPayload - quint16(sizeof(streamdeck_v1_image_header));
if (dev->type.model == usbDeviceType::StreamDeckOriginal) {
// Special case for buttons on original StreamDeck

Plik diff jest za duży Load Diff

Wyświetl plik

@ -35,7 +35,7 @@
#include "calibrationwindow.h"
#include "repeatersetup.h"
#include "satellitesetup.h"
#include "transceiveradjustments.h"
//#include "transceiveradjustments.h"
#include "cwsender.h"
#include "bandbuttons.h"
#include "frequencyinputwidget.h"
@ -406,8 +406,7 @@ private slots:
void receivePreamp(unsigned char pre, uchar vfo);
void receiveAttenuator(unsigned char att, uchar vfo);
void receiveAntennaSel(unsigned char ant, bool rx,uchar vfo);
void receiveRigID(rigCapabilities rigCaps);
void receiveFoundRigID(rigCapabilities rigCaps);
void receivePortError(errorType err);
void receiveStatusUpdate(networkStatus status);
void receiveNetworkAudioLevels(networkAudioLevels l);
@ -497,6 +496,9 @@ private slots:
void on_dualWatchBtn_toggled(bool en);
void receiveElapsed(bool sub, qint64 us);
void connectionTimeout();
void receiveRigCaps(rigCapabilities* caps);
private:
Ui::wfmain *ui; // Main UI
@ -514,6 +516,7 @@ private:
QTimer logCheckingTimer;
int logCheckingOldPosition = 0;
QTimer ATUCheckTimer;
QTimer ConnectionTimer;
QCustomPlot *plot; // line plot
QCustomPlot *wf; // waterfall image
@ -710,7 +713,7 @@ private:
int oldFreqDialVal;
QHash<unsigned char,QString> rigList;
rigCapabilities rigCaps;
rigCapabilities* rigCaps = Q_NULLPTR;
rigInput currentModSrc[4];
@ -726,7 +729,7 @@ private:
calibrationWindow *cal = Q_NULLPTR;
repeaterSetup *rpt = Q_NULLPTR;
satelliteSetup *sat = Q_NULLPTR;
transceiverAdjustments *trxadj = Q_NULLPTR;
//transceiverAdjustments *trxadj = Q_NULLPTR;
cwSender *cw = Q_NULLPTR;
controllerSetup* usbWindow = Q_NULLPTR;
aboutbox *abtBox = Q_NULLPTR;

915
wfmain.ui
Wyświetl plik

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>956</width>
<height>384</height>
<width>942</width>
<height>327</height>
</rect>
</property>
<property name="acceptDrops">
@ -48,6 +48,19 @@
<property name="bottomMargin">
<number>3</number>
</property>
<item>
<spacer name="scopeSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QVBoxLayout" name="vfoLayout">
<property name="spacing">
@ -58,7 +71,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_15">
<layout class="QVBoxLayout" name="metersVerticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
@ -283,84 +296,12 @@
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="rightMargin">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<spacer name="verticalSpacer_17">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="rfGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>RX RF Gain</string>
</property>
<property name="accessibleName">
<string>RF Gain</string>
</property>
<property name="accessibleDescription">
<string>Receiver RF Gain</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_10">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>RF</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
@ -369,446 +310,381 @@
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_9">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer_18">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="afGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>RX AF Gain</string>
</property>
<property name="accessibleName">
<string>AF Gain</string>
</property>
<property name="accessibleDescription">
<string>Receive Audio Level. Sets rig volume on USB rigs, and sets PC volume on LAN rigs.</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_11">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>AF</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_10">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer_19">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="sqlSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Squelch&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleName">
<string>Squelch</string>
</property>
<property name="accessibleDescription">
<string>Squelch control. Top is fully-muted, bottom is wide open.</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_21">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>SQ</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer_20">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="txPowerSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Transmit Power</string>
</property>
<property name="accessibleName">
<string>Transmit Power</string>
</property>
<property name="accessibleDescription">
<string>Transmit power level</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_23">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>TX</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_13">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<spacer name="verticalSpacer_21">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="micGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Mic Gain</string>
</property>
<property name="accessibleName">
<string>Transmit Audio Gain</string>
</property>
<property name="accessibleDescription">
<string>Sets the gain for the transmit audio source, for example mic gain or accessory port gain</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="modSliderLbl">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>Mic</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer_12">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_29">
<item>
<spacer name="verticalSpacer_26">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QSlider" name="monitorSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Set the rado monitor level</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="monitorLabel">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>&lt;a href='#'&gt;Mon&lt;/a&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="openExternalLinks">
<bool>false</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse</set>
</property>
</widget>
<layout class="QHBoxLayout" name="levelsHorizontalLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<property name="topMargin">
<number>0</number>
</property>
<item>
<layout class="QVBoxLayout" name="rfVerticalLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="rfGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>RX RF Gain</string>
</property>
<property name="accessibleName">
<string>RF Gain</string>
</property>
<property name="accessibleDescription">
<string>Receiver RF Gain</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_10">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>RF</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="afVerticalLayout">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="afGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>RX AF Gain</string>
</property>
<property name="accessibleName">
<string>AF Gain</string>
</property>
<property name="accessibleDescription">
<string>Receive Audio Level. Sets rig volume on USB rigs, and sets PC volume on LAN rigs.</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_11">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>AF</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="sqVerticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="sqlSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Squelch&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="accessibleName">
<string>Squelch</string>
</property>
<property name="accessibleDescription">
<string>Squelch control. Top is fully-muted, bottom is wide open.</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_21">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>SQ</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="micVerticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="micGainSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Mic Gain</string>
</property>
<property name="accessibleName">
<string>Transmit Audio Gain</string>
</property>
<property name="accessibleDescription">
<string>Sets the gain for the transmit audio source, for example mic gain or accessory port gain</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="modSliderLbl">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>Mic</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="txVerticalLayout">
<property name="rightMargin">
<number>0</number>
</property>
<item>
<widget class="QSlider" name="txPowerSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Transmit Power</string>
</property>
<property name="accessibleName">
<string>Transmit Power</string>
</property>
<property name="accessibleDescription">
<string>Transmit power level</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_23">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="text">
<string>TX</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="monVerticalLayout">
<item>
<widget class="QSlider" name="monitorSlider">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>100</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Set the rado monitor level</string>
</property>
<property name="maximum">
<number>255</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="monitorLabel">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>15</height>
</size>
</property>
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="text">
<string>&lt;a href='#'&gt;Mon&lt;/a&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::AutoText</enum>
</property>
<property name="openExternalLinks">
<bool>false</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
@ -820,7 +696,7 @@
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_16">
<layout class="QVBoxLayout" name="buttonsVerticalLayout">
<property name="leftMargin">
<number>0</number>
</property>
@ -1095,22 +971,6 @@
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Minimum</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
@ -1245,7 +1105,6 @@
<widget class="QPushButton" name="exitBtn">
<property name="font">
<font>
<weight>50</weight>
<bold>false</bold>
</font>
</property>

Wyświetl plik

@ -164,7 +164,7 @@ CONFIG(debug, release|debug) {
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\qcustomplot\x64\qcustomplotd2.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\portaudio\msvc\x64\Debug\portaudio_x64.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\hidapi\windows\X64\Debug\hidapi.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\x64\DebugDLL\opus.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\x64\DebugDLL\opus-0.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c xcopy /s/y ..\wfview\rigs\*.* wfview-debug\rigs\*.* $$escape_expand(\\n\\t))
LIBS += -L../portaudio/msvc/X64/Debug/ -lportaudio_x64
contains(DEFINES,USB_CONTROLLER){
@ -177,7 +177,7 @@ CONFIG(debug, release|debug) {
QMAKE_POST_LINK +=$$quote(cmd /c copy /y .\qcustomplot\win32\qcustomplotd2.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\portaudio\msvc\win32\Debug\portaudio_x86.dll wfview-debug\$$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\hidapi\windows\Debug\hidapi.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\win32\DebugDLL\opus.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\win32\DebugDLL\opus-0.dll wfview-debug $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c xcopy /s/y ..\wfview\rigs\*.* wfview-debug\rigs\*.* $$escape_expand(\\n\\t))
contains(DEFINES,USB_CONTROLLER){
LIBS += -L../hidapi/windows/debug -lhidapi
@ -204,7 +204,7 @@ CONFIG(debug, release|debug) {
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\qcustomplot\x64\qcustomplot2.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\portaudio\msvc\x64\Release\portaudio_x64.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\hidapi\windows\X64\Release\hidapi.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\x64\ReleaseDLL\opus.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\x64\ReleaseDLL\opus-0.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c xcopy /s/y ..\wfview\rigs\*.* wfview-release\rigs\*.* $$escape_expand(\\n\\t))
contains(DEFINES,USB_CONTROLLER){
LIBS += -L../hidapi/windows/x64/release -lhidapi
@ -216,7 +216,7 @@ CONFIG(debug, release|debug) {
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\qcustomplot\win32\qcustomplot2.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\portaudio\msvc\win32\Release\portaudio_x86.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\hidapi\windows\Release\hidapi.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\win32\ReleaseDLL\opus.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c copy /y ..\opus\win32\VS2015\win32\ReleaseDLL\opus-0.dll wfview-release $$escape_expand(\\n\\t))
QMAKE_POST_LINK +=$$quote(cmd /c xcopy /s/y ..\wfview\rigs\*.* wfview-release\rigs\*.* $$escape_expand(\\n\\t))
contains(DEFINES,USB_CONTROLLER){
win32:LIBS += -L../hidapi/windows/release -lhidapi
@ -287,7 +287,7 @@ SOURCES += main.cpp\
rigctld.cpp \
usbcontroller.cpp \
controllersetup.cpp \
transceiveradjustments.cpp \
# transceiveradjustments.cpp \
selectradio.cpp \
tcpserver.cpp \
cluster.cpp \
@ -345,7 +345,7 @@ HEADERS += wfmain.h \
ulaw.h \
usbcontroller.h \
controllersetup.h \
transceiveradjustments.h \
# transceiveradjustments.h \
audiotaper.h \
selectradio.h \
tcpserver.h \
@ -368,7 +368,7 @@ FORMS += wfmain.ui \
selectradio.ui \
repeatersetup.ui \
settingswidget.ui \
transceiveradjustments.ui \
# transceiveradjustments.ui \
controllersetup.ui \
aboutbox.ui