From 3b4e75c5b0cfc64d6ee1295205b7bdeb9df41a2b Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Mon, 24 Jan 2011 10:45:40 +0100 Subject: [PATCH 1/2] disable EC while in speaker mode --- src/org/linphone/AboutActivity.java | 2 +- src/org/linphone/DialerActivity.java | 14 +++++++++++++- src/org/linphone/LinphoneActivity.java | 2 +- src/org/linphone/core/LinphoneCallImpl.java | 18 +++++++++++++++++- submodules/linphone | 2 +- 5 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/AboutActivity.java b/src/org/linphone/AboutActivity.java index 0e54ed1fc..290d82656 100644 --- a/src/org/linphone/AboutActivity.java +++ b/src/org/linphone/AboutActivity.java @@ -37,6 +37,6 @@ public class AboutActivity extends Activity { } catch (NameNotFoundException e) { Log.e(LinphoneService.TAG, "cannot get version name", e); } - } + } } diff --git a/src/org/linphone/DialerActivity.java b/src/org/linphone/DialerActivity.java index bed54dcdb..fd2b18933 100644 --- a/src/org/linphone/DialerActivity.java +++ b/src/org/linphone/DialerActivity.java @@ -555,6 +555,12 @@ public class DialerActivity extends Activity implements LinphoneCoreListener { } else { mAudioManager.setSpeakerphoneOn(true); } + LinphoneCore lLinphoneCore = LinphoneService.instance().getLinphoneCore(); + if (lLinphoneCore.isIncall()) { + /*disable EC*/ + lLinphoneCore.getCurrentCall().enableEchoCancellation(false); + lLinphoneCore.getCurrentCall().enableEchoLimiter(true); + } } private void routeAudioToReceiver() { @@ -563,7 +569,13 @@ public class DialerActivity extends Activity implements LinphoneCoreListener { AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL); } else { mAudioManager.setSpeakerphoneOn(false); - } + } + LinphoneCore lLinphoneCore = LinphoneService.instance().getLinphoneCore(); + if (lLinphoneCore.isIncall()) { + //Restore default value + lLinphoneCore.getCurrentCall().enableEchoCancellation(lLinphoneCore.isEchoCancellationEnabled()); + lLinphoneCore.getCurrentCall().enableEchoLimiter(false); + } } private void callPending(LinphoneCall call) { mDecline.setEnabled(true); diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 56ce8c84b..af04225d1 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -160,7 +160,7 @@ public class LinphoneActivity extends TabActivity { @Override protected void onDestroy() { super.onDestroy(); - + } @Override diff --git a/src/org/linphone/core/LinphoneCallImpl.java b/src/org/linphone/core/LinphoneCallImpl.java index e2aad29a1..001443492 100644 --- a/src/org/linphone/core/LinphoneCallImpl.java +++ b/src/org/linphone/core/LinphoneCallImpl.java @@ -31,7 +31,10 @@ class LinphoneCallImpl implements LinphoneCall { native private int getState(long nativePtr); private native long getCurrentParamsCopy(long nativePtr); private native void enableCamera(long nativePtr, boolean enabled); - + private native void enableEchoCancellation(long nativePtr,boolean enable); + private native boolean isEchoCancellationEnabled(long nativePtr) ; + private native void enableEchoLimiter(long nativePtr,boolean enable); + private native boolean isEchoLimiterEnabled(long nativePtr) ; protected LinphoneCallImpl(long aNativePtr) { nativePtr = aNativePtr; @@ -72,4 +75,17 @@ class LinphoneCallImpl implements LinphoneCall { public boolean equals(Object call) { return nativePtr == ((LinphoneCallImpl)call).nativePtr; } + public void enableEchoCancellation(boolean enable) { + enableEchoCancellation(nativePtr,enable); + + } + public boolean isEchoCancellationEnabled() { + return isEchoCancellationEnabled(nativePtr); + } + public void enableEchoLimiter(boolean enable) { + enableEchoLimiter(nativePtr,enable); + } + public boolean isEchoLimiterEnabled() { + return isEchoLimiterEnabled(nativePtr); + } } diff --git a/submodules/linphone b/submodules/linphone index fa1e4658b..744739d6f 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit fa1e4658bde1b9b3f7abc8745db71d15287694e3 +Subproject commit 744739d6f69f170f7ef19d8d589c06f1adb37eea From c6f925f9e480729d093955de39718f3d6a0046cc Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Mon, 24 Jan 2011 10:56:32 +0100 Subject: [PATCH 2/2] update linphone --- submodules/linphone | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/linphone b/submodules/linphone index 744739d6f..0a4d1c924 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 744739d6f69f170f7ef19d8d589c06f1adb37eea +Subproject commit 0a4d1c9248be0fb45eb2c410b036107176280513