From 7ea31e5b539996739d2d9383f7b45d5292a65adf Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Fri, 3 Mar 2017 14:05:41 +0100 Subject: [PATCH] feat(ui/views/App/Settings/SettingsAudio): supports echo cancellation --- linphone-desktop/assets/languages/en.ts | 4 ++++ linphone-desktop/assets/languages/fr.ts | 4 ++++ .../src/components/settings/SettingsModel.cpp | 11 +++++++++++ .../src/components/settings/SettingsModel.hpp | 7 +++++++ .../ui/views/App/Settings/SettingsAudio.qml | 12 ++++++++++++ 5 files changed, 38 insertions(+) diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts index 7c0bb44cf..6bbac0d0c 100644 --- a/linphone-desktop/assets/languages/en.ts +++ b/linphone-desktop/assets/languages/en.ts @@ -685,6 +685,10 @@ Server url not configured. ringLabel Ring + + echoCancellationLabel + Enable echo cancellation + SettingsCallsChat diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts index be788e13e..684a9e148 100644 --- a/linphone-desktop/assets/languages/fr.ts +++ b/linphone-desktop/assets/languages/fr.ts @@ -695,6 +695,10 @@ Url du serveur non configurée. ringLabel Sonnerie + + echoCancellationLabel + Activer annulation d'écho + SettingsCallsChat diff --git a/linphone-desktop/src/components/settings/SettingsModel.cpp b/linphone-desktop/src/components/settings/SettingsModel.cpp index 479449f43..4d2eacc4e 100644 --- a/linphone-desktop/src/components/settings/SettingsModel.cpp +++ b/linphone-desktop/src/components/settings/SettingsModel.cpp @@ -137,6 +137,17 @@ void SettingsModel::setRingPath (const QString &path) { emit ringPathChanged(cleaned_path); } +// ----------------------------------------------------------------------------- + +bool SettingsModel::getEchoCancellationEnabled () const { + return CoreManager::getInstance()->getCore()->echoCancellationEnabled(); +} + +void SettingsModel::setEchoCancellationEnabled (bool status) { + CoreManager::getInstance()->getCore()->enableEchoCancellation(status); + emit echoCancellationEnabledChanged(status); +} + // ============================================================================= // Chat & calls. // ============================================================================= diff --git a/linphone-desktop/src/components/settings/SettingsModel.hpp b/linphone-desktop/src/components/settings/SettingsModel.hpp index 5e9758810..7c07fd165 100644 --- a/linphone-desktop/src/components/settings/SettingsModel.hpp +++ b/linphone-desktop/src/components/settings/SettingsModel.hpp @@ -47,6 +47,8 @@ class SettingsModel : public QObject { Q_PROPERTY(QString ringPath READ getRingPath WRITE setRingPath NOTIFY ringPathChanged); + Q_PROPERTY(bool echoCancellationEnabled READ getEchoCancellationEnabled WRITE setEchoCancellationEnabled NOTIFY echoCancellationEnabledChanged); + // Chat & calls. ------------------------------------------------------------- Q_PROPERTY(bool autoAnswerStatus READ getAutoAnswerStatus WRITE setAutoAnswerStatus NOTIFY autoAnswerStatusChanged); @@ -142,6 +144,9 @@ public: QString getRingPath () const; void setRingPath (const QString &path); + bool getEchoCancellationEnabled () const; + void setEchoCancellationEnabled (bool status); + // Chat & calls. ------------------------------------------------------------- bool getAutoAnswerStatus () const; @@ -242,6 +247,8 @@ signals: void ringPathChanged (const QString &path); + void echoCancellationEnabledChanged (bool status); + // Chat & calls. ------------------------------------------------------------- void autoAnswerStatusChanged (bool status); diff --git a/linphone-desktop/ui/views/App/Settings/SettingsAudio.qml b/linphone-desktop/ui/views/App/Settings/SettingsAudio.qml index 3711eb8f0..aaf6e2a2a 100644 --- a/linphone-desktop/ui/views/App/Settings/SettingsAudio.qml +++ b/linphone-desktop/ui/views/App/Settings/SettingsAudio.qml @@ -70,5 +70,17 @@ TabContainer { } } } + + FormLine { + FormGroup { + label: qsTr('echoCancellationLabel') + + Switch { + checked: SettingsModel.echoCancellationEnabled + + onClicked: SettingsModel.echoCancellationEnabled = !checked + } + } + } } }