From 3ac2d110e563a3902697445839f4061939f29191 Mon Sep 17 00:00:00 2001
From: Sylvain Berfini <sylvain.berfini@belledonne-communications.com>
Date: Fri, 9 Nov 2012 09:34:09 +0100
Subject: [PATCH] Microphone gain & U/D bandwidth in JNI

---
 coreapi/linphonecore_jni.cc                   | 21 +++++++++++++++++++
 .../org/linphone/core/LinphoneCore.java       |  6 ++++++
 .../org/linphone/core/LinphoneCoreImpl.java   | 15 +++++++++++++
 3 files changed, 42 insertions(+)

diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc
index 85bd102595..a66a07b618 100644
--- a/coreapi/linphonecore_jni.cc
+++ b/coreapi/linphonecore_jni.cc
@@ -703,6 +703,27 @@ extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_isNetworkStateReacha
 		return (jboolean)linphone_core_is_network_reachable((LinphoneCore*)lc);
 }
 
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setUploadBandwidth(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jint bandwidth) {
+		 linphone_core_set_upload_bandwidth((LinphoneCore*)lc,bandwidth);
+}
+
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDownloadBandwidth(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jint bandwidth) {
+		linphone_core_set_download_bandwidth((LinphoneCore*)lc,bandwidth);
+}
+
+extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setMicrophoneGain(JNIEnv*  env
+		,jobject  thiz
+		,jlong lc
+		,jfloat gain) {
+		linphone_core_set_microphone_gain_db((LinphoneCore*)lc,gain);
+}
+
 extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPlaybackGain(	JNIEnv*  env
 		,jobject  thiz
 		,jlong lc
diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java
index 49b15c3693..51b6d029ab 100644
--- a/java/common/org/linphone/core/LinphoneCore.java
+++ b/java/common/org/linphone/core/LinphoneCore.java
@@ -849,4 +849,10 @@ public interface LinphoneCore {
 	 * Once this time is elapsed (ringing included), the call is automatically hung up.
 	**/
 	void setInCallTimeout(int timeout);
+	
+	void setUploadBandwidth(int bandwidth);
+	
+	void setDownloadBandwidth(int bandwidth);
+	
+	void setMicrophoneGain(float gain);
 }
diff --git a/java/impl/org/linphone/core/LinphoneCoreImpl.java b/java/impl/org/linphone/core/LinphoneCoreImpl.java
index 138dc41f35..0a28af7d85 100644
--- a/java/impl/org/linphone/core/LinphoneCoreImpl.java
+++ b/java/impl/org/linphone/core/LinphoneCoreImpl.java
@@ -788,4 +788,19 @@ class LinphoneCoreImpl implements LinphoneCore {
 	{
 		setInCallTimeout(nativePtr, timeout);
 	}
+	
+	private native void setUploadBandwidth(long ptr, int bandwidth);
+	public void setUploadBandwidth(int bandwidth) {
+		setUploadBandwidth(nativePtr, bandwidth);
+	}
+	
+	private native void setDownloadBandwidth(long ptr, int bandwidth);
+	public void setDownloadBandwidth(int bandwidth) {
+		setUploadBandwidth(nativePtr, bandwidth);
+	}
+	
+	private native void setMicrophoneGain(long ptr, float gain);
+	public void setMicrophoneGain(float gain) {
+		setUploadBandwidth(nativePtr, gain);
+	}
 }
-- 
GitLab