diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 91984104e..74a076936 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1208,3 +1208,21 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_enableIpv6(JNIEnv* env,j ,jlong lc, jboolean enable) { linphone_core_enable_ipv6((LinphoneCore*)lc,enable); } + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_adjustSoftwareVolume(JNIEnv* env,jobject thiz + ,jlong ptr, jint db) { + LinphoneCore *lc = (LinphoneCore *) ptr; + + if (db == 0) { + linphone_core_set_playback_gain_db(lc, 0); + return; + } + + float gain = linphone_core_get_playback_gain_db(lc) + db; + if (gain > 0) gain = 0; + + linphone_core_set_playback_gain_db(lc, gain); +} + + + diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 7ce7f0dbe..328ef8c87 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -555,4 +555,5 @@ public interface LinphoneCore { void startEchoCalibration(Object data) throws LinphoneCoreException; void enableIpv6(boolean enable); + void adjustSoftwareVolume(int i); }