Set default audio device if not found

merge-requests/9/merge
Phil Taylor 2022-05-13 09:55:16 +01:00
rodzic b28dab4dc2
commit 0b74407448
4 zmienionych plików z 63 dodań i 34 usunięć

Wyświetl plik

@ -61,10 +61,6 @@ audioHandler::~audioHandler()
inFormat = toQAudioFormat(setup.codec, setup.sampleRate); inFormat = toQAudioFormat(setup.codec, setup.sampleRate);
if(!setup.isinput)
{
this->setVolume(setup.localAFgain);
}
outFormat = setup.port.preferredFormat(); outFormat = setup.port.preferredFormat();
qDebug(logAudio()) << (setup.isinput ? "Input" : "Output") << "Preferred Format: SampleSize" << outFormat.sampleSize() << "Channel Count" << outFormat.channelCount() << qDebug(logAudio()) << (setup.isinput ? "Input" : "Output") << "Preferred Format: SampleSize" << outFormat.sampleSize() << "Channel Count" << outFormat.channelCount() <<
@ -171,6 +167,8 @@ audioHandler::~audioHandler()
underTimer->setSingleShot(true); underTimer->setSingleShot(true);
connect(underTimer, SIGNAL(timeout()), this, SLOT(clearUnderrun())); connect(underTimer, SIGNAL(timeout()), this, SLOT(clearUnderrun()));
this->setVolume(setup.localAFgain);
this->start(); this->start();
return true; return true;

Wyświetl plik

@ -164,6 +164,8 @@ bool paHandler::init(audioSetup setup)
qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "failed to open device" << Pa_GetErrorText(err); qInfo(logAudio()) << (setup.isinput ? "Input" : "Output") << "failed to open device" << Pa_GetErrorText(err);
} }
this->setVolume(setup.localAFgain);
return isInitialized; return isInitialized;
} }

Wyświetl plik

@ -215,10 +215,7 @@ bool rtHandler::init(audioSetup setup)
qCritical(logAudio()) << (setup.isinput ? "Input" : "Output") << QString::fromStdString(info.name) << "(" << aParams.deviceId << ") could not be probed, check audio configuration!"; qCritical(logAudio()) << (setup.isinput ? "Input" : "Output") << QString::fromStdString(info.name) << "(" << aParams.deviceId << ") could not be probed, check audio configuration!";
} }
if (!setup.isinput) this->setVolume(setup.localAFgain);
{
this->setVolume(setup.localAFgain);
}
return isInitialized; return isInitialized;

Wyświetl plik

