kopia lustrzana https://gitlab.com/eliggett/wfview
Set default audio device if not found
rodzic
b28dab4dc2
commit
0b74407448
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
84
wfmain.cpp
84
wfmain.cpp
|
@ -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.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue