diff --git a/cluster.cpp b/cluster.cpp new file mode 100644 index 0000000..1cd4a7b --- /dev/null +++ b/cluster.cpp @@ -0,0 +1,88 @@ +#include "cluster.h" +#include "logcategories.h" + + +dxClusterClient::dxClusterClient(QObject* parent): + QObject(parent) +{ + qInfo(logCluster()) << "starting dxClusterClient()"; +} + +dxClusterClient::~dxClusterClient() +{ + qInfo(logCluster()) << "closing dxClusterClient()"; + enableUdp(false); + enableTcp(false); +} + +void dxClusterClient::enableUdp(bool enable) +{ + udpEnable = enable; + if (enable) + { + if (udpSocket == Q_NULLPTR) + { + udpSocket = new QUdpSocket(this); + bool result = udpSocket->bind(QHostAddress::AnyIPv4, udpPort); + qInfo(logCluster()) << "Starting udpSocket() on:" << udpPort << "Result:" << result; + + //udpDataReceived(); + connect(udpSocket, SIGNAL(readyRead()), this, SLOT(udpDataReceived()), Qt::QueuedConnection); + + } + } + else { + if (udpSocket != Q_NULLPTR) + { + udpSocket->disconnect(); + delete udpSocket; + } + } +} + +void dxClusterClient::enableTcp(bool enable) +{ + tcpEnable = enable; +} + +void dxClusterClient::udpDataReceived() +{ + QMutexLocker locker(&udpMutex); // Not sure if this is needed? + + QHostAddress sender; + quint16 port; + QByteArray datagram; + datagram.resize(udpSocket->pendingDatagramSize()); + udpSocket->readDatagram(datagram.data(), datagram.size(), &sender, &port); + + if (udpSpotReader.setContent(datagram)) + { + QDomElement spot = udpSpotReader.firstChildElement("spot"); + if (spot.nodeName() == "spot") + { + // This is a spot? + QString action = spot.firstChildElement("action").text(); + if (action == "add") { + spotData data; + data.dxcall = spot.firstChildElement("dxcall").text(); + data.frequency = spot.firstChildElement("frequency").text().toDouble()/1000.0; + data.spottercall = spot.firstChildElement("spottercall").text(); + data.timestamp = QDateTime::fromString(spot.firstChildElement("timestamp").text()); + data.mode = spot.firstChildElement("mode").text(); + data.comment = spot.firstChildElement("comment").text(); + emit addSpot(data); + qInfo(logCluster()) << "ADD DX=" << data.dxcall << + "SPOTTER=" << data.spottercall << + "FREQ=" << data.frequency << + "MODE=" << data.mode; + } + else if (action == "delete") + { + QString dxcall = spot.firstChildElement("dxcall").text(); + emit deleteSpot(dxcall); + qInfo(logCluster()) << "DELETE DX=" << dxcall; + } + } + } +} + diff --git a/cluster.h b/cluster.h new file mode 100644 index 0000000..45b83ad --- /dev/null +++ b/cluster.h @@ -0,0 +1,63 @@ +#ifndef CLUSTER_H +#define CLUSTER_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct spotData { + QString dxcall; + double frequency; + QString spottercall; + QDateTime timestamp; + QString mode; + QString comment; + QCPItemText* text = Q_NULLPTR; +}; + + +class dxClusterClient : public QObject +{ + Q_OBJECT + +public: + explicit dxClusterClient(QObject* parent = nullptr); + virtual ~dxClusterClient(); + +signals: + void addSpot(spotData spot); + void deleteSpot(QString dxcall); + void deleteOldSpots(int minutes); + +public slots: + void udpDataReceived(); + void enableUdp(bool enable); + void enableTcp(bool enable); + void setUdpPort(int p) { udpPort = p; } + void setTcpServerName(QString s) { tcpServerName = s; } + void setTcpUserName(QString s) { tcpUserName = s; } + void setTcpPassword(QString s) { tcpPassword = s; } + +private: + bool udpEnable; + bool tcpEnable; + QUdpSocket* udpSocket=Q_NULLPTR; + QTcpSocket* tcpSocket=Q_NULLPTR; + int udpPort; + QString tcpServerName; + QString tcpUserName; + QString tcpPassword; + QDomDocument udpSpotReader; + QXmlInputSource udpXmlSource; + QMutex udpMutex; +}; + +#endif diff --git a/logcategories.cpp b/logcategories.cpp index c5a7bdc..88c854e 100644 --- a/logcategories.cpp +++ b/logcategories.cpp @@ -12,3 +12,4 @@ Q_LOGGING_CATEGORY(logUdpServer, "udp.server") Q_LOGGING_CATEGORY(logRigCtlD, "rigctld") Q_LOGGING_CATEGORY(logTcpServer, "tcpserver") Q_LOGGING_CATEGORY(logAudioConverter, "audioconverter") +Q_LOGGING_CATEGORY(logCluster, "cluster") diff --git a/logcategories.h b/logcategories.h index 3fbfae3..7265ef9 100644 --- a/logcategories.h +++ b/logcategories.h @@ -15,6 +15,7 @@ Q_DECLARE_LOGGING_CATEGORY(logUdpServer) Q_DECLARE_LOGGING_CATEGORY(logRigCtlD) Q_DECLARE_LOGGING_CATEGORY(logTcpServer) Q_DECLARE_LOGGING_CATEGORY(logAudioConverter) +Q_DECLARE_LOGGING_CATEGORY(logCluster) #if defined(Q_OS_WIN) && !defined(__PRETTY_FUNCTION__) diff --git a/rigidentities.h b/rigidentities.h index d238a08..d4c4209 100644 --- a/rigidentities.h +++ b/rigidentities.h @@ -106,7 +106,7 @@ struct rigCapabilities { QVector inputs; - bool hasSpectrum; + bool hasSpectrum=true; quint8 spectSeqMax; quint16 spectAmpMax; quint16 spectLenMax; diff --git a/wfmain.cpp b/wfmain.cpp index 57ae12b..9718809 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -71,6 +71,7 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode qRegisterMetaType>(); qRegisterMetaType(); qRegisterMetaType(); + qRegisterMetaType(); haveRigCaps = false; @@ -109,6 +110,22 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode rigConnections(); + cluster = new dxClusterClient(); + + clusterThread = new QThread(this); + + cluster->moveToThread(clusterThread); + + + connect(this, SIGNAL(setClusterEnableUdp(bool)), cluster, SLOT(enableUdp(bool))); + connect(this, SIGNAL(setClusterUdpPort(int)), cluster, SLOT(setUdpPort(int))); + connect(cluster, SIGNAL(addSpot(spotData)), this, SLOT(addClusterSpot(spotData))); + connect(cluster, SIGNAL(deleteSpot(QString)), this, SLOT(deleteClusterSpot(QString))); + connect(clusterThread, SIGNAL(finished()), cluster, SLOT(deleteLater())); + clusterThread->start(); + + emit setClusterUdpPort(12060); + emit setClusterEnableUdp(true); setServerToPrefs(); @@ -128,6 +145,10 @@ wfmain::~wfmain() serverThread->quit(); serverThread->wait(); } + if (clusterThread != Q_NULLPTR) { + clusterThread->quit(); + clusterThread->wait(); + } if (rigCtl != Q_NULLPTR) { delete rigCtl; } @@ -235,8 +256,9 @@ void wfmain::createSettingsListItems() ui->settingsList->addItem("Radio Settings"); // 2 ui->settingsList->addItem("Radio Server"); // 3 ui->settingsList->addItem("External Control"); // 4 - ui->settingsList->addItem("Experimental"); // 5 - //ui->settingsList->addItem("Audio Processing"); // 6 + ui->settingsList->addItem("DX Cluster"); // 5 + ui->settingsList->addItem("Experimental"); // 6 + //ui->settingsList->addItem("Audio Processing"); // 7 ui->settingsStack->setCurrentIndex(0); } @@ -688,6 +710,14 @@ void wfmain::setupPlots() freqIndicatorLine->setAntialiased(true); freqIndicatorLine->setPen(QPen(Qt::blue)); + /* + text = new QCPItemText(plot); + text->setAntialiased(true); + text->setColor(QColor(Qt::red)); + text->setText("TEST"); + text->position->setCoords(14.195, rigCaps.spectAmpMax); + text->setFont(QFont(font().family(), 12)); + */ ui->plot->addGraph(); // primary ui->plot->addGraph(0, 0); // secondary, peaks, same axis as first. @@ -3775,8 +3805,8 @@ void wfmain::receiveSpectrumData(QByteArray spectrum, double startFreq, double e plot->graph(0)->setData(x,y, true); if((freq.MHzDouble < endFreq) && (freq.MHzDouble > startFreq)) { - freqIndicatorLine->start->setCoords(freq.MHzDouble,0); - freqIndicatorLine->end->setCoords(freq.MHzDouble,rigCaps.spectAmpMax); + freqIndicatorLine->start->setCoords(freq.MHzDouble, 0); + freqIndicatorLine->end->setCoords(freq.MHzDouble, rigCaps.spectAmpMax); if (currentModeInfo.mk == modeLSB || currentModeInfo.mk == modePSK_R) { passbandIndicator->topLeft->setCoords(freq.MHzDouble - passBand - 0.0001, 0); @@ -7353,3 +7383,59 @@ errMsg: } + + +void wfmain::clusterCheck() { + +} + +void wfmain::addClusterSpot(spotData spot) { + + spot.text = new QCPItemText(plot); + spot.text->setAntialiased(true); + spot.text->setColor(QColor(Qt::red)); + spot.text->setText(spot.dxcall); + spot.text->setFont(QFont(font().family(), 10)); + spot.text->setPositionAlignment(Qt::AlignTop | Qt::AlignHCenter); + spot.text->setClipAxisRect(false); + spot.text->position->setType(QCPItemPosition::ptPlotCoords); + bool conflict = true; + QCPAxisRect* rect = spot.text->position->axisRect(); + double left = spot.frequency; + double top = rigCaps.spectAmpMax - 50.0; + + /* + while (conflict) { + QCPItemText* textItem = plot->itemAt(QPointF(left,top)); + if (textItem != Q_NULLPTR) { + qInfo(logGui()) << "Found conflicting spot"; + if (top > 20.0) { + top = top - 20.0; + } + else { + top = rigCaps.spectAmpMax - 50.0; + left = left + 0.2; + } + } + else { + conflict = false; + } + } + */ + spot.text->position->setCoords(left, top); + + //QList col_it = spot.text->item(Qt::IntersectsItemBoundingRect); + clusterSpots.insert(spot.dxcall, &spot); + qInfo(logGui()) << "Number of cluster spots" << clusterSpots.size(); +} + +void wfmain::deleteClusterSpot(QString dxcall) { + QMap::iterator spot = clusterSpots.find(dxcall); + while (spot != clusterSpots.end() && spot.key() == dxcall) { + if (spot.value()->text != Q_NULLPTR) + { + plot->removeItem(spot.value()->text); + } + spot = clusterSpots.erase(spot); + } +} \ No newline at end of file diff --git a/wfmain.h b/wfmain.h index 5dd239b..134f9cc 100644 --- a/wfmain.h +++ b/wfmain.h @@ -39,6 +39,7 @@ #include "selectradio.h" #include "colorprefs.h" #include "loggingwindow.h" +#include "cluster.h" #include #include @@ -188,8 +189,13 @@ signals: void sendRigCaps(rigCapabilities caps); void requestRigState(); void stateUpdated(); + void setClusterUdpPort(int port); + void setClusterEnableUdp(bool udp); + void setClusterEnableTcp(bool tcp); private slots: + void addClusterSpot(spotData spot); + void deleteClusterSpot(QString dxcall); void updateSizes(int tabIndex); void shortcutF1(); void shortcutF2(); @@ -652,6 +658,8 @@ private slots: void on_customEdgeBtn_clicked(); + void clusterCheck(); + private: Ui::wfmain *ui; void closeEvent(QCloseEvent *event); @@ -1011,7 +1019,7 @@ private: udpServer* udp = Q_NULLPTR; rigCtlD* rigCtl = Q_NULLPTR; QThread* serverThread = Q_NULLPTR; - + void bandStackBtnClick(); bool waitingForBandStackRtn; char bandStkBand; @@ -1039,6 +1047,12 @@ private: SERVERCONFIG serverConfig; void serverAddUserLine(const QString& user, const QString& pass, const int& type); + dxClusterClient* cluster = Q_NULLPTR; + QThread* clusterThread = Q_NULLPTR; + QMap clusterSpots; + QTimer clusterTimer; + QCPItemText* text=Q_NULLPTR; + }; Q_DECLARE_METATYPE(struct rigCapabilities) @@ -1052,6 +1066,7 @@ Q_DECLARE_METATYPE(struct timekind) Q_DECLARE_METATYPE(struct datekind) Q_DECLARE_METATYPE(struct networkStatus) Q_DECLARE_METATYPE(struct networkAudioLevels) +Q_DECLARE_METATYPE(struct spotData) Q_DECLARE_METATYPE(enum rigInput) Q_DECLARE_METATYPE(enum meterKind) Q_DECLARE_METATYPE(enum spectrumMode) diff --git a/wfmain.ui b/wfmain.ui index 62de972..3effdd7 100644 --- a/wfmain.ui +++ b/wfmain.ui @@ -2223,7 +2223,7 @@ - 1 + 5 @@ -3343,8 +3343,8 @@ 0 0 - 853 - 311 + 542 + 217 @@ -4845,6 +4845,141 @@ + + + true + + + + + 0 + 10 + 831 + 21 + + + + + + + This page contains configuration for DX Cluster, either UDP style broadcast (from N1MM+/DXlog) or TCP connection to your favourite cluster + + + + + + + + + 10 + 50 + 201 + 181 + + + + UDP Broadcast Connection + + + + + 20 + 40 + 161 + 121 + + + + + + + UDP Port + + + + + + + 00000 + + + + + + + Enable + + + + + + + + + + 330 + 50 + 241 + 181 + + + + TCP Cluster Connection + + + + + 20 + 40 + 201 + 121 + + + + + + + Server Name + + + + + + + + + + Username + + + + + + + + + + Password + + + + + + + + + + Enable + + + + + + + groupBox_9 + horizontalLayoutWidget + groupBox_10 + @@ -4903,7 +5038,11 @@ - + + + true + + diff --git a/wfview.pro b/wfview.pro index fdf1b11..3f1247b 100644 --- a/wfview.pro +++ b/wfview.pro @@ -4,7 +4,7 @@ # #------------------------------------------------- -QT += core gui serialport network multimedia +QT += core gui serialport network multimedia xml greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport @@ -174,6 +174,7 @@ SOURCES += main.cpp\ transceiveradjustments.cpp \ selectradio.cpp \ tcpserver.cpp \ + cluster.cpp \ aboutbox.cpp HEADERS += wfmain.h \ @@ -210,6 +211,7 @@ HEADERS += wfmain.h \ audiotaper.h \ selectradio.h \ tcpserver.h \ + cluster.h \ aboutbox.h diff --git a/wfview.vcxproj b/wfview.vcxproj index 69b22ec..c1cebb0 100644 --- a/wfview.vcxproj +++ b/wfview.vcxproj @@ -16,7 +16,8 @@ QtVS_v304 10.0.19041.0 10.0.19041.0 - $(MSBuildProjectDirectory)\QtMsBuild + $(MSBuildProjectDirectory)\QtMsBuild + v142 @@ -36,7 +37,10 @@ debug\ wfview - + + + + @@ -44,8 +48,34 @@ - wfview-debug\debug\wfviewtruewfview-release\release\wfviewtruefalsemsvc2019core;network;gui;multimedia;widgets;serialport;printsupportmsvc2019core;network;gui;multimedia;widgets;serialport;printsupport - + + + + + + wfview-debug\ + debug\ + wfview + true + + + wfview-release\ + release\ + wfview + true + false + + + msvc2019 + core;xml;network;gui;multimedia;widgets;serialport;printsupport + + + msvc2019 + core;xml;network;gui;multimedia;widgets;serialport;printsupport;xml + + + + .;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;release;/include;%(AdditionalIncludeDirectories) @@ -57,14 +87,16 @@ Sync release\ MaxSpeed - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.45";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX="/usr/local";GITSHORT="8638086";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.50";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX="/usr/local";GITSHORT="cef827f";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) false - + + MultiThreadedDLL true true Level3 - true + true + ..\portaudio\msvc\Win32\Release\portaudio_x86.lib;ole32.lib;..\opus\win32\VS2015\Win32\Release\opus.lib;shell32.lib;%(AdditionalDependencies) ..\portaudio\msvc\Win32\Release;..\opus\win32\VS2015\Win32\Release;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories) @@ -85,9 +117,28 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.45\";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX=\"/usr/local\";GITSHORT=\"8638086\";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) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.50\";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX=\"/usr/local\";GITSHORT=\"cef827f\";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_XML_LIB;QT_CORE_LIB;%(PreprocessorDefinitions) - msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + Uic'ing %(Identity)... + $(ProjectDir) + ui_%(Filename).h + + .;..\rtaudio;..\portaudio\include;..\qcustomplot;..\opus\include;..\eigen;..\r8brain-free-src;resampler;debug;/include;%(AdditionalIncludeDirectories) @@ -99,13 +150,14 @@ Sync debug\ Disabled - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.45";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX="/usr/local";GITSHORT="8638086";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION="1.50";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX="/usr/local";GITSHORT="cef827f";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) false MultiThreadedDebugDLL true true Level3 - true + true + ..\portaudio\msvc\Win32\Debug\portaudio_x86.lib;ole32.lib;..\opus\win32\VS2015\Win32\Debug\opus.lib;shell32.lib;%(AdditionalDependencies) ..\portaudio\msvc\Win32\Debug;..\opus\win32\VS2015\Win32\Debug;C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories) @@ -124,15 +176,35 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.45\";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX=\"/usr/local\";GITSHORT=\"8638086\";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) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;WFVIEW_VERSION=\"1.50\";BUILD_WFVIEW;__WINDOWS_WASAPI__;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;USE_SSE2;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;EIGEN_MPL2_ONLY;EIGEN_DONT_VECTORIZE;EIGEN_VECTORIZE_SSE3;PREFIX=\"/usr/local\";GITSHORT=\"cef827f\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_XML_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions) - msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h + + msvc + ./$(Configuration)/moc_predefs.h + Moc'ing %(Identity)... + output + $(Configuration) + moc_%(Filename).cpp + + + default + Rcc'ing %(Identity)... + $(Configuration) + qrc_%(Filename).cpp + + + Uic'ing %(Identity)... + $(ProjectDir) + ui_%(Filename).h + + + @@ -163,275 +235,69 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Document true @@ -448,139 +314,23 @@ release\moc_predefs.h;%(Outputs) true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -614,30 +364,16 @@ - - - - - - - - - - resourcesresources + resources + resources + - - - - - - - - - - stylestyle + style + style + @@ -651,6 +387,9 @@ - + + + + \ No newline at end of file diff --git a/wfview.vcxproj.filters b/wfview.vcxproj.filters index 52a8284..e12f9bb 100644 --- a/wfview.vcxproj.filters +++ b/wfview.vcxproj.filters @@ -62,6 +62,9 @@ Source Files + + Source Files + Source Files @@ -163,6 +166,9 @@ Header Files + + Header Files + Header Files @@ -255,72 +261,12 @@ - - - - - - - - - - - - - - - - Generated Files Generated Files - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -480,6 +426,6 @@ - + \ No newline at end of file diff --git a/wfview.vcxproj.user b/wfview.vcxproj.user index 58abce7..c43779f 100644 --- a/wfview.vcxproj.user +++ b/wfview.vcxproj.user @@ -7,9 +7,9 @@ PATH=$(QTDIR)\bin%3bC:\QT\5.15.2\MSVC2019\bin%3b$(QTDIR)\bin%3bC:\QT\5.15.2\MSVC2019\bin%3b$(PATH) - 2022-09-28T16:29:42.1921277Z + 2022-09-28T20:42:59.6856379Z - 2022-09-28T16:29:42.4500038Z + 2022-09-28T20:43:18.7088049Z \ No newline at end of file