From 1e195e86b944c7ee5822146195c0767360cad78c Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Thu, 25 Nov 2010 13:53:08 +0100 Subject: [PATCH] add setRing java binding --- coreapi/callbacks.c | 2 +- coreapi/linphonecore.c | 2 +- coreapi/linphonecore_jni.cc | 20 +++++++++++++++++++ .../org/linphone/core/LinphoneCore.java | 14 ++++++++++++- 4 files changed, 35 insertions(+), 3 deletions(-) diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index d4f5193f3..b0108aee4 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -124,7 +124,7 @@ static void call_received(SalOp *h){ lc->ringstream=NULL; lc->dmfs_playing_start_time=0; } - if(lc->ringstream==NULL){ + if(lc->ringstream==NULL && lc->sound_conf.local_ring){ MSSndCard *ringcard=lc->sound_conf.lsd_card ?lc->sound_conf.lsd_card : lc->sound_conf.ring_sndcard; ms_message("Starting local ring..."); lc->ringstream=ring_start(lc->sound_conf.local_ring,2000,ringcard); diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index d06f3cf3b..4df01e63b 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2830,7 +2830,7 @@ void linphone_core_set_sound_source(LinphoneCore *lc, char source) /** * Sets the path to a wav file used for ringing. * - * The file must be a wav 16bit linear. + * @param path The file must be a wav 16bit linear. Local ring is disabled if null * * @ingroup media_parameters **/ diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 50444077c..552129acc 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -580,6 +580,26 @@ extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_isVideoEnabled(JNIEn ,jlong lc) { return linphone_core_video_enabled((LinphoneCore*)lc); } +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setRing(JNIEnv* env + ,jobject thiz + ,jlong lc + ,jstring jpath) { + const char* path = jpath?env->GetStringUTFChars(jpath, NULL):NULL; + linphone_core_set_ring((LinphoneCore*)lc,path); + if (path) env->ReleaseStringUTFChars(jpath, path); +} +extern "C" jstring Java_org_linphone_core_LinphoneCoreImpl_getRing(JNIEnv* env + ,jobject thiz + ,jlong lc + ) { + const char* path = linphone_core_get_ring((LinphoneCore*)lc); + if (path) { + return env->NewStringUTF(path); + } else { + return NULL; + } +} + //ProxyConfig diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 0c8c0afeb..fae83ffac 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -115,7 +115,7 @@ public interface LinphoneCore { } } /** - * Describes proxy registration states. + * Describes firewall policy. * */ static public class FirewallPolicy { @@ -454,4 +454,16 @@ public interface LinphoneCore { * @return previously set firewall policy. */ public FirewallPolicy getFirewallPolicy(); + /** + * Sets the path to a wav file used for ringing. + * + * @param path The file must be a wav 16bit linear. Local ring is disabled if null + */ + public void setRing(String path); + /** + * gets the path to a wav file used for ringing. + * + * @param null if not set + */ + public String getRing(); }