diff --git a/audiohandler.cpp b/audiohandler.cpp index 71d13f3..f9c31d3 100644 --- a/audiohandler.cpp +++ b/audiohandler.cpp @@ -782,6 +782,7 @@ bool audioHandler::init(const quint8 bits, const quint8 channels, const quint16 this->chunkSize = (INTERNAL_SAMPLE_RATE / 25) * radioChannels; qInfo(logAudio()) << (isInput ? "Input" : "Output") << "chunkSize: " << this->chunkSize; + qInfo(logAudio()) << (isInput ? "Input" : "Output") << "bufferLength (latency): " << this->latency; int resample_error=0; @@ -901,7 +902,11 @@ void audioHandler::reinit() audioOutput = new QAudioOutput(deviceInfo, format, this); // This seems to only be needed on Linux but is critical in aligning buffer sizes. - audioOutput->setBufferSize(chunkSize*4); +#ifdef Q_OS_MAC + audioOutput->setBufferSize(chunkSize*8); +#else + audioOutput->setBufferSize(chunkSize*4); +#endif connect(audioOutput, SIGNAL(notify()), SLOT(notified())); connect(audioOutput, SIGNAL(stateChanged(QAudio::State)), SLOT(stateChanged(QAudio::State))); diff --git a/commhandler.cpp b/commhandler.cpp index 4400465..5f83e14 100644 --- a/commhandler.cpp +++ b/commhandler.cpp @@ -102,6 +102,22 @@ void commHandler::receiveDataIn() // new code: port->startTransaction(); inPortData = port->readAll(); + + if(inPortData.size() == 1) + { + // Generally for baud <= 9600 + if (inPortData == "\xFE") + { + // This will get hit twice. + // After the FE FE, we transition into + // the normal .startsWith FE FE block + // where the normal rollback code can handle things. + port->rollbackTransaction(); + rolledBack = true; + return; + } + } + if(inPortData.startsWith("\xFE\xFE")) { if(inPortData.endsWith("\xFD")) diff --git a/freqmemory.h b/freqmemory.h index a06e550..b803f4a 100644 --- a/freqmemory.h +++ b/freqmemory.h @@ -20,7 +20,24 @@ enum mode_kind { modeLSB_D=0x80, modeUSB_D=0x81, modeDV=0x17, - modeDD=0x27 + modeDD=0x27, + modeWFM, + modeS_AMD, + modeS_AML, + modeS_AMU, + modeP25, + modedPMR, + modeNXDN_VN, + modeNXDN_N, + modeDCR, + modePSK, + modePSK_R +}; + +struct mode_info { + mode_kind mk; + unsigned char reg; + QString name; }; struct preset_kind { diff --git a/rigcommander.cpp b/rigcommander.cpp index b808a90..f5ab8b1 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -2265,7 +2265,7 @@ void rigCommander::parseDetailedRegisters1A05() default: break; } - return; + break; case model7850: switch(subcmd) { @@ -2332,6 +2332,7 @@ void rigCommander::parseDetailedRegisters1A05() default: break; } + break; case model7610: switch(subcmd) { @@ -2407,6 +2408,7 @@ void rigCommander::parseDetailedRegisters1A05() default: break; } + break; case model705: switch(subcmd) { @@ -2525,6 +2527,16 @@ void rigCommander::parseWFData() } } + +mode_info rigCommander::createMode(mode_kind m, unsigned char reg, QString name) +{ + mode_info mode; + mode.mk = m; + mode.reg = reg; + mode.name = name; + return mode; +} + void rigCommander::determineRigCaps() { //TODO: Determine available bands (low priority, rig will reject out of band requests anyway) @@ -2539,6 +2551,14 @@ void rigCommander::determineRigCaps() standardVU = {band70cm, band2m}; + std::vector commonModes; + commonModes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"), + createMode(modeFM, 0x05, "FM"), createMode(modeAM, 0x02, "AM"), + createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), + createMode(modeRTTY, 0x04, "RTTY"), createMode(modeRTTY_R, 0x08, "RTTY-R") + }; + + rigCaps.model = model; rigCaps.civ = incomingCIVAddr; @@ -2615,6 +2635,7 @@ void rigCommander::determineRigCaps() rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(band630m); rigCaps.bands.push_back(band2200m); + rigCaps.modes = commonModes; break; case modelR8600: rigCaps.modelName = QString("IC-R8600"); @@ -2640,6 +2661,13 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen}); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), { + createMode(modeWFM, 0x06, "WFM"), createMode(modeS_AMD, 0x11, "S-AM (D)"), + createMode(modeS_AML, 0x14, "S-AM(L)"), createMode(modeS_AMU, 0x15, "S-AM(U)"), + createMode(modeP25, 0x16, "P25"), createMode(modedPMR, 0x18, "dPMR"), + createMode(modeNXDN_VN, 0x19, "NXDN-VN"), createMode(modeNXDN_N, 0x20, "NXDN-N"), + createMode(modeDCR, 0x21, "DCR")}); break; case model9700: rigCaps.modelName = QString("IC-9700"); @@ -2664,6 +2692,9 @@ void rigCommander::determineRigCaps() rigCaps.bsr[band23cm] = 0x03; rigCaps.bsr[band70cm] = 0x02; rigCaps.bsr[band2m] = 0x01; + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV"), + createMode(modeDD, 0x22, "DD")}); break; case model910h: rigCaps.modelName = QString("IC-910H"); @@ -2683,6 +2714,7 @@ void rigCommander::determineRigCaps() rigCaps.bsr[band23cm] = 0x03; rigCaps.bsr[band70cm] = 0x02; rigCaps.bsr[band2m] = 0x01; + rigCaps.modes = commonModes; break; case model7610: rigCaps.modelName = QString("IC-7610"); @@ -2711,6 +2743,7 @@ void rigCommander::determineRigCaps() rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(band630m); rigCaps.bands.push_back(band2200m); + rigCaps.modes = commonModes; break; case model7850: rigCaps.modelName = QString("IC-785x"); @@ -2738,6 +2771,9 @@ void rigCommander::determineRigCaps() rigCaps.bands.push_back(bandGen); rigCaps.bands.push_back(band630m); rigCaps.bands.push_back(band2200m); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modePSK, 0x12, "PSK"), + createMode(modePSK_R, 0x13, "PSK-R")}); break; case model705: rigCaps.modelName = QString("IC-705"); @@ -2770,6 +2806,9 @@ void rigCommander::determineRigCaps() rigCaps.bsr[bandGen] = 0x15; rigCaps.bands.push_back(band630m); rigCaps.bands.push_back(band2200m); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"), + createMode(modeDV, 0x17, "DV")}); break; case model7000: rigCaps.modelName = QString("IC-7000"); @@ -2789,6 +2828,7 @@ void rigCommander::determineRigCaps() rigCaps.bsr[band2m] = 0x11; rigCaps.bsr[band70cm] = 0x12; rigCaps.bsr[bandGen] = 0x13; + rigCaps.modes = commonModes; break; case model7410: rigCaps.modelName = QString("IC-7410"); @@ -2807,6 +2847,7 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.push_back(bandGen); rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; break; case model7100: rigCaps.modelName = QString("IC-7100"); @@ -2829,6 +2870,9 @@ void rigCommander::determineRigCaps() rigCaps.bsr[band2m] = 0x11; rigCaps.bsr[band70cm] = 0x12; rigCaps.bsr[bandGen] = 0x13; + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeWFM, 0x06, "WFM"), + createMode(modeDV, 0x17, "DV")}); break; case model7200: rigCaps.modelName = QString("IC-7200"); @@ -2846,6 +2890,7 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.push_back(bandGen); rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; break; case model706: rigCaps.modelName = QString("IC-706"); @@ -2859,6 +2904,8 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); rigCaps.bands.push_back(bandGen); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM")); break; case model756pro: rigCaps.modelName = QString("IC-756 Pro"); @@ -2875,6 +2922,24 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.push_back(bandGen); rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; + break; + case model756proii: + rigCaps.modelName = QString("IC-756 Pro II"); + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasATU = true; + rigCaps.preamps.push_back('\x01'); + rigCaps.preamps.push_back('\x02'); + rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'}); + rigCaps.antennas = {0x00, 0x01}; + rigCaps.bands = standardHF; + rigCaps.bands.push_back(bandGen); + rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; break; case model756proiii: rigCaps.modelName = QString("IC-756 Pro III"); @@ -2891,6 +2956,7 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.push_back(bandGen); rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; break; default: rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16); @@ -2910,7 +2976,8 @@ void rigCommander::determineRigCaps() rigCaps.bands = standardHF; rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); rigCaps.bands.insert(rigCaps.bands.end(), {band23cm, band4m, band630m, band2200m, bandGen}); - qInfo(logRig()) << "Found unknown rig: " << rigCaps.modelID; + rigCaps.modes = commonModes; + qInfo(logRig()) << "Found unknown rig: 0x" << QString("%1").arg(rigCaps.modelID, 2, 16); break; } haveRigCaps = true; diff --git a/rigcommander.h b/rigcommander.h index bdb111c..23f714e 100644 --- a/rigcommander.h +++ b/rigcommander.h @@ -9,6 +9,7 @@ #include "udphandler.h" #include "rigidentities.h" #include "repeaterattributes.h" +#include "freqmemory.h" // This file figures out what to send to the comm and also // parses returns into useful things. @@ -375,6 +376,7 @@ private: void debugMe(); void printHex(const QByteArray &pdata); void printHex(const QByteArray &pdata, bool printVert, bool printHoriz); + mode_info createMode(mode_kind m, unsigned char reg, QString name); commHandler* comm = Q_NULLPTR; pttyHandler* ptty = Q_NULLPTR; diff --git a/rigidentities.cpp b/rigidentities.cpp index f335659..15f62ac 100644 --- a/rigidentities.cpp +++ b/rigidentities.cpp @@ -58,6 +58,9 @@ model_kind determineRadioModel(unsigned char rigID) case model756pro: rig = model756pro; break; + case model756proii: + rig = model756proii; + break; default: rig = modelUnknown; break; diff --git a/rigidentities.h b/rigidentities.h index 21a8bf4..9ad2630 100644 --- a/rigidentities.h +++ b/rigidentities.h @@ -6,6 +6,8 @@ #include #include +#include "freqmemory.h" + // Credit for parts of CIV list: // http://www.docksideradio.com/Icom%20Radio%20Hex%20Addresses.htm @@ -27,6 +29,7 @@ enum model_kind { model705 = 0xA4, model706 = 0x58, model756pro = 0x5C, + model756proii = 0x64, model756proiii = 0x6E, model910h = 0x60, modelUnknown = 0xFF @@ -102,6 +105,8 @@ struct rigCapabilities { std::vector antennas; std::vector bands; unsigned char bsr[20] = {0}; + + std::vector modes; }; diff --git a/udpserver.cpp b/udpserver.cpp index 7ba242b..cfda49b 100644 --- a/udpserver.cpp +++ b/udpserver.cpp @@ -395,7 +395,7 @@ void udpServer::controlReceived() connect(this, SIGNAL(setupTxAudio(quint8, quint8, quint16, quint16, bool, bool, QString, quint8)), txaudio, SLOT(init(quint8, quint8, quint16, quint16, bool, bool, QString, quint8))); connect(txAudioThread, SIGNAL(finished()), txaudio, SLOT(deleteLater())); - emit setupTxAudio(samples, channels, current->txSampleRate, in->txbuffer, uLaw, false, config.audioOutput, config.resampleQuality); + emit setupTxAudio(samples, channels, current->txSampleRate, current->txBufferLen, uLaw, false, config.audioOutput, config.resampleQuality); hasTxAudio=datagram.senderAddress(); connect(this, SIGNAL(haveAudioData(audioPacket)), txaudio, SLOT(incomingAudio(audioPacket))); @@ -431,8 +431,9 @@ void udpServer::controlReceived() emit setupRxAudio(samples, channels, current->rxSampleRate, 150, uLaw, true, config.audioInput, config.resampleQuality); rxAudioTimer = new QTimer(); + rxAudioTimer->setTimerType(Qt::PreciseTimer); connect(rxAudioTimer, &QTimer::timeout, this, std::bind(&udpServer::sendRxAudio, this)); - rxAudioTimer->start(10); + rxAudioTimer->start(20); } } @@ -713,7 +714,9 @@ void udpServer::audioReceived() void udpServer::commonReceived(QList* l,CLIENT* current, QByteArray r) { Q_UNUSED(l); // We might need it later! - + if (current == Q_NULLPTR || r.isNull()) { + return; + } current->lastHeard = QDateTime::currentDateTime(); if (r.length() < 0x10) { diff --git a/wfmain.cpp b/wfmain.cpp index 40d14ed..c98cd09 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -754,13 +754,15 @@ void wfmain::openRig() { // Find the ICOM // qInfo(logSystem()) << "Searching for serial port..."; - QDirIterator it73("/dev/serial", QStringList() << "*IC-7300*", QDir::Files, QDirIterator::Subdirectories); + QDirIterator it73("/dev/serial/by-id", QStringList() << "*IC-7300*", QDir::Files, QDirIterator::Subdirectories); QDirIterator it97("/dev/serial", QStringList() << "*IC-9700*A*", QDir::Files, QDirIterator::Subdirectories); QDirIterator it785x("/dev/serial", QStringList() << "*IC-785*A*", QDir::Files, QDirIterator::Subdirectories); QDirIterator it705("/dev/serial", QStringList() << "*IC-705*A", QDir::Files, QDirIterator::Subdirectories); QDirIterator it7610("/dev/serial", QStringList() << "*IC-7610*A", QDir::Files, QDirIterator::Subdirectories); QDirIterator itR8600("/dev/serial", QStringList() << "*IC-R8600*A", QDir::Files, QDirIterator::Subdirectories); + QDirIterator itTest("/tmp/test", QStringList() << "*radio*", QDir::NoFilter, QDirIterator::Subdirectories); + qDebug() << "test iterator isEmpty: " << itTest.filePath().isEmpty(); if(!it73.filePath().isEmpty()) { @@ -788,6 +790,8 @@ void wfmain::openRig() serialPortRig = itR8600.filePath(); } else { //fall back: + + qInfo(logSystem()) << "Could not find Icom serial port. Falling back to OS default. Use --port to specify, or modify preferences."; #ifdef Q_OS_MAC serialPortRig = QString("/dev/tty.SLAB_USBtoUART"); @@ -848,20 +852,35 @@ void wfmain::receiveFoundRigID(rigCapabilities rigCaps) //now we know what the rig ID is: //qInfo(logSystem()) << "In wfview, we now have a reply to our request for rig identity sent to CIV BROADCAST."; + // baud on the serial port reflects the actual rig connection, + // even if a client-server connection is being used. + // Computed time for a 10 byte message, with a safety factor of 2. + unsigned int usPerByte = 9600*1000 / prefs.serialPortBaud; + unsigned int msMinTiming=usPerByte * 10*2/1000; + if(msMinTiming < 35) + msMinTiming = 35; + + delayedCommand->setInterval( msMinTiming * 2); // 20 byte message + periodicPollingTimer->setInterval( msMinTiming ); // slower for s-meter poll + + qInfo(logSystem()) << "Delay command interval timing: " << msMinTiming * 2 << "ms"; + qInfo(logSystem()) << "Periodic polling timer: " << msMinTiming << "ms"; + + // Normal: + delayedCmdIntervalLAN_ms = msMinTiming * 2; + delayedCmdIntervalSerial_ms = msMinTiming * 2; + + // startup initial state: + delayedCmdStartupInterval_ms = msMinTiming * 2; + if(rig->usingLAN()) { usingLAN = true; - delayedCommand->setInterval(delayedCmdIntervalLAN_ms); + //delayedCommand->setInterval(delayedCmdIntervalLAN_ms); } else { usingLAN = false; - if(prefs.serialPortBaud < 115200) - { - delayedCommand->setInterval(delayedCmdIntervalSerial_ms*2); - periodicPollingTimer->setInterval(200); // slower for s-meter polling - } else { - delayedCommand->setInterval(delayedCmdIntervalSerial_ms); - } } + receiveRigID(rigCaps); getInitialRigState(); @@ -2228,40 +2247,19 @@ void wfmain::receiveRigID(rigCapabilities rigCaps) // Added so that server receives rig capabilities. emit sendRigCaps(rigCaps); rpt->setRig(rigCaps); - if(rigCaps.model==model7850) + + // Set the mode combo box up: + + ui->modeSelectCombo->blockSignals(true); + ui->modeSelectCombo->clear(); + + for(unsigned int i=0; i < rigCaps.modes.size(); i++) { - ui->modeSelectCombo->addItem("PSK", 0x12); - ui->modeSelectCombo->addItem("PSK-R", 0x13); + ui->modeSelectCombo->addItem(rigCaps.modes.at(i).name, + rigCaps.modes.at(i).reg); } - if(rigCaps.hasDV) - { - ui->modeSelectCombo->addItem("DV", 0x17); - } - - if(rigCaps.hasDD) - { - ui->modeSelectCombo->addItem("DD", 0x22); - } - - if(rigCaps.model==modelR8600) - { - ui->modeSelectCombo->addItem("WFM", 0x06); - ui->modeSelectCombo->addItem("FSK-R", 0x08); - ui->modeSelectCombo->addItem("S-AM (D)", 0x11); - ui->modeSelectCombo->addItem("S-AM (L)", 0x14); - ui->modeSelectCombo->addItem("S-AM (U)", 0x15); - ui->modeSelectCombo->addItem("P25", 0x16); - ui->modeSelectCombo->addItem("dPMR", 0x18); - ui->modeSelectCombo->addItem("NXDN-VN", 0x19); - ui->modeSelectCombo->addItem("NXDN-N", 0x20); - ui->modeSelectCombo->addItem("DCR", 0x21); - } - - if (rigCaps.model == model705) - { - ui->modeSelectCombo->addItem("WFM", 0x06); - } + ui->modeSelectCombo->blockSignals(false); if(rigCaps.model == model9700) { @@ -4337,7 +4335,7 @@ void wfmain::on_rigCIVaddrHexLine_editingFinished() prefs.radioCIVAddr = propCIVAddr; showStatusBarText(QString("Setting radio CI-V address to: 0x%1. Press Save Settings to retain.").arg(propCIVAddr, 2, 16)); } else { - showStatusBarText(QString("Could not use provided CI-V address. Address must be < 0x7E")); + showStatusBarText(QString("Could not use provided CI-V address. Address must be < 0xE0")); } } diff --git a/wfview.vcxproj b/wfview.vcxproj index 12bb382..330f68d 100644 --- a/wfview.vcxproj +++ b/wfview.vcxproj @@ -57,7 +57,7 @@ Sync release\ MaxSpeed - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT="7eba494";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT="b5d6063";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) false MultiThreadedDLL @@ -85,7 +85,7 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT=\"7eba494\";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;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT=\"b5d6063\";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) msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h @@ -99,7 +99,7 @@ Sync debug\ Disabled - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT="7eba494";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT="b5d6063";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) false MultiThreadedDebugDLL true @@ -124,7 +124,7 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT=\"7eba494\";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;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;GITSHORT=\"b5d6063\";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) msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h