More work on multi-radio support

merge-requests/9/merge
Phil Taylor 2022-01-21 23:58:18 +00:00
rodzic 41e90bb309
commit 96de9c55fa
15 zmienionych plików z 460 dodań i 214 usunięć

Wyświetl plik

@ -139,7 +139,8 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs, aud
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(int, QString, QString)), this, SLOT(radioUsage(int, QString, QString)));
connect(udp, SIGNAL(setRadioUsage(int, bool, QString, QString)), this, SLOT(radioUsage(int, bool, QString, QString)));
connect(this, SIGNAL(selectedRadio(int)), udp, SLOT(setCurrentRadio(int)));
emit haveAfGain(rxSetup.localAFgain);
localVolume = rxSetup.localAFgain;
}
@ -4284,10 +4285,13 @@ void rigCommander::radioSelection(QList<radio_cap_packet> radios)
emit requestRadioSelection(radios);
}
void rigCommander::radioUsage(int radio, QString user, QString ip) {
emit setRadioUsage(radio, user, ip);
void rigCommander::radioUsage(int radio, bool busy, QString user, QString ip) {
emit setRadioUsage(radio, busy, user, ip);
}
void rigCommander::setCurrentRadio(int radio) {
emit selectedRadio(radio);
}
void rigCommander::stateUpdated()
{

Wyświetl plik

@ -274,7 +274,8 @@ public slots:
// Housekeeping:
void handleStatusUpdate(const QString text);
void radioSelection(QList<radio_cap_packet> radios);
void radioUsage(int radio, QString name, QString ip);
void radioUsage(int radio, bool busy, QString name, QString ip);
void setCurrentRadio(int radio);
void sendState();
void getDebug();
@ -368,7 +369,8 @@ signals:
// Housekeeping:
void requestRadioSelection(QList<radio_cap_packet> radios);
void setRadioUsage(int radio, QString user, QString ip);
void setRadioUsage(int radio, bool busy, QString user, QString ip);
void selectedRadio(int radio);
void getMoreDebug();
void finished();

Wyświetl plik

@ -18,16 +18,24 @@ selectRadio::~selectRadio()
void selectRadio::populate(QList<radio_cap_packet> radios)
{
ui->table->clearContents();
for (int row = ui->table->rowCount() - 1;row>=0; row--) {
ui->table->removeRow(row);
}
for (int row = 0; row < radios.count(); row++) {
ui->table->insertRow(ui->table->rowCount());
ui->table->setItem(ui->table->rowCount() - 1, 0, new QTableWidgetItem(QString(radios[row].name)));
ui->table->setItem(ui->table->rowCount() - 1, 1, new QTableWidgetItem(QString("%1").arg((unsigned char)radios[row].civ, 2, 16, QLatin1Char('0')).toUpper()));
ui->table->setItem(ui->table->rowCount() - 1, 2, new QTableWidgetItem(QString::number(qFromBigEndian(radios[row].baudrate))));
ui->table->setItem(row, 0, new QTableWidgetItem(QString(radios[row].name)));
ui->table->setItem(row, 1, new QTableWidgetItem(QString("%1").arg((unsigned char)radios[row].civ, 2, 16, QLatin1Char('0')).toUpper()));
ui->table->setItem(row, 2, new QTableWidgetItem(QString::number(qFromBigEndian(radios[row].baudrate))));
}
}
void selectRadio::setInUse(int radio, QString user, QString ip)
void selectRadio::setInUse(int radio, bool busy, QString user, QString ip)
{
if ((radio > 0)&& !this->isVisible()) {
qInfo() << "setInUse: radio:" << radio <<"busy" << busy << "user" << user << "ip"<<ip;
this->setVisible(true);
}
ui->table->setItem(radio, 3, new QTableWidgetItem(user));
ui->table->setItem(radio, 4, new QTableWidgetItem(ip));
}
@ -36,7 +44,10 @@ void selectRadio::on_table_cellClicked(int row, int col) {
qInfo() << "Clicked on " << row << "," << col;
ui->table->selectRow(row);
emit selectedRadio(row);
this->setVisible(false);
}
void selectRadio::on_table_sectionClicked(int index) {
qInfo() << "Section Clicked" << index;
void selectRadio::on_cancelButton_clicked() {
this->setVisible(false);
}

Wyświetl plik

@ -22,8 +22,8 @@ public:
public slots:
void on_table_cellClicked(int row, int col);
void on_table_sectionClicked(int index);
void setInUse(int radio, QString user, QString ip);
void setInUse(int radio, bool busy, QString user, QString ip);
void on_cancelButton_clicked();
signals:
void selectedRadio(int radio);

Wyświetl plik

@ -49,7 +49,7 @@
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderStretchLastSection">
<bool>true</bool>
<bool>false</bool>
</attribute>
<column>
<property name="text">

Wyświetl plik

@ -327,12 +327,12 @@ void udpHandler::dataReceived()
conninfo_packet_t in = (conninfo_packet_t)r.constData();
QHostAddress ip = QHostAddress(qToBigEndian(in->ipaddress));
qInfo(logUdp()) << "Got Connection status for:" << in->name << "Computer" << in->computer << "User" << in->username << "IP" << ip.toString() << "GUID" << in->guid;
qInfo(logUdp()) << "Got Connection status for:" << in->name << "Busy:" << in->busy << "Computer" << in->computer << "IP" << ip.toString() << "GUID" << in->guid;
// First we need to find this radio in our capabilities packet, there aren't many so just step through
for (int f = 0; f < radios.length(); f++)
{
if ((radios[f].commoncap == 0x8010 &&
if ((radios[f].commoncap == 0x8010 &&
radios[f].macaddress[0] == in->macaddress[0] &&
radios[f].macaddress[1] == in->macaddress[1] &&
radios[f].macaddress[2] == in->macaddress[2] &&
@ -341,14 +341,12 @@ void udpHandler::dataReceived()
radios[f].macaddress[5] == in->macaddress[5]) ||
(QUuid)radios[f].guid == (QUuid)in->guid)
{
emit setRadioUsage(f,QString(in->computer),ip.toString());
emit setRadioUsage(f, (bool)in->busy, QString(in->computer), ip.toString());
}
}
if (in->type != 0x01 && numRadios == 1) {
if (in->type != 0x01 && !streamOpened) {
devName = in->name;
QHostAddress ip = QHostAddress(qToBigEndian(in->ipaddress));
if (!streamOpened && in->busy)
if (!streamOpened && in->busy && numRadios == 1 )
{
if (in->ipaddress != 0x00 && strcmp(in->computer, compName.toLocal8Bit()))
{
@ -356,32 +354,7 @@ void udpHandler::dataReceived()
sendControl(false, 0x00, in->seq); // Respond with an idle
}
else {
civ = new udpCivData(localIP, radioIP, civPort);
// TX is not supported
if (txSampleRates <2 ) {
txSetup.samplerate = 0;
txSetup.codec = 0;
}
audio = new udpAudio(localIP, radioIP, audioPort, rxSetup, txSetup);
QObject::connect(civ, SIGNAL(receive(QByteArray)), this, SLOT(receiveFromCivStream(QByteArray)));
QObject::connect(audio, SIGNAL(haveAudioData(audioPacket)), this, SLOT(receiveAudioData(audioPacket)));
QObject::connect(this, SIGNAL(haveChangeLatency(quint16)), audio, SLOT(changeLatency(quint16)));
QObject::connect(this, SIGNAL(haveSetVolume(unsigned char)), audio, SLOT(setVolume(unsigned char)));
streamOpened = true;
emit haveNetworkStatus(devName);
qInfo(logUdp()) << this->metaObject()->className() << "Got serial and audio request success, device name: " << devName;
// Stuff can change in the meantime because of a previous login...
remoteId = in->sentid;
myId = in->rcvdid;
tokRequest = in->tokrequest;
token = in->token;
setCurrentRadio(0);
}
}
else if (!streamOpened && !in->busy)
@ -389,7 +362,6 @@ void udpHandler::dataReceived()
emit haveNetworkStatus(devName + " available");
memcpy(macaddress, in->macaddress, 6);
sendRequestStream();
}
else if (streamOpened)
@ -411,7 +383,6 @@ void udpHandler::dataReceived()
break;
}
int baudrate = 0;
capabilities_packet_t in = (capabilities_packet_t)r.constData();
numRadios = in->numradios;
@ -420,11 +391,6 @@ void udpHandler::dataReceived()
radio_cap_packet rad;
const char* tmpRad = r.constData();
memcpy(&rad, tmpRad+f, RADIO_CAP_SIZE);
devName = rad.name;
audioType = rad.audio;
civId = rad.civ;
rxSampleRates = rad.rxsample;
txSampleRates = rad.txsample;
radios.append(rad);
}
for(const radio_cap_packet radio : radios)
@ -442,11 +408,8 @@ void udpHandler::dataReceived()
// GUID not MAC address
qInfo(logUdp()) << this->metaObject()->className() << "Radio GUID" << radio.guid;
}
baudrate = qFromBigEndian(radio.baudrate);
}
emit requestRadioSelection(radios);
emit haveBaudRate(baudrate);
break;
}
@ -460,6 +423,52 @@ void udpHandler::dataReceived()
}
void udpHandler::setCurrentRadio(int radio) {
if (!streamOpened) {
qInfo(logUdp()) << "Got Radio" << radio;
int baudrate = qFromBigEndian(radios[radio].baudrate);
emit haveBaudRate(baudrate);
if (radios[radio].commoncap == 0x8010) {
memcpy(macaddress, radios[radio].macaddress, 6);
useGuid = false;
}
else {
useGuid = true;
guid = radios[radio].guid;
}
devName =radios[radio].name;
audioType = radios[radio].audio;
civId = radios[radio].civ;
rxSampleRates = radios[radio].rxsample;
txSampleRates = radios[radio].txsample;
civ = new udpCivData(localIP, radioIP, civPort);
// TX is not supported
if (txSampleRates < 2) {
txSetup.samplerate = 0;
txSetup.codec = 0;
}
audio = new udpAudio(localIP, radioIP, audioPort, rxSetup, txSetup);
QObject::connect(civ, SIGNAL(receive(QByteArray)), this, SLOT(receiveFromCivStream(QByteArray)));
QObject::connect(audio, SIGNAL(haveAudioData(audioPacket)), this, SLOT(receiveAudioData(audioPacket)));
QObject::connect(this, SIGNAL(haveChangeLatency(quint16)), audio, SLOT(changeLatency(quint16)));
QObject::connect(this, SIGNAL(haveSetVolume(unsigned char)), audio, SLOT(setVolume(unsigned char)));
streamOpened = true;
emit haveNetworkStatus(devName);
qInfo(logUdp()) << this->metaObject()->className() << "Got serial and audio request success, device name: " << devName;
sendRequestStream();
}
}
void udpHandler::sendRequestStream()
{
@ -473,8 +482,13 @@ void udpHandler::sendRequestStream()
p.rcvdid = remoteId;
p.code = 0x0180;
p.res = 0x03;
p.commoncap = 0x8010;
memcpy(p.macaddress, macaddress, 6);
if (!useGuid) {
p.commoncap = 0x8010;
memcpy(p.macaddress, macaddress, 6);
}
else {
p.guid = guid;
}
p.innerseq = authSeq++;
p.tokrequest = tokRequest;
p.token = token;

Wyświetl plik

@ -219,6 +219,8 @@ public slots:
void changeLatency(quint16 value);
void setVolume(unsigned char value);
void init();
void setCurrentRadio(int radio);
signals:
void haveDataFromPort(QByteArray data); // emit this when we have data, connect to rigcommander
@ -229,7 +231,7 @@ signals:
void haveNetworkStatus(QString);
void haveBaudRate(quint32 baudrate);
void requestRadioSelection(QList<radio_cap_packet> radios);
void setRadioUsage(int, QString name, QString mac);
void setRadioUsage(int, bool busy, QString name, QString mac);
private:
void sendAreYouThere();
@ -265,7 +267,8 @@ private:
quint32 token;
// These are for stream ident info.
quint8 macaddress[8];
GUID guid;
bool useGuid = false;
QByteArray usernameEncoded;
QByteArray passwordEncoded;

Wyświetl plik

@ -422,8 +422,8 @@ void wfmain::makeRig()
connect(rig, SIGNAL(haveSerialPortError(QString, QString)), this, SLOT(receiveSerialPortError(QString, QString)));
connect(rig, SIGNAL(haveStatusUpdate(QString)), this, SLOT(receiveStatusUpdate(QString)));
connect(rig, SIGNAL(requestRadioSelection(QList<radio_cap_packet>)), this, SLOT(radioSelection(QList<radio_cap_packet>)));
connect(rig, SIGNAL(setRadioUsage(int, QString, QString)), selRad, SLOT(setInUse(int, QString, QString)));
connect(rig, SIGNAL(setRadioUsage(int, bool, QString, QString)), selRad, SLOT(setInUse(int, bool, QString, QString)));
connect(selRad, SIGNAL(selectedRadio(int)), rig, SLOT(setCurrentRadio(int)));
// Rig comm setup:
connect(this, SIGNAL(sendCommSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString)), rig, SLOT(commSetup(unsigned char, udpPreferences, audioSetup, audioSetup, QString)));
connect(this, SIGNAL(sendCommSetup(unsigned char, QString, quint32,QString)), rig, SLOT(commSetup(unsigned char, QString, quint32,QString)));
@ -5755,7 +5755,18 @@ void wfmain::on_setClockBtn_clicked()
void wfmain::radioSelection(QList<radio_cap_packet> radios)
{
selRad->populate(radios);
selRad->setVisible(true);
}
void wfmain::on_radioStatusBtn_clicked()
{
if (selRad->isVisible())
{
selRad->hide();
}
else
{
selRad->show();
}
}
// --- DEBUG FUNCTION ---

