kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'audio-enhance' of https://gitlab.com/eliggett/wfview into audio-enhance
commit
566cfbe6d6
162
udpserver.cpp
162
udpserver.cpp
|
@ -57,6 +57,10 @@ void udpServer::init()
|
|||
udpAudio = new QUdpSocket(this);
|
||||
udpAudio->bind(config.audioPort);
|
||||
QUdpSocket::connect(udpAudio, &QUdpSocket::readyRead, this, &udpServer::audioReceived);
|
||||
|
||||
wdTimer = new QTimer();
|
||||
connect(wdTimer, &QTimer::timeout, this, &udpServer::watchdog);
|
||||
wdTimer->start(500);
|
||||
}
|
||||
|
||||
udpServer::~udpServer()
|
||||
|
@ -76,10 +80,6 @@ udpServer::~udpServer()
|
|||
client->pingTimer->stop();
|
||||
delete client->pingTimer;
|
||||
}
|
||||
if (client->wdTimer != Q_NULLPTR) {
|
||||
client->wdTimer->stop();
|
||||
delete client->wdTimer;
|
||||
}
|
||||
|
||||
if (client->retransmitTimer != Q_NULLPTR) {
|
||||
client->retransmitTimer->stop();
|
||||
|
@ -213,10 +213,6 @@ void udpServer::controlReceived()
|
|||
connect(current->idleTimer, &QTimer::timeout, this, std::bind(&udpServer::sendControl, this, current, (quint8)0x00, (quint16)0x00));
|
||||
current->idleTimer->start(100);
|
||||
|
||||
current->wdTimer = new QTimer();
|
||||
connect(current->wdTimer, &QTimer::timeout, this, std::bind(&udpServer::watchdog, this, current));
|
||||
//current->wdTimer->start(1000);
|
||||
|
||||
current->retransmitTimer = new QTimer();
|
||||
connect(current->retransmitTimer, &QTimer::timeout, this, std::bind(&udpServer::sendRetransmitRequest, this, current));
|
||||
current->retransmitTimer->start(RETRANSMIT_PERIOD);
|
||||
|
@ -242,8 +238,15 @@ void udpServer::controlReceived()
|
|||
{
|
||||
qInfo(logUdpServer()) << current->ipAddress.toString() << ": Received 'disconnect' request";
|
||||
sendControl(current, 0x00, in->seq);
|
||||
//current->wdTimer->stop(); // Keep watchdog running to delete stale connection.
|
||||
|
||||
if (current->audioClient != Q_NULLPTR) {
|
||||
deleteConnection(&audioClients, current->audioClient);
|
||||
}
|
||||
if (current->civClient != Q_NULLPTR) {
|
||||
deleteConnection(&civClients, current->civClient);
|
||||
}
|
||||
deleteConnection(&controlClients, current);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -421,11 +424,11 @@ void udpServer::controlReceived()
|
|||
break;
|
||||
}
|
||||
}
|
||||
// Report current connections:
|
||||
emit haveNetworkStatus(QString("<pre>Server connections: Control:%1 CI-V:%2 Audio:%3</pre>").arg(controlClients.size()).arg(civClients.size()).arg(audioClients.size()));
|
||||
|
||||
commonReceived(&controlClients, current, r);
|
||||
|
||||
// Connection "may" have been deleted so check before calling common function.
|
||||
if (current != Q_NULLPTR) {
|
||||
commonReceived(&controlClients, current, r);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -443,22 +446,6 @@ void udpServer::civReceived()
|
|||
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
|
||||
bool userOK = false;
|
||||
foreach(CLIENT * client, controlClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->ipAddress == datagram.senderAddress() && client->isAuthenticated)
|
||||
{
|
||||
userOK = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!userOK)
|
||||
{
|
||||
qDebug(logUdpServer()) << "user is NOT authenticated but attempted CI-V connection!";
|
||||
}
|
||||
|
||||
foreach(CLIENT * client, civClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
|
@ -467,13 +454,25 @@ void udpServer::civReceived()
|
|||
{
|
||||
current = client;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (current == Q_NULLPTR)
|
||||
{
|
||||
current = new CLIENT();
|
||||
|
||||
foreach(CLIENT* client, controlClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->ipAddress == datagram.senderAddress() && client->isAuthenticated && client->civClient == Q_NULLPTR)
|
||||
{
|
||||
current->controlClient = client;
|
||||
client->civClient = current;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
current->type = "CIV";
|
||||
current->civId = 0;
|
||||
current->connected = true;
|
||||
|
@ -493,10 +492,6 @@ void udpServer::civReceived()
|
|||
connect(current->idleTimer, &QTimer::timeout, this, std::bind(&udpServer::sendControl, this, current, 0x00, (quint16)0x00));
|
||||
//current->idleTimer->start(100); // Start idleTimer after receiving iamready.
|
||||
|
||||
current->wdTimer = new QTimer();
|
||||
connect(current->wdTimer, &QTimer::timeout, this, std::bind(&udpServer::watchdog, this, current));
|
||||
//current->wdTimer->start(1000);
|
||||
|
||||
current->retransmitTimer = new QTimer();
|
||||
connect(current->retransmitTimer, &QTimer::timeout, this, std::bind(&udpServer::sendRetransmitRequest, this, current));
|
||||
current->retransmitTimer->start(RETRANSMIT_PERIOD);
|
||||
|
@ -508,6 +503,11 @@ void udpServer::civReceived()
|
|||
|
||||
}
|
||||
|
||||
if (current->controlClient == Q_NULLPTR || !current->controlClient->isAuthenticated)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
switch (r.length())
|
||||
{
|
||||
/* case (CONTROL_SIZE):
|
||||
|
@ -596,22 +596,6 @@ void udpServer::audioReceived()
|
|||
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
|
||||
bool userOK = false;
|
||||
foreach(CLIENT * client, controlClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->ipAddress == datagram.senderAddress() && client->isAuthenticated)
|
||||
{
|
||||
userOK = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!userOK)
|
||||
{
|
||||
qDebug(logUdpServer()) << "user is NOT authenticated but attempted CI-V connection!";
|
||||
}
|
||||
|
||||
foreach(CLIENT * client, audioClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
|
@ -625,6 +609,17 @@ void udpServer::audioReceived()
|
|||
if (current == Q_NULLPTR)
|
||||
{
|
||||
current = new CLIENT();
|
||||
foreach(CLIENT* client, controlClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->ipAddress == datagram.senderAddress() && client->isAuthenticated && client->audioClient == Q_NULLPTR)
|
||||
{
|
||||
current->controlClient = client;
|
||||
client->audioClient = current;
|
||||
}
|
||||
}
|
||||
}
|
||||
current->type = "Audio";
|
||||
current->connected = true;
|
||||
current->timeConnected = QDateTime::currentDateTime();
|
||||
|
@ -639,10 +634,6 @@ void udpServer::audioReceived()
|
|||
connect(current->pingTimer, &QTimer::timeout, this, std::bind(&udpServer::sendPing, this, &audioClients, current, (quint16)0x00, false));
|
||||
current->pingTimer->start(100);
|
||||
|
||||
current->wdTimer = new QTimer();
|
||||
connect(current->wdTimer, &QTimer::timeout, this, std::bind(&udpServer::watchdog, this, current));
|
||||
//current->wdTimer->start(1000);
|
||||
|
||||
current->retransmitTimer = new QTimer();
|
||||
connect(current->retransmitTimer, &QTimer::timeout, this, std::bind(&udpServer::sendRetransmitRequest, this, current));
|
||||
current->retransmitTimer->start(RETRANSMIT_PERIOD);
|
||||
|
@ -911,7 +902,8 @@ void udpServer::sendControl(CLIENT* c, quint8 type, quint16 seq)
|
|||
|
||||
void udpServer::sendPing(QList<CLIENT*>* l, CLIENT* c, quint16 seq, bool reply)
|
||||
{
|
||||
// Also use to detect "stale" connections
|
||||
Q_UNUSED(l);
|
||||
/*
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
|
||||
if (c->lastHeard.secsTo(now) > STALE_CONNECTION)
|
||||
|
@ -921,6 +913,7 @@ void udpServer::sendPing(QList<CLIENT*>* l, CLIENT* c, quint16 seq, bool reply)
|
|||
return;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
//qInfo(logUdpServer()) << c->ipAddress.toString() << ": Sending Ping";
|
||||
|
||||
|
@ -979,8 +972,6 @@ void udpServer::sendLoginResponse(CLIENT* c, bool allowed)
|
|||
c->pingTimer->stop();
|
||||
if (c->retransmitTimer != Q_NULLPTR)
|
||||
c->retransmitTimer->stop();
|
||||
if (c->wdTimer != Q_NULLPTR)
|
||||
c->wdTimer->stop();
|
||||
}
|
||||
else {
|
||||
strcpy(p.connection, "WFVIEW");
|
||||
|
@ -1224,11 +1215,56 @@ void udpServer::sendTokenResponse(CLIENT* c, quint8 type)
|
|||
|
||||
#define PURGE_SECONDS 60
|
||||
|
||||
void udpServer::watchdog(CLIENT* c)
|
||||
void udpServer::watchdog()
|
||||
{
|
||||
Q_UNUSED(c);
|
||||
// Do something!
|
||||
QDateTime now = QDateTime::currentDateTime();
|
||||
|
||||
foreach(CLIENT * client, audioClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->lastHeard.secsTo(now) > STALE_CONNECTION)
|
||||
{
|
||||
qInfo(logUdpServer()) << client->ipAddress.toString() << "(" << client->type << "): Deleting stale connection ";
|
||||
deleteConnection(&audioClients, client);
|
||||
}
|
||||
}
|
||||
else {
|
||||
qInfo(logUdpServer()) << "Current client is NULL!";
|
||||
}
|
||||
}
|
||||
|
||||
foreach(CLIENT* client, civClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->lastHeard.secsTo(now) > STALE_CONNECTION)
|
||||
{
|
||||
qInfo(logUdpServer()) << client->ipAddress.toString() << "(" << client->type << "): Deleting stale connection ";
|
||||
deleteConnection(&civClients, client);
|
||||
}
|
||||
}
|
||||
else {
|
||||
qInfo(logUdpServer()) << "Current client is NULL!";
|
||||
}
|
||||
}
|
||||
|
||||
foreach(CLIENT* client, controlClients)
|
||||
{
|
||||
if (client != Q_NULLPTR)
|
||||
{
|
||||
if (client->lastHeard.secsTo(now) > STALE_CONNECTION)
|
||||
{
|
||||
qInfo(logUdpServer()) << client->ipAddress.toString() << "(" << client->type << "): Deleting stale connection ";
|
||||
deleteConnection(&controlClients, client);
|
||||
}
|
||||
}
|
||||
else {
|
||||
qInfo(logUdpServer()) << "Current client is NULL!";
|
||||
}
|
||||
}
|
||||
|
||||
emit haveNetworkStatus(QString("<pre>Server connections: Control:%1 CI-V:%2 Audio:%3</pre>").arg(controlClients.size()).arg(civClients.size()).arg(audioClients.size()));
|
||||
}
|
||||
|
||||
void udpServer::sendStatus(CLIENT* c)
|
||||
|
@ -1510,7 +1546,7 @@ void udpServer::sendRetransmitRequest(CLIENT* c)
|
|||
void udpServer::deleteConnection(QList<CLIENT*>* l, CLIENT* c)
|
||||
{
|
||||
|
||||
qInfo(logUdpServer()) << "Deleting connection to: " << c->ipAddress.toString() << ":" << QString::number(c->port);
|
||||
qInfo(logUdpServer()) << "Deleting" << c->type << "connection to: " << c->ipAddress.toString() << ":" << QString::number(c->port);
|
||||
if (c->idleTimer != Q_NULLPTR) {
|
||||
c->idleTimer->stop();
|
||||
delete c->idleTimer;
|
||||
|
@ -1519,10 +1555,6 @@ void udpServer::deleteConnection(QList<CLIENT*>* l, CLIENT* c)
|
|||
c->pingTimer->stop();
|
||||
delete c->pingTimer;
|
||||
}
|
||||
if (c->wdTimer != Q_NULLPTR) {
|
||||
c->wdTimer->stop();
|
||||
delete c->wdTimer;
|
||||
}
|
||||
|
||||
if (c->retransmitTimer != Q_NULLPTR) {
|
||||
c->retransmitTimer->stop();
|
||||
|
|
|
@ -94,7 +94,6 @@ private:
|
|||
|
||||
QTimer* pingTimer;
|
||||
QTimer* idleTimer;
|
||||
QTimer* wdTimer;
|
||||
QTimer* retransmitTimer;
|
||||
|
||||
// Only used for audio.
|
||||
|
@ -117,6 +116,9 @@ private:
|
|||
|
||||
quint8 civId;
|
||||
bool isAuthenticated;
|
||||
CLIENT* controlClient = Q_NULLPTR;
|
||||
CLIENT* civClient = Q_NULLPTR;
|
||||
CLIENT* audioClient = Q_NULLPTR;
|
||||
};
|
||||
|
||||
void controlReceived();
|
||||
|
@ -132,7 +134,7 @@ private:
|
|||
void sendTokenResponse(CLIENT* c,quint8 type);
|
||||
void sendStatus(CLIENT* c);
|
||||
void sendRetransmitRequest(CLIENT* c);
|
||||
void watchdog(CLIENT* c);
|
||||
void watchdog();
|
||||
void sendRxAudio();
|
||||
void deleteConnection(QList<CLIENT*> *l, CLIENT* c);
|
||||
|
||||
|
@ -175,6 +177,7 @@ private:
|
|||
quint8 txCodec = 0;
|
||||
|
||||
QHostAddress hasTxAudio;
|
||||
QTimer* wdTimer;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<ObjectFileName>release\</ObjectFileName>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;RTAUDIO;__WINDOWS_WASAPI__;GITSHORT="9a0ea32";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="141955b";HOST="wfview.org";UNAME="build";QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessToFile>false</PreprocessToFile>
|
||||
<ProgramDataBaseFileName></ProgramDataBaseFileName>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
|
@ -67,13 +67,12 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>false</GenerateDebugInformation>
|
||||
<IgnoreImportLibrary>true</IgnoreImportLibrary>
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<OutputFile>$(OutDir)\wfview.exe</OutputFile>
|
||||
<RandomizedBaseAddress>true</RandomizedBaseAddress>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
|
@ -85,7 +84,7 @@
|
|||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;RTAUDIO;__WINDOWS_WASAPI__;GITSHORT=\"9a0ea32\";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;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"141955b\";HOST=\"wfview.org\";UNAME=\"build\";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>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
|
@ -99,7 +98,7 @@
|
|||
<ExceptionHandling>Sync</ExceptionHandling>
|
||||
<ObjectFileName>debug\</ObjectFileName>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;RTAUDIO;__WINDOWS_WASAPI__;GITSHORT="9a0ea32";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT="141955b";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessToFile>false</PreprocessToFile>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<SuppressStartupBanner>true</SuppressStartupBanner>
|
||||
|
@ -108,7 +107,7 @@
|
|||
<MultiProcessorCompilation>true</MultiProcessorCompilation></ClCompile>
|
||||
<Link>
|
||||
<AdditionalDependencies>shell32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.7.25-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalLibraryDirectories>C:\opensslx86\lib;C:\Utils\my_sql\mysql-5.6.11-win32\lib;C:\Utils\postgresqlx86\pgsql\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions>"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" %(AdditionalOptions)</AdditionalOptions>
|
||||
<DataExecutionPrevention>true</DataExecutionPrevention>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
|
@ -124,11 +123,10 @@
|
|||
<WarningLevel>0</WarningLevel>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<PreprocessorDefinitions>_WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;RTAUDIO;__WINDOWS_WASAPI__;GITSHORT=\"9a0ea32\";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;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;__WINDOWS_WASAPI__;GITSHORT=\"141955b\";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>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="rtaudio\RTAudio.cpp" />
|
||||
<ClCompile Include="audiohandler.cpp" />
|
||||
<ClCompile Include="calibrationwindow.cpp" />
|
||||
<ClCompile Include="commhandler.cpp" />
|
||||
|
@ -152,7 +150,6 @@
|
|||
<ClCompile Include="wfmain.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="rtaudio\RTAUdio.h" />
|
||||
<ClInclude Include="opus-tools\src\arch.h" />
|
||||
<QtMoc Include="audiohandler.h">
|
||||
|
||||
|
|
|
@ -57,9 +57,6 @@
|
|||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="rtaudio\RTAudio.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="audiohandler.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
|
@ -125,9 +122,6 @@
|
|||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="rtaudio\RTAUdio.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="opus-tools\src\arch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
|
Ładowanie…
Reference in New Issue