@ -5787,24 +5787,16 @@ void wfmain::setAudioDevicesUI()
qDebug(logSystem()) << "Finding audio devices, output=" << rxSetup.name << "input="<<txSetup.name; qDebug(logSystem()) << "Finding audio devices, output=" << rxSetup.name << "input="<<txSetup.name;
int defaultAudioInputIndex = 0;
int defaultAudioOutputIndex = 0;
int inCount = 0;
int outCount = 0;
switch (prefs.audioSystem) switch (prefs.audioSystem)
{ {
case qtAudio: case qtAudio:
{ {
Pa_Terminate(); Pa_Terminate();
const auto audioOutputs = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
for (const QAudioDeviceInfo& deviceInfo : audioOutputs) {
#ifdef Q_OS_WIN
if (deviceInfo.realm() == "wasapi") {
#endif
ui->audioOutputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
ui->serverTXAudioOutputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
#ifdef Q_OS_WIN
}
#endif
}
const auto audioInputs = QAudioDeviceInfo::availableDevices(QAudio::AudioInput); const auto audioInputs = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
for (const QAudioDeviceInfo& deviceInfo : audioInputs) { for (const QAudioDeviceInfo& deviceInfo : audioInputs) {
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
@ -5812,13 +5804,26 @@ void wfmain::setAudioDevicesUI()
#endif #endif
ui->audioInputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo)); ui->audioInputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
ui->serverRXAudioInputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo)); ui->serverRXAudioInputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
inCount++;
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
} }
#endif #endif
} }
const auto audioOutputs = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
for (const QAudioDeviceInfo& deviceInfo : audioOutputs) {
#ifdef Q_OS_WIN
if (deviceInfo.realm() == "wasapi") {
#endif
ui->audioOutputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
ui->serverTXAudioOutputCombo->addItem(deviceInfo.deviceName(), QVariant::fromValue(deviceInfo));
outCount++;
#ifdef Q_OS_WIN
}
#endif
}
break;
} }
break;
case portAudio: case portAudio:
{ {
PaError err; PaError err;
@ -5833,11 +5838,10 @@ void wfmain::setAudioDevicesUI()
qInfo(logAudio()) << "PortAudio version: " << Pa_GetVersionInfo()->versionText; qInfo(logAudio()) << "PortAudio version: " << Pa_GetVersionInfo()->versionText;
int numDevices; int numDevices = Pa_GetDeviceCount();
numDevices = Pa_GetDeviceCount();
qInfo(logAudio()) << "Pa_CountDevices returned" << numDevices; qInfo(logAudio()) << "Pa_CountDevices returned" << numDevices;
const PaDeviceInfo* info; const PaDeviceInfo* info;
for (int i = 0; i < numDevices; i++) for (int i = 0; i < numDevices; i++)
{ {
info = Pa_GetDeviceInfo(i); info = Pa_GetDeviceInfo(i);
@ -5846,15 +5850,23 @@ void wfmain::setAudioDevicesUI()
ui->audioInputCombo->addItem(info->name, i); ui->audioInputCombo->addItem(info->name, i);
ui->serverRXAudioInputCombo->addItem(info->name, i); ui->serverRXAudioInputCombo->addItem(info->name, i);
if (i == Pa_GetDefaultInputDevice()) {
defaultAudioInputIndex = inCount;
}
inCount++;
} }
if (info->maxOutputChannels > 0) { if (info->maxOutputChannels > 0) {
qDebug(logAudio()) << (i == Pa_GetDefaultOutputDevice() ? "*" : " ") << "(" << i << ") Output Device : " << info->name; qDebug(logAudio()) << (i == Pa_GetDefaultOutputDevice() ? "*" : " ") << "(" << i << ") Output Device : " << info->name;
ui->audioOutputCombo->addItem(info->name, i); ui->audioOutputCombo->addItem(info->name, i);
ui->serverTXAudioOutputCombo->addItem(info->name, i); ui->serverTXAudioOutputCombo->addItem(info->name, i);
if (i == Pa_GetDefaultOutputDevice()) {
defaultAudioOutputIndex = outCount;
}
outCount++;
} }
} }
break;
} }
break;
case rtAudio: case rtAudio:
{ {
Pa_Terminate(); Pa_Terminate();
@ -5899,22 +5911,29 @@ void wfmain::setAudioDevicesUI()
for (unsigned int i = 1; i < devices; i++) { for (unsigned int i = 1; i < devices; i++) {
info = audio->getDeviceInfo(i); info = audio->getDeviceInfo(i);
if (info.outputChannels > 0) {
qInfo(logAudio()) << (info.isDefaultOutput ? "*" : " ") << "(" << i << ") Output Device : " << QString::fromStdString(info.name);
ui->audioOutputCombo->addItem(QString::fromStdString(info.name), i);
ui->serverTXAudioOutputCombo->addItem(QString::fromStdString(info.name), i);
}
if (info.inputChannels > 0) { if (info.inputChannels > 0) {
qInfo(logAudio()) << (info.isDefaultInput ? "*" : " ") << "(" << i << ") Input Device : " << QString::fromStdString(info.name); qInfo(logAudio()) << (info.isDefaultInput ? "*" : " ") << "(" << i << ") Input Device : " << QString::fromStdString(info.name);
ui->audioInputCombo->addItem(QString::fromStdString(info.name), i); ui->audioInputCombo->addItem(QString::fromStdString(info.name), i);
ui->serverRXAudioInputCombo->addItem(QString::fromStdString(info.name), i); ui->serverRXAudioInputCombo->addItem(QString::fromStdString(info.name), i);
if (info.isDefaultInput) {
defaultAudioInputIndex = inCount;
}
inCount++;
}
if (info.outputChannels > 0) {
qInfo(logAudio()) << (info.isDefaultOutput ? "*" : " ") << "(" << i << ") Output Device : " << QString::fromStdString(info.name);
ui->audioOutputCombo->addItem(QString::fromStdString(info.name), i);
ui->serverTXAudioOutputCombo->addItem(QString::fromStdString(info.name), i);
if (info.isDefaultOutput) {
defaultAudioOutputIndex = outCount;
}
outCount++;
} }
} }
delete audio; delete audio;
break;
} }
break;
} }
@ -5935,6 +5954,7 @@ void wfmain::setAudioDevicesUI()
} }
else { else {
qDebug(logSystem()) << "Audio input not found"; qDebug(logSystem()) << "Audio input not found";
ui->audioInputCombo->setCurrentIndex(defaultAudioInputIndex);
} }
int audioOutputIndex = ui->audioOutputCombo->findText(rxSetup.name); int audioOutputIndex = ui->audioOutputCombo->findText(rxSetup.name);
@ -5943,24 +5963,36 @@ void wfmain::setAudioDevicesUI()
} }
else { else {
qDebug(logSystem()) << "Audio output not found"; qDebug(logSystem()) << "Audio output not found";
ui->audioOutputCombo->setCurrentIndex(defaultAudioOutputIndex);
} }
if (!serverConfig.rigs.isEmpty()) if (!serverConfig.rigs.isEmpty())
{ {
qInfo(logGui()) << "Got Server Audio Input: " << serverConfig.rigs.first()->rxAudioSetup.name; qInfo(logGui()) << "Got Server Audio Input: " << serverConfig.rigs.first()->rxAudioSetup.name;
serverConfig.rigs.first()->rxAudioSetup.type = prefs.audioSystem;
serverConfig.rigs.first()->txAudioSetup.type = prefs.audioSystem;
int serverAudioInputIndex = ui->serverRXAudioInputCombo->findText(serverConfig.rigs.first()->rxAudioSetup.name); int serverAudioInputIndex = ui->serverRXAudioInputCombo->findText(serverConfig.rigs.first()->rxAudioSetup.name);
if (serverAudioInputIndex != -1) { if (serverAudioInputIndex != -1) {
ui->serverRXAudioInputCombo->setCurrentIndex(serverAudioInputIndex); ui->serverRXAudioInputCombo->setCurrentIndex(serverAudioInputIndex);
} }
else {
// Set to default
ui->serverRXAudioInputCombo->setCurrentIndex(defaultAudioInputIndex);
}
qInfo(logGui()) << "Got Server Audio Output: " << serverConfig.rigs.first()->txAudioSetup.name; qInfo(logGui()) << "Got Server Audio Output: " << serverConfig.rigs.first()->txAudioSetup.name;
int serverAudioOutputIndex = ui->serverTXAudioOutputCombo->findText(serverConfig.rigs.first()->txAudioSetup.name); int serverAudioOutputIndex = ui->serverTXAudioOutputCombo->findText(serverConfig.rigs.first()->txAudioSetup.name);
if (serverAudioOutputIndex != -1) { if (serverAudioOutputIndex != -1) {
ui->serverTXAudioOutputCombo->setCurrentIndex(serverAudioOutputIndex); ui->serverTXAudioOutputCombo->setCurrentIndex(serverAudioOutputIndex);
} }
else {
ui->serverTXAudioOutputCombo->setCurrentIndex(defaultAudioOutputIndex);
}
} }
// Set these to default audio devices initially.
qDebug(logSystem()) << "Audio devices done."; qDebug(logSystem()) << "Audio devices done.";
} }