Wyświetl plik

@ -523,6 +523,8 @@ private slots:
void on_useRTSforPTTchk_clicked(bool checked);
void on_radioStatusBtn_clicked();
private:
Ui::wfmain *ui;
void closeEvent(QCloseEvent *event);

Wyświetl plik

@ -3634,6 +3634,13 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="radioStatusBtn">
<property name="text">
<string>Radio Status</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
@ -3671,7 +3678,7 @@
<x>0</x>
<y>0</y>
<width>946</width>
<height>22</height>
<height>21</height>
</rect>
</property>
</widget>

Wyświetl plik

@ -105,9 +105,9 @@ unix:target.path = $$PREFIX/bin
INSTALLS += target
# Why doesn't this seem to do anything?
DISTFILES += resources/wfview.png \
unix:DISTFILES += resources/wfview.png \
resources/install.sh
DISTFILES += resources/wfview.desktop
unix:DISTFILES += resources/wfview.desktop
unix:applications.files = resources/wfview.desktop
unix:applications.path = $$PREFIX/share/applications

Wyświetl plik

@ -5,8 +5,6 @@ VisualStudioVersion = 16.0.30804.86
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wfview", "wfview.vcxproj", "{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wfserver", "wfserver.vcxproj", "{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
@ -17,10 +15,6 @@ Global
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|x86.Build.0 = Debug|Win32
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x86.ActiveCfg = Release|Win32
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x86.Build.0 = Release|Win32
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x86.ActiveCfg = Debug|Win32
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x86.Build.0 = Debug|Win32
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|x86.ActiveCfg = Release|Win32
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Wyświetl plik

@ -16,8 +16,7 @@
<Keyword>QtVS_v304</Keyword>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
</PropertyGroup>
<QtMsBuild Condition="'$(QtMsBuild)'=='' or !Exists('$(QtMsBuild)\qt.targets')">$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild></PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<PlatformToolset>v142</PlatformToolset>
@ -37,10 +36,7 @@
<IntermediateDirectory>debug\</IntermediateDirectory>
<PrimaryOutput>wfview</PrimaryOutput>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
<Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
</Target>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /><Target Name="QtMsBuildNotFound" BeforeTargets="CustomBuild;ClCompile" Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')"><Message Importance="High" Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." /></Target>
<ImportGroup Label="ExtensionSettings" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
@ -48,34 +44,8 @@
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
<Import Project="$(QtMsBuild)\qt_defaults.props" />
</ImportGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>debug\</OutDir>
<IntDir>debug\</IntDir>
<TargetName>wfview</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>release\</OutDir>
<IntDir>release\</IntDir>
<TargetName>wfview</TargetName>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QtInstall>msvc2019</QtInstall>
<QtModules>core;network;gui;multimedia;widgets;serialport;printsupport</QtModules>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QtInstall>msvc2019</QtInstall>
<QtModules>core;network;gui;multimedia;widgets;serialport;printsupport</QtModules>
</PropertyGroup>
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
<Import Project="$(QtMsBuild)\qt.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')"><Import Project="$(QtMsBuild)\qt_defaults.props" /></ImportGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"><OutDir>debug\</OutDir><IntDir>debug\</IntDir><TargetName>wfview</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary></PropertyGroup><PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"><OutDir>release\</OutDir><IntDir>release\</IntDir><TargetName>wfview</TargetName><IgnoreImportLibrary>true</IgnoreImportLibrary><LinkIncremental>false</LinkIncremental></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"><QtInstall>msvc2019</QtInstall><QtModules>core;network;gui;multimedia;widgets;serialport;printsupport</QtModules></PropertyGroup><PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"><QtInstall>msvc2019</QtInstall><QtModules>core;network;gui;multimedia;widgets;serialport;printsupport</QtModules></PropertyGroup><ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')"><Import Project="$(QtMsBuild)\qt.props" /></ImportGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>.;..\qcustomplot;..\opus\include;resampler;release;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -87,16 +57,14 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>release\</ObjectFileName>
<Optimization>MaxSpeed</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.2d";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";GITSHORT="9f059c9";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.2d";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";GITSHORT="41e90bb";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<ProgramDataBaseFileName>
</ProgramDataBaseFileName>
<ProgramDataBaseFileName></ProgramDataBaseFileName>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
<Link>
<AdditionalDependencies>..\opus\win32\VS2015\Win32\Release\opus.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\opus\win32\VS2015\Win32\Release;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
@ -117,28 +85,9 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.2d\";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";GITSHORT=\"9f059c9\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.2d\";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";GITSHORT=\"41e90bb\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<Compression>default</Compression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>$(ProjectDir)</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>.;..\qcustomplot;..\opus\include;resampler;debug;/include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ -150,14 +99,13 @@
<ExceptionHandling>Sync</ExceptionHandling>
<ObjectFileName>debug\</ObjectFileName>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.2d";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";GITSHORT="9f059c9";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.2d";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";GITSHORT="41e90bb";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessToFile>false</PreprocessToFile>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<SuppressStartupBanner>true</SuppressStartupBanner>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level3</WarningLevel>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
</ClCompile>
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
<Link>
<AdditionalDependencies>..\opus\win32\VS2015\Win32\Debug\opus.lib;shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\opus\win32\VS2015\Win32\Debug;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
@ -176,28 +124,9 @@
<WarningLevel>0</WarningLevel>
</Midl>
<ResourceCompile>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.2d\";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";GITSHORT=\"9f059c9\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.2d\";BUILD_WFVIEW;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";GITSHORT=\"41e90bb\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<QtMoc>
<CompilerFlavor>msvc</CompilerFlavor>
<Include>./$(Configuration)/moc_predefs.h</Include>
<ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription>
<DynamicSource>output</DynamicSource>
<QtMocDir>$(Configuration)</QtMocDir>
<QtMocFileName>moc_%(Filename).cpp</QtMocFileName>
</QtMoc>
<QtRcc>
<Compression>default</Compression>
<ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription>
<QtRccDir>$(Configuration)</QtRccDir>
<QtRccFileName>qrc_%(Filename).cpp</QtRccFileName>
</QtRcc>
<QtUic>
<ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription>
<QtUicDir>$(ProjectDir)</QtUicDir>
<QtUicFileName>ui_%(Filename).h</QtUicFileName>
</QtUic>
</ItemDefinitionGroup>
<QtMoc><CompilerFlavor>msvc</CompilerFlavor><Include>./$(Configuration)/moc_predefs.h</Include><ExecutionDescription>Moc'ing %(Identity)...</ExecutionDescription><DynamicSource>output</DynamicSource><QtMocDir>$(Configuration)</QtMocDir><QtMocFileName>moc_%(Filename).cpp</QtMocFileName></QtMoc><QtRcc><Compression>default</Compression><ExecutionDescription>Rcc'ing %(Identity)...</ExecutionDescription><QtRccDir>$(Configuration)</QtRccDir><QtRccFileName>qrc_%(Filename).cpp</QtRccFileName></QtRcc><QtUic><ExecutionDescription>Uic'ing %(Identity)...</ExecutionDescription><QtUicDir>$(ProjectDir)</QtUicDir><QtUicFileName>ui_%(Filename).h</QtUicFileName></QtUic></ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="aboutbox.cpp" />
<ClCompile Include="audiohandler.cpp" />
@ -225,51 +154,198 @@
</ItemGroup>
<ItemGroup>
<QtMoc Include="aboutbox.h">
</QtMoc>
<ClInclude Include="resampler\arch.h" />
<QtMoc Include="audiohandler.h">
</QtMoc>
<ClInclude Include="audiotaper.h" />
<QtMoc Include="calibrationwindow.h">
</QtMoc>
<QtMoc Include="commhandler.h">
</QtMoc>
<ClInclude Include="freqmemory.h" />
<ClInclude Include="logcategories.h" />
<QtMoc Include="meter.h">
</QtMoc>
<ClInclude Include="packettypes.h" />
<QtMoc Include="pttyhandler.h">
</QtMoc>
<QtMoc Include="..\qcustomplot\qcustomplot.h">
</QtMoc>
<QtMoc Include="qledlabel.h">
</QtMoc>
<ClInclude Include="repeaterattributes.h" />
<QtMoc Include="repeatersetup.h">
</QtMoc>
<ClInclude Include="resampler\resample_sse.h" />
<QtMoc Include="rigcommander.h">
</QtMoc>
<QtMoc Include="rigctld.h">
</QtMoc>
<ClInclude Include="rigidentities.h" />
<ClInclude Include="ring\ring.h" />
<QtMoc Include="satellitesetup.h">
</QtMoc>
<QtMoc Include="selectradio.h">
</QtMoc>
<ClInclude Include="resampler\speex_resampler.h" />
<QtMoc Include="transceiveradjustments.h">
</QtMoc>
<QtMoc Include="udphandler.h">
</QtMoc>
<QtMoc Include="udpserver.h">
</QtMoc>
<QtMoc Include="selectradio.h" />
<ClInclude Include="ulaw.h" />
<QtMoc Include="wfmain.h">
</QtMoc>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<FileType>Document</FileType>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
@ -286,22 +362,119 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">release\moc_predefs.h;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
</QtUic>
<QtUic Include="calibrationwindow.ui">
</QtUic>
<QtUic Include="repeatersetup.ui">
</QtUic>
<QtUic Include="satellitesetup.ui">
</QtUic>
<QtUic Include="selectradio.ui">
</QtUic>
<QtUic Include="selectradio.ui" />
<QtUic Include="transceiveradjustments.ui">
</QtUic>
<QtUic Include="udpserversetup.ui">
</QtUic>
<QtUic Include="wfmain.ui">
</QtUic>
</ItemGroup>
<ItemGroup>
@ -335,16 +508,30 @@
<None Include="qdarkstyle\rc\radio_unchecked_disabled.png" />
<None Include="qdarkstyle\rc\radio_unchecked_focus.png" />
<QtRcc Include="resources\resources.qrc">
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">resources</InitFuncName>
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">resources</InitFuncName>
</QtRcc>
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">resources</InitFuncName><InitFuncName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">resources</InitFuncName></QtRcc>
<None Include="qdarkstyle\rc\right_arrow.png" />
<None Include="qdarkstyle\rc\right_arrow_disabled.png" />
<None Include="qdarkstyle\rc\sizegrip.png" />
<QtRcc Include="qdarkstyle\style.qrc">
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">style</InitFuncName>
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">style</InitFuncName>
</QtRcc>
<InitFuncName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">style</InitFuncName><InitFuncName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">style</InitFuncName></QtRcc>
<None Include="qdarkstyle\style.qss" />
<None Include="qdarkstyle\rc\stylesheet-branch-end.png" />
<None Include="qdarkstyle\rc\stylesheet-branch-more.png" />
@ -355,17 +542,9 @@
<None Include="qdarkstyle\rc\up_arrow_disabled.png" />
<None Include="resources\wfview.png" />
</ItemGroup>
<ItemGroup>
<None Include="resources\install.sh" />
<None Include="resources\wfview.desktop" />
<None Include="resources\wfview.png" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include=".\wfview_resource.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
<Import Project="$(QtMsBuild)\qt.targets" />
</ImportGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /><ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')"><Import Project="$(QtMsBuild)\qt.targets" /></ImportGroup>
<ImportGroup Label="ExtensionTargets" />
</Project>

Wyświetl plik

@ -45,16 +45,6 @@
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Distribution Files">
<UniqueIdentifier>{B83CAF91-C7BF-462F-B76C-EA11631F866C}</UniqueIdentifier>
<Extensions>*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
<Filter Include="Distribution Files">
<UniqueIdentifier>{B83CAF91-C7BF-462F-B76C-EA11631F866C}</UniqueIdentifier>
<Extensions>*</Extensions>
<ParseFiles>false</ParseFiles>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="aboutbox.cpp">
@ -111,6 +101,9 @@
<ClCompile Include="satellitesetup.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="selectradio.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="transceiveradjustments.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -123,9 +116,6 @@
<ClCompile Include="wfmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="selectradio.cpp">
<Filter>Generated Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<QtMoc Include="aboutbox.h">
@ -191,6 +181,9 @@
<QtMoc Include="satellitesetup.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="selectradio.h">
<Filter>Header Files</Filter>
</QtMoc>
<ClInclude Include="resampler\speex_resampler.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -209,17 +202,59 @@
<QtMoc Include="wfmain.h">
<Filter>Header Files</Filter>
</QtMoc>
<QtMoc Include="selectradio.h">
<Filter>Generated Files</Filter>
</QtMoc>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="debug\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
<CustomBuild Include="release\moc_predefs.h.cbt">
<Filter>Generated Files</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<QtUic Include="aboutbox.ui">
@ -234,18 +269,15 @@
<QtUic Include="satellitesetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="selectradio.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="transceiveradjustments.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="udpserversetup.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="wfmain.ui">
<Filter>Form Files</Filter>
</QtUic>
<QtUic Include="selectradio.ui">
<Filter>Form Files</Filter>
</QtUic>
</ItemGroup>
<ItemGroup>
<None Include="qdarkstyle\rc\Hmovetoolbar.png">
@ -377,21 +409,8 @@
<None Include="resources\wfview.png">
<Filter>Resource Files</Filter>
</None>
<None Include="resources\wfview.png" />
<None Include="resources\wfview.png" />
</ItemGroup>
<ItemGroup>
<None Include="resources\install.sh">
<Filter>Distribution Files</Filter>
</None>
<None Include="resources\wfview.desktop">
<Filter>Distribution Files</Filter>
</None>
<None Include="resources\wfview.png">
<Filter>Distribution Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include=".\wfview_resource.rc" />
<ResourceCompile Include="C:\Users\Phil\source\repos\wfview\wfview_resource.rc" />
</ItemGroup>
</Project>

Wyświetl plik

@ -7,9 +7,9 @@
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3bC:\QT\5.15.2\MSVC2019\bin%3b$(QTDIR)\bin%3bC:\QT\5.15.2\MSVC2019\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<QtLastBackgroundBuild>2021-11-22T18:24:33.3752914Z</QtLastBackgroundBuild>
<QtLastBackgroundBuild>2022-01-21T23:07:22.7167866Z</QtLastBackgroundBuild>
</PropertyGroup>
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<QtLastBackgroundBuild>2021-11-22T18:24:41.6960953Z</QtLastBackgroundBuild>
<QtLastBackgroundBuild>2022-01-21T23:07:24.1030588Z</QtLastBackgroundBuild>
</PropertyGroup>
</Project>