Skip to content

Commit

Permalink
FIX(client): Debug
Browse files Browse the repository at this point in the history
  • Loading branch information
Hartmnt committed Oct 15, 2024
1 parent cb01bfa commit 1a55215
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
28 changes: 17 additions & 11 deletions src/mumble/AudioWizard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,7 @@ AudioWizard::AudioWizard(QWidget *p) : QWizard(p) {
qcbInput->addItem(air->name);
if (air->name == AudioInputRegistrar::current) {
qcbInput->setCurrentIndex(qcbInput->count() - 1);
EchoCancelOptionID echoCancelOptionId = firstUsableEchoCancellation(air, qcbOutput->currentText());
if (echoCancelOptionId != EchoCancelOptionID::DISABLED) {
qcbEcho->setEnabled(true);
qcbEcho->setChecked(Global::get().s.echoOption != EchoCancelOptionID::DISABLED);
}
updateEchoCheckbox(air);
}
QList< audioDevice > ql = air->getDeviceChoices();
}
Expand Down Expand Up @@ -243,8 +239,7 @@ void AudioWizard::on_qcbInputDevice_activated(int) {
air->setDeviceChoice(qcbInputDevice->itemData(idx), Global::get().s);
}

EchoCancelOptionID echoCancelOptionId = firstUsableEchoCancellation(air, qcbOutput->currentText());
qcbEcho->setEnabled(echoCancelOptionId != EchoCancelOptionID::DISABLED);
updateEchoCheckbox(air);

Global::get().ai = AudioInputPtr(air->create());
Global::get().ai->start(QThread::HighestPriority);
Expand Down Expand Up @@ -284,9 +279,8 @@ void AudioWizard::on_qcbOutputDevice_activated(int) {
bDelay = aor->usesOutputDelay();
}

AudioInputRegistrar *air = AudioInputRegistrar::qmNew->value(qcbInput->currentText());
EchoCancelOptionID echoCancelOptionId = firstUsableEchoCancellation(air, qcbOutput->currentText());
qcbEcho->setEnabled(echoCancelOptionId != EchoCancelOptionID::DISABLED);
AudioInputRegistrar *air = AudioInputRegistrar::qmNew->value(qcbInput->currentText());
updateEchoCheckbox(air);

Global::get().ao = AudioOutputPtr(aor->create());
Global::get().ao->start(QThread::HighPriority);
Expand Down Expand Up @@ -767,9 +761,21 @@ void AudioWizard::on_qrbQualityCustom_clicked() {
restartAudio(true);
}

void AudioWizard::updateEchoCheckbox(AudioInputRegistrar *air) {
bool echoCancelPossible =
firstUsableEchoCancellation(air, qcbOutput->currentText()) != EchoCancelOptionID::DISABLED;

qcbEcho->setEnabled(echoCancelPossible);
if (echoCancelPossible) {
qcbEcho->setChecked(Global::get().s.echoOption != EchoCancelOptionID::DISABLED);
} else {
qcbEcho->setChecked(false);
}
}

EchoCancelOptionID AudioWizard::firstUsableEchoCancellation(AudioInputRegistrar *air, const QString outputSys) {
for (EchoCancelOptionID ecoid : air->echoOptions) {
if (air->canEcho(ecoid, outputSys)) {
if (air->canEcho(ecoid, !outputSys.isEmpty() ? outputSys : Global::get().s.qsAudioOutput)) {
return ecoid;
}
}
Expand Down
2 changes: 2 additions & 0 deletions src/mumble/AudioWizard.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ class AudioWizard : public QWizard, public Ui::AudioWizard {
Q_OBJECT
Q_DISABLE_COPY(AudioWizard)

void updateEchoCheckbox(AudioInputRegistrar *air);

/// Which echo cancellation is usable depends on the audio backend and the device combination.
/// This function will iterate through the list of available echo cancellation in the audio backend and check with
/// the backend whether this echo cancellation option works for current device combination.
Expand Down

0 comments on commit 1a55215

Please sign in to comment.