summaryrefslogtreecommitdiffstats
path: root/pica-client/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'pica-client/dialogs')
-rw-r--r--pica-client/dialogs/settingsdialog.cpp10
-rw-r--r--pica-client/dialogs/settingsdialog.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/pica-client/dialogs/settingsdialog.cpp b/pica-client/dialogs/settingsdialog.cpp
index a319f12..e1faf8d 100644
--- a/pica-client/dialogs/settingsdialog.cpp
+++ b/pica-client/dialogs/settingsdialog.cpp
@@ -201,6 +201,13 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
"are on speakers. Has no effect where the operating system "
"already does it."));
+ cbAutoCaptureGain = new QCheckBox(tr("Automatic microphone gain"), this);
+ cbAutoCaptureGain->setToolTip(tr("Turns the microphone's own recording level down during a "
+ "call if it is loud enough to distort, and puts it back "
+ "afterwards. A microphone set too loud clips, and clipping "
+ "cannot be repaired later - it also stops echo cancellation "
+ "working."));
+
btRingTest = new QPushButton(tr("Test ring 🔔"), this);
connect(btRingTest, SIGNAL(clicked()), this, SLOT(toggleRingTest()));
@@ -218,6 +225,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
audiodevlayout->addWidget(lbAudioPlaybackDev);
audiodevlayout->addWidget(audioPlaybackDev);
audiodevlayout->addWidget(cbEchoCancel);
+ audiodevlayout->addWidget(cbAutoCaptureGain);
audiodevlayout->addWidget(btAudioTest);
audiodevlayout->addWidget(audioTestStatus);
audiodevlayout->addWidget(lbAudioRingDev);
@@ -1054,6 +1062,7 @@ void SettingsDialog::loadSettings()
audioPlaybackDev->setCurrentIndex(audioPlaybackDevItem);
cbEchoCancel->setChecked(st.loadValue("audio.echo_cancel", 1).toBool());
+ cbAutoCaptureGain->setChecked(st.loadValue("audio.auto_capture_gain", 1).toBool());
QString audioRingDevVal = st.loadValue("audio.ring_device", "default").toString();
int audioRingDevItem = audioRingDev->findData(audioRingDevVal);
@@ -1108,6 +1117,7 @@ void SettingsDialog::storeSettings()
st.storeValue("audio.playback_device", audioPlaybackDev->itemData(audioPlaybackDev->currentIndex()).toString());
st.storeValue("audio.ring_device", audioRingDev->itemData(audioRingDev->currentIndex()).toString());
st.storeValue("audio.echo_cancel", cbEchoCancel->isChecked() ? "1" : "0");
+ st.storeValue("audio.auto_capture_gain", cbAutoCaptureGain->isChecked() ? "1" : "0");
if (audioDriver)
{
diff --git a/pica-client/dialogs/settingsdialog.h b/pica-client/dialogs/settingsdialog.h
index 424d43f..b879a74 100644
--- a/pica-client/dialogs/settingsdialog.h
+++ b/pica-client/dialogs/settingsdialog.h
@@ -81,6 +81,7 @@ private:
// Whether to run our own acoustic echo cancellation. Ignored when the
// platform provides one - see AudioDevice::PlatformDriverName().
QCheckBox *cbEchoCancel;
+ QCheckBox *cbAutoCaptureGain;
QComboBox *videoDev;
QPushButton *videoDevRefresh;