kopia lustrzana https://gitlab.com/eliggett/wfview
Fix wfserver device detection
rodzic
e6a5152734
commit
39dacf54f2
|
@ -82,6 +82,7 @@ void audioDevices::enumerate()
|
||||||
"(" << numInputDevices << ") Input Device : " << deviceInfo.description();
|
"(" << numInputDevices << ") Input Device : " << deviceInfo.description();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
||||||
if (fm.boundingRect(deviceInfo.deviceName()).width() > numCharsIn)
|
if (fm.boundingRect(deviceInfo.deviceName()).width() > numCharsIn)
|
||||||
numCharsIn = fm.boundingRect(deviceInfo.deviceName()).width();
|
numCharsIn = fm.boundingRect(deviceInfo.deviceName()).width();
|
||||||
|
@ -89,6 +90,7 @@ void audioDevices::enumerate()
|
||||||
if (fm.boundingRect(deviceInfo.description()).width() > numCharsIn)
|
if (fm.boundingRect(deviceInfo.description()).width() > numCharsIn)
|
||||||
numCharsIn = fm.boundingRect(deviceInfo.description()).width();
|
numCharsIn = fm.boundingRect(deviceInfo.description()).width();
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (defined(Q_OS_WIN) && (QT_VERSION < QT_VERSION_CHECK(6,0,0)))
|
#if (defined(Q_OS_WIN) && (QT_VERSION < QT_VERSION_CHECK(6,0,0)))
|
||||||
}
|
}
|
||||||
|
@ -140,6 +142,7 @@ void audioDevices::enumerate()
|
||||||
"(" << numOutputDevices << ") Output Device : " << deviceInfo.description();
|
"(" << numOutputDevices << ") Output Device : " << deviceInfo.description();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
#if (QT_VERSION < QT_VERSION_CHECK(6,0,0))
|
||||||
if (fm.boundingRect(deviceInfo.deviceName()).width() > numCharsOut)
|
if (fm.boundingRect(deviceInfo.deviceName()).width() > numCharsOut)
|
||||||
numCharsOut = fm.boundingRect(deviceInfo.deviceName()).width();
|
numCharsOut = fm.boundingRect(deviceInfo.deviceName()).width();
|
||||||
|
@ -147,6 +150,7 @@ void audioDevices::enumerate()
|
||||||
if (fm.boundingRect(deviceInfo.description()).width() > numCharsOut)
|
if (fm.boundingRect(deviceInfo.description()).width() > numCharsOut)
|
||||||
numCharsOut = fm.boundingRect(deviceInfo.description()).width();
|
numCharsOut = fm.boundingRect(deviceInfo.description()).width();
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (defined(Q_OS_WIN) && (QT_VERSION < QT_VERSION_CHECK(6,0,0)))
|
#if (defined(Q_OS_WIN) && (QT_VERSION < QT_VERSION_CHECK(6,0,0)))
|
||||||
}
|
}
|
||||||
|
@ -186,8 +190,10 @@ void audioDevices::enumerate()
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
}
|
}
|
||||||
inputs.append(audioDevice(QString(info->name), i,isDefault));
|
inputs.append(audioDevice(QString(info->name), i,isDefault));
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
if (fm.boundingRect(QString(info->name)).width() > numCharsIn)
|
if (fm.boundingRect(QString(info->name)).width() > numCharsIn)
|
||||||
numCharsIn = fm.boundingRect(QString(info->name)).width();
|
numCharsIn = fm.boundingRect(QString(info->name)).width();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
if (info->maxOutputChannels > 0) {
|
if (info->maxOutputChannels > 0) {
|
||||||
|
@ -199,8 +205,10 @@ void audioDevices::enumerate()
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
}
|
}
|
||||||
outputs.append(audioDevice(QString(info->name), i,isDefault));
|
outputs.append(audioDevice(QString(info->name), i,isDefault));
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
if (fm.boundingRect(QString(info->name)).width() > numCharsOut)
|
if (fm.boundingRect(QString(info->name)).width() > numCharsOut)
|
||||||
numCharsOut = fm.boundingRect(QString(info->name)).width();
|
numCharsOut = fm.boundingRect(QString(info->name)).width();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -260,9 +268,10 @@ void audioDevices::enumerate()
|
||||||
}
|
}
|
||||||
|
|
||||||
inputs.append(audioDevice(QString::fromStdString(info.name), i, isDefault));
|
inputs.append(audioDevice(QString::fromStdString(info.name), i, isDefault));
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
if (fm.boundingRect(QString::fromStdString(info.name)).width() > numCharsIn)
|
if (fm.boundingRect(QString::fromStdString(info.name)).width() > numCharsIn)
|
||||||
numCharsIn = fm.boundingRect(QString::fromStdString(info.name)).width();
|
numCharsIn = fm.boundingRect(QString::fromStdString(info.name)).width();
|
||||||
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
if (info.outputChannels > 0) {
|
if (info.outputChannels > 0) {
|
||||||
|
@ -276,9 +285,10 @@ void audioDevices::enumerate()
|
||||||
}
|
}
|
||||||
|
|
||||||
outputs.append(audioDevice(QString::fromStdString(info.name), i, isDefault));
|
outputs.append(audioDevice(QString::fromStdString(info.name), i, isDefault));
|
||||||
|
#ifndef BUILD_WFSERVER
|
||||||
if (fm.boundingRect(QString::fromStdString(info.name)).width() > numCharsOut)
|
if (fm.boundingRect(QString::fromStdString(info.name)).width() > numCharsOut)
|
||||||
numCharsOut = fm.boundingRect(QString::fromStdString(info.name)).width();
|
numCharsOut = fm.boundingRect(QString::fromStdString(info.name)).width();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
195
servermain.cpp
195
servermain.cpp
|
@ -28,6 +28,7 @@ servermain::servermain(const QString settingsFile)
|
||||||
qRegisterMetaType<rigstate*>();
|
qRegisterMetaType<rigstate*>();
|
||||||
qRegisterMetaType<QList<radio_cap_packet>>();
|
qRegisterMetaType<QList<radio_cap_packet>>();
|
||||||
qRegisterMetaType<networkStatus>();
|
qRegisterMetaType<networkStatus>();
|
||||||
|
qRegisterMetaType<codecType>();
|
||||||
|
|
||||||
setDefPrefs();
|
setDefPrefs();
|
||||||
|
|
||||||
|
@ -35,6 +36,10 @@ servermain::servermain(const QString settingsFile)
|
||||||
|
|
||||||
loadSettings(); // Look for saved preferences
|
loadSettings(); // Look for saved preferences
|
||||||
|
|
||||||
|
audioDev = new audioDevices(prefs.audioSystem, QFontMetrics(QFont()));
|
||||||
|
connect(audioDev, SIGNAL(updated()), this, SLOT(updateAudioDevices()));
|
||||||
|
audioDev->enumerate();
|
||||||
|
|
||||||
setInitialTiming();
|
setInitialTiming();
|
||||||
|
|
||||||
openRig();
|
openRig();
|
||||||
|
@ -62,6 +67,10 @@ servermain::~servermain()
|
||||||
serverThread->wait();
|
serverThread->wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (audioDev != Q_NULLPTR) {
|
||||||
|
delete audioDev;
|
||||||
|
}
|
||||||
|
|
||||||
delete settings;
|
delete settings;
|
||||||
|
|
||||||
#if defined(PORTAUDIO)
|
#if defined(PORTAUDIO)
|
||||||
|
@ -527,6 +536,7 @@ void servermain::loadSettings()
|
||||||
|
|
||||||
tempPrefs->rig = Q_NULLPTR;
|
tempPrefs->rig = Q_NULLPTR;
|
||||||
tempPrefs->rigThread = Q_NULLPTR;
|
tempPrefs->rigThread = Q_NULLPTR;
|
||||||
|
|
||||||
serverConfig.rigs.append(tempPrefs);
|
serverConfig.rigs.append(tempPrefs);
|
||||||
if (tempNum == 0) {
|
if (tempNum == 0) {
|
||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
|
@ -537,167 +547,6 @@ void servermain::loadSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Now we have an array of rig objects, we need to match the configured audio devices with physical devices
|
|
||||||
*/
|
|
||||||
switch (prefs.audioSystem)
|
|
||||||
{
|
|
||||||
case rtAudio:
|
|
||||||
{
|
|
||||||
#if defined(Q_OS_LINUX)
|
|
||||||
RtAudio* audio = new RtAudio(RtAudio::Api::LINUX_ALSA);
|
|
||||||
// RtAudio* audio = new RtAudio(RtAudio::Api::LINUX_PULSE);
|
|
||||||
#elif defined(Q_OS_WIN)
|
|
||||||
RtAudio* audio = new RtAudio(RtAudio::Api::WINDOWS_WASAPI);
|
|
||||||
#elif defined(Q_OS_MACX)
|
|
||||||
RtAudio* audio = new RtAudio(RtAudio::Api::MACOSX_CORE);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Enumerate audio devices, need to do before settings are loaded.
|
|
||||||
std::map<int, std::string> apiMap;
|
|
||||||
apiMap[RtAudio::MACOSX_CORE] = "OS-X Core Audio";
|
|
||||||
apiMap[RtAudio::WINDOWS_ASIO] = "Windows ASIO";
|
|
||||||
apiMap[RtAudio::WINDOWS_DS] = "Windows DirectSound";
|
|
||||||
apiMap[RtAudio::WINDOWS_WASAPI] = "Windows WASAPI";
|
|
||||||
apiMap[RtAudio::UNIX_JACK] = "Jack Client";
|
|
||||||
apiMap[RtAudio::LINUX_ALSA] = "Linux ALSA";
|
|
||||||
apiMap[RtAudio::LINUX_PULSE] = "Linux PulseAudio";
|
|
||||||
apiMap[RtAudio::LINUX_OSS] = "Linux OSS";
|
|
||||||
apiMap[RtAudio::RTAUDIO_DUMMY] = "RtAudio Dummy";
|
|
||||||
|
|
||||||
std::vector< RtAudio::Api > apis;
|
|
||||||
RtAudio::getCompiledApi(apis);
|
|
||||||
|
|
||||||
qInfo(logAudio()) << "RtAudio Version " << QString::fromStdString(RtAudio::getVersion());
|
|
||||||
|
|
||||||
qInfo(logAudio()) << "Compiled APIs:";
|
|
||||||
for (unsigned int i = 0; i < apis.size(); i++) {
|
|
||||||
qInfo(logAudio()) << " " << QString::fromStdString(apiMap[apis[i]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
RtAudio::DeviceInfo info;
|
|
||||||
|
|
||||||
qInfo(logAudio()) << "Current API: " << QString::fromStdString(apiMap[audio->getCurrentApi()]);
|
|
||||||
|
|
||||||
unsigned int devices = audio->getDeviceCount();
|
|
||||||
qInfo(logAudio()) << "Found " << devices << " audio device(s) *=default";
|
|
||||||
|
|
||||||
for (unsigned int i = 1; i < devices; i++) {
|
|
||||||
info = audio->getDeviceInfo(i);
|
|
||||||
for (RIGCONFIG* rig : serverConfig.rigs)
|
|
||||||
{
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "rxAudio device:" << rig->rxAudioSetup.name;
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "txAudio device:" << rig->txAudioSetup.name;
|
|
||||||
if (info.outputChannels > 0)
|
|
||||||
{
|
|
||||||
qInfo(logAudio()) << (info.isDefaultOutput ? "*" : " ") << "(" << i << ") Output Device : " << QString::fromStdString(info.name);
|
|
||||||
if (rig->txAudioSetup.name.toStdString() == info.name) {
|
|
||||||
rig->txAudioSetup.portInt = i;
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected txAudio device:" << QString(info.name.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (info.inputChannels > 0)
|
|
||||||
{
|
|
||||||
qInfo(logAudio()) << (info.isDefaultInput ? "*" : " ") << "(" << i << ") Input Device : " << QString::fromStdString(info.name);
|
|
||||||
if (rig->rxAudioSetup.name.toStdString() == info.name) {
|
|
||||||
rig->rxAudioSetup.portInt = i;
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected rxAudio device:" << QString(info.name.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case portAudio:
|
|
||||||
{
|
|
||||||
// Use PortAudio device enumeration
|
|
||||||
|
|
||||||
PaError err;
|
|
||||||
|
|
||||||
err = Pa_Initialize();
|
|
||||||
|
|
||||||
if (err != paNoError)
|
|
||||||
{
|
|
||||||
qInfo(logAudio()) << "ERROR: Cannot initialize Portaudio";
|
|
||||||
}
|
|
||||||
|
|
||||||
qInfo(logAudio()) << "PortAudio version: " << Pa_GetVersionInfo()->versionText;
|
|
||||||
|
|
||||||
int numDevices;
|
|
||||||
numDevices = Pa_GetDeviceCount();
|
|
||||||
qInfo(logAudio()) << "Pa_CountDevices returned" << numDevices;
|
|
||||||
|
|
||||||
const PaDeviceInfo* info;
|
|
||||||
for (int i = 0; i < numDevices; i++)
|
|
||||||
{
|
|
||||||
info = Pa_GetDeviceInfo(i);
|
|
||||||
for (RIGCONFIG* rig : serverConfig.rigs)
|
|
||||||
{
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "rxAudio device:" << rig->rxAudioSetup.name;
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "txAudio device:" << rig->txAudioSetup.name;
|
|
||||||
if (info->maxInputChannels > 0) {
|
|
||||||
qDebug(logAudio()) << (i == Pa_GetDefaultInputDevice() ? "*" : " ") << "(" << i << ") Input Device : " << info->name;
|
|
||||||
|
|
||||||
if (rig->rxAudioSetup.name == info->name) {
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected rxAudio device:" << QString(info->name);
|
|
||||||
rig->rxAudioSetup.portInt = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (info->maxOutputChannels > 0) {
|
|
||||||
if (rig->txAudioSetup.name == info->name) {
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected txAudio device:" << QString(info->name);
|
|
||||||
rig->txAudioSetup.portInt = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case qtAudio:
|
|
||||||
{
|
|
||||||
const auto audioOutputs = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
|
|
||||||
const auto audioInputs = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
|
|
||||||
//qInfo(logAudio()) << "Looking for audio input devices";
|
|
||||||
for (const QAudioDeviceInfo& deviceInfo : audioInputs) {
|
|
||||||
qDebug(logSystem()) << "Found Audio input: " << deviceInfo.deviceName();
|
|
||||||
for (RIGCONFIG* rig : serverConfig.rigs)
|
|
||||||
{
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "rxAudio device:" << rig->rxAudioSetup.name;
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "txAudio device:" << rig->txAudioSetup.name;
|
|
||||||
if (deviceInfo.deviceName() == rig->rxAudioSetup.name
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
&& deviceInfo.realm() == "wasapi"
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected rxAudio device:" << deviceInfo.deviceName();
|
|
||||||
rig->rxAudioSetup.port = deviceInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//qInfo(logAudio()) << "Looking for audio output devices";
|
|
||||||
for (const QAudioDeviceInfo& deviceInfo : audioOutputs) {
|
|
||||||
qDebug(logSystem()) << "Found Audio output: " << deviceInfo.deviceName();
|
|
||||||
for (RIGCONFIG* rig : serverConfig.rigs)
|
|
||||||
{
|
|
||||||
if (deviceInfo.deviceName() == rig->txAudioSetup.name
|
|
||||||
#ifdef Q_OS_WIN
|
|
||||||
&& deviceInfo.realm() == "wasapi"
|
|
||||||
#endif
|
|
||||||
)
|
|
||||||
{
|
|
||||||
qDebug(logAudio()) << "Rig" << rig->rigName << "Selected txAudio device:" << deviceInfo.deviceName();
|
|
||||||
rig->txAudioSetup.port = deviceInfo;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
settings->beginGroup("Server");
|
settings->beginGroup("Server");
|
||||||
serverConfig.enabled = settings->value("ServerEnabled", false).toBool();
|
serverConfig.enabled = settings->value("ServerEnabled", false).toBool();
|
||||||
serverConfig.controlPort = settings->value("ServerControlPort", 50001).toInt();
|
serverConfig.controlPort = settings->value("ServerControlPort", 50001).toInt();
|
||||||
|
@ -731,6 +580,30 @@ void servermain::loadSettings()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void servermain::updateAudioDevices()
|
||||||
|
{
|
||||||
|
|
||||||
|
for (RIGCONFIG* rig : serverConfig.rigs)
|
||||||
|
{
|
||||||
|
qDebug(logAudio()) << "Rig" << rig->rigName << "configured rxAudio device:" << rig->rxAudioSetup.name;
|
||||||
|
qDebug(logAudio()) << "Rig" << rig->rigName << "configured txAudio device:" << rig->txAudioSetup.name;
|
||||||
|
|
||||||
|
int inputNum = audioDev->findInput(rig->rigName, rig->rxAudioSetup.name);
|
||||||
|
int outputNum = audioDev->findOutput(rig->rigName, rig->txAudioSetup.name);
|
||||||
|
|
||||||
|
if (prefs.audioSystem == qtAudio) {
|
||||||
|
rig->rxAudioSetup.port = audioDev->getInputDeviceInfo(inputNum);
|
||||||
|
rig->txAudioSetup.port = audioDev->getOutputDeviceInfo(outputNum);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rig->rxAudioSetup.portInt = audioDev->getInputDeviceInt(inputNum);
|
||||||
|
rig->txAudioSetup.portInt = audioDev->getOutputDeviceInt(outputNum);
|
||||||
|
}
|
||||||
|
rig->rxAudioSetup.name = audioDev->getInputName(inputNum);
|
||||||
|
rig->txAudioSetup.name = audioDev->getOutputName(outputNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void servermain::receivePTTstatus(bool pttOn)
|
void servermain::receivePTTstatus(bool pttOn)
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include "freqmemory.h"
|
#include "freqmemory.h"
|
||||||
#include "rigidentities.h"
|
#include "rigidentities.h"
|
||||||
#include "repeaterattributes.h"
|
#include "repeaterattributes.h"
|
||||||
|
#include "audiodevices.h"
|
||||||
|
|
||||||
#include "udpserver.h"
|
#include "udpserver.h"
|
||||||
#include "rigctld.h"
|
#include "rigctld.h"
|
||||||
|
@ -181,6 +182,7 @@ private slots:
|
||||||
void receiveStatusUpdate(networkStatus status);
|
void receiveStatusUpdate(networkStatus status);
|
||||||
void receiveStateInfo(rigstate* state);
|
void receiveStateInfo(rigstate* state);
|
||||||
void connectToRig(RIGCONFIG* rig);
|
void connectToRig(RIGCONFIG* rig);
|
||||||
|
void updateAudioDevices();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QSettings *settings=Q_NULLPTR;
|
QSettings *settings=Q_NULLPTR;
|
||||||
|
@ -282,6 +284,8 @@ private:
|
||||||
|
|
||||||
rigstate* rigState = Q_NULLPTR;
|
rigstate* rigState = Q_NULLPTR;
|
||||||
|
|
||||||
|
audioDevices* audioDev = Q_NULLPTR;
|
||||||
|
|
||||||
SERVERCONFIG serverConfig;
|
SERVERCONFIG serverConfig;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -300,6 +304,7 @@ Q_DECLARE_METATYPE(QList<radio_cap_packet>)
|
||||||
Q_DECLARE_METATYPE(enum meterKind)
|
Q_DECLARE_METATYPE(enum meterKind)
|
||||||
Q_DECLARE_METATYPE(enum spectrumMode)
|
Q_DECLARE_METATYPE(enum spectrumMode)
|
||||||
Q_DECLARE_METATYPE(rigstate*)
|
Q_DECLARE_METATYPE(rigstate*)
|
||||||
|
Q_DECLARE_METATYPE(codecType)
|
||||||
|
|
||||||
|
|
||||||
#endif // WFMAIN_H
|
#endif // WFMAIN_H
|
||||||
|
|
|
@ -242,7 +242,7 @@ void wfmain::openRig()
|
||||||
//TODO: if(hasRunPreviously)
|
//TODO: if(hasRunPreviously)
|
||||||
|
|
||||||
//TODO: if(useNetwork){...
|
//TODO: if(useNetwork){...
|
||||||
|
|
||||||
// } else {
|
// } else {
|
||||||
|
|
||||||
// if (prefs.fileWasNotFound) {
|
// if (prefs.fileWasNotFound) {
|
||||||
|
|
|
@ -142,7 +142,8 @@ SOURCES += main.cpp\
|
||||||
resampler/resample.c \
|
resampler/resample.c \
|
||||||
rigctld.cpp \
|
rigctld.cpp \
|
||||||
tcpserver.cpp \
|
tcpserver.cpp \
|
||||||
keyboard.cpp
|
keyboard.cpp \
|
||||||
|
audiodevices.cpp
|
||||||
|
|
||||||
HEADERS += servermain.h \
|
HEADERS += servermain.h \
|
||||||
commhandler.h \
|
commhandler.h \
|
||||||
|
@ -170,4 +171,5 @@ HEADERS += servermain.h \
|
||||||
tcpserver.h \
|
tcpserver.h \
|
||||||
audiotaper.h \
|
audiotaper.h \
|
||||||
keyboard.h \
|
keyboard.h \
|
||||||
wfviewtypes.h
|
wfviewtypes.h \
|
||||||
|
audiodevices.h
|
||||||
|
|
|
@ -352,6 +352,7 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="..\rtaudio\RTAudio.cpp" />
|
<ClCompile Include="..\rtaudio\RTAudio.cpp" />
|
||||||
<ClCompile Include="audioconverter.cpp" />
|
<ClCompile Include="audioconverter.cpp" />
|
||||||
|
<ClCompile Include="audiodevices.cpp" />
|
||||||
<ClCompile Include="audiohandler.cpp" />
|
<ClCompile Include="audiohandler.cpp" />
|
||||||
<ClCompile Include="commhandler.cpp" />
|
<ClCompile Include="commhandler.cpp" />
|
||||||
<ClCompile Include="freqmemory.cpp" />
|
<ClCompile Include="freqmemory.cpp" />
|
||||||
|
@ -375,6 +376,7 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\rtaudio\RTAUdio.h" />
|
<ClInclude Include="..\rtaudio\RTAUdio.h" />
|
||||||
|
<QtMoc Include="audiodevices.h" />
|
||||||
<ClInclude Include="resampler\arch.h" />
|
<ClInclude Include="resampler\arch.h" />
|
||||||
<QtMoc Include="audioconverter.h">
|
<QtMoc Include="audioconverter.h">
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
|
|
|
@ -103,6 +103,9 @@
|
||||||
<ClCompile Include="udpserver.cpp">
|
<ClCompile Include="udpserver.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="audiodevices.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="..\rtaudio\RTAUdio.h">
|
<ClInclude Include="..\rtaudio\RTAUdio.h">
|
||||||
|
@ -329,4 +332,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include=".\wfserver_resource.rc" />
|
<ResourceCompile Include=".\wfserver_resource.rc" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<QtMoc Include="audiodevices.h">
|
||||||
|
<Filter>Header Files</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -16,17 +16,17 @@ Global
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|Win32.ActiveCfg = Debug|Win32
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|Win32.Build.0 = Debug|Win32
|
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|x64.ActiveCfg = Debug|x64
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|x64.Build.0 = Debug|x64
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Debug|x64.Build.0 = Debug|x64
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|Win32.ActiveCfg = Release|Win32
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|Win32.Build.0 = Release|Win32
|
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x64.ActiveCfg = Release|x64
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x64.ActiveCfg = Release|x64
|
||||||
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x64.Build.0 = Release|x64
|
{326108AD-FA9D-3AAF-8D3E-062C4DDC34E2}.Release|x64.Build.0 = Release|x64
|
||||||
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|Win32.ActiveCfg = Debug|Win32
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||||
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|Win32.Build.0 = Debug|Win32
|
||||||
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x64.ActiveCfg = Debug|x64
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x64.Build.0 = Debug|x64
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Debug|x64.Build.0 = Debug|x64
|
||||||
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|Win32.ActiveCfg = Release|Win32
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|Win32.ActiveCfg = Release|Win32
|
||||||
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|Win32.Build.0 = Release|Win32
|
||||||
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|x64.ActiveCfg = Release|x64
|
{00E054F8-A1D4-3ECA-A8D6-DFC8A68AFD56}.Release|x64.ActiveCfg = Release|x64
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
|
Ładowanie…
Reference in New Issue