Fix crash when no audio device is found

half-duplex
Phil Taylor 2023-01-15 11:14:28 +00:00
rodzic 120899e9f8
commit 3baf3eae65
2 zmienionych plików z 25 dodań i 19 usunięć

Wyświetl plik

@ -355,6 +355,7 @@ int audioDevices::findInput(QString type, QString name)
int usb = -1; int usb = -1;
QString msg; QString msg;
QTextStream s(&msg); QTextStream s(&msg);
for (int f = 0; f < inputs.size(); f++) for (int f = 0; f < inputs.size(); f++)
{ {
//qInfo(logAudio()) << "Found device" << inputs[f].name; //qInfo(logAudio()) << "Found device" << inputs[f].name;
@ -391,7 +392,7 @@ int audioDevices::findInput(QString type, QString name)
ret = def; ret = def;
} }
else { else {
s << " and no default device found, aborting!"; s << " and no default device found, aborting!";
} }
} }
@ -406,6 +407,7 @@ int audioDevices::findOutput(QString type, QString name)
int usb = -1; int usb = -1;
QString msg; QString msg;
QTextStream s(&msg); QTextStream s(&msg);
for (int f = 0; f < outputs.size(); f++) for (int f = 0; f < outputs.size(); f++)
{ {
//qInfo(logAudio()) << "Found device" << outputs[f].name; //qInfo(logAudio()) << "Found device" << outputs[f].name;
@ -448,4 +450,4 @@ int audioDevices::findOutput(QString type, QString name)
} }
qInfo(logAudio()) << msg; qInfo(logAudio()) << msg;
return ret; return ret;
} }

Wyświetl plik

@ -2400,7 +2400,7 @@ void wfmain::on_serverAudioPortText_textChanged(QString text)
void wfmain::on_serverRXAudioInputCombo_currentIndexChanged(int value) void wfmain::on_serverRXAudioInputCombo_currentIndexChanged(int value)
{ {
if (!serverConfig.rigs.isEmpty()) if (!serverConfig.rigs.isEmpty() && value>=0)
{ {
if (prefs.audioSystem == qtAudio) { if (prefs.audioSystem == qtAudio) {
serverConfig.rigs.first()->rxAudioSetup.port = audioDev->getInputDeviceInfo(value); serverConfig.rigs.first()->rxAudioSetup.port = audioDev->getInputDeviceInfo(value);
@ -2417,7 +2417,7 @@ void wfmain::on_serverRXAudioInputCombo_currentIndexChanged(int value)
void wfmain::on_serverTXAudioOutputCombo_currentIndexChanged(int value) void wfmain::on_serverTXAudioOutputCombo_currentIndexChanged(int value)
{ {
if (!serverConfig.rigs.isEmpty()) if (!serverConfig.rigs.isEmpty() && value>=0)
{ {
if (prefs.audioSystem == qtAudio) { if (prefs.audioSystem == qtAudio) {
serverConfig.rigs.first()->txAudioSetup.port = audioDev->getOutputDeviceInfo(value); serverConfig.rigs.first()->txAudioSetup.port = audioDev->getOutputDeviceInfo(value);
@ -5623,29 +5623,31 @@ void wfmain::on_passwordTxt_textChanged(QString text)
void wfmain::on_audioOutputCombo_currentIndexChanged(int value) void wfmain::on_audioOutputCombo_currentIndexChanged(int value)
{ {
if (prefs.audioSystem == qtAudio) { if (value>=0) {
rxSetup.port = audioDev->getOutputDeviceInfo(value); if (prefs.audioSystem == qtAudio) {
} rxSetup.port = audioDev->getOutputDeviceInfo(value);
else { }
rxSetup.portInt = audioDev->getOutputDeviceInt(value); else {
} rxSetup.portInt = audioDev->getOutputDeviceInt(value);
}
rxSetup.name = audioDev->getOutputName(value); rxSetup.name = audioDev->getOutputName(value);
}
qDebug(logGui()) << "Changed audio output to:" << rxSetup.name; qDebug(logGui()) << "Changed audio output to:" << rxSetup.name;
} }
void wfmain::on_audioInputCombo_currentIndexChanged(int value) void wfmain::on_audioInputCombo_currentIndexChanged(int value)
{ {
if (value >=0) {
if (prefs.audioSystem == qtAudio) {
txSetup.port = audioDev->getInputDeviceInfo(value);
}
else {
txSetup.portInt = audioDev->getInputDeviceInt(value);
}
if (prefs.audioSystem == qtAudio) { txSetup.name = audioDev->getInputName(value);
txSetup.port = audioDev->getInputDeviceInfo(value);
} }
else {
txSetup.portInt = audioDev->getInputDeviceInt(value);
}
txSetup.name = audioDev->getInputName(value);
qDebug(logGui()) << "Changed audio input to:" << txSetup.name; qDebug(logGui()) << "Changed audio input to:" << txSetup.name;
} }
@ -6808,6 +6810,7 @@ void wfmain::on_radioStatusBtn_clicked()
void wfmain::setAudioDevicesUI() void wfmain::setAudioDevicesUI()
{ {
qInfo() << "Looking for inputs";
ui->audioInputCombo->blockSignals(true); ui->audioInputCombo->blockSignals(true);
ui->audioInputCombo->clear(); ui->audioInputCombo->clear();
ui->audioInputCombo->addItems(audioDev->getInputs()); ui->audioInputCombo->addItems(audioDev->getInputs());
@ -6816,6 +6819,7 @@ void wfmain::setAudioDevicesUI()
ui->audioInputCombo->blockSignals(false); ui->audioInputCombo->blockSignals(false);
ui->audioInputCombo->setCurrentIndex(audioDev->findInput("Client", txSetup.name)); ui->audioInputCombo->setCurrentIndex(audioDev->findInput("Client", txSetup.name));
qInfo() << "Looking for outputs";
ui->audioOutputCombo->blockSignals(true); ui->audioOutputCombo->blockSignals(true);
ui->audioOutputCombo->clear(); ui->audioOutputCombo->clear();
ui->audioOutputCombo->addItems(audioDev->getOutputs()); ui->audioOutputCombo->addItems(audioDev->getOutputs());