diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 8f3986a17..a8596dec4 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -973,6 +973,7 @@ void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const static void misc_config_read (LinphoneCore *lc) { LpConfig *config=lc->config; lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); + lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); } static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, const char *config_path, @@ -4300,6 +4301,11 @@ void linphone_core_stop_dtmf_stream(LinphoneCore* lc) { lc->ringstream=NULL; } +int linphone_core_get_max_calls(LinphoneCore *lc) { + return lc->max_calls; +} + + typedef struct Hook{ LinphoneCoreIterateHook fun; void *data; diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h index 65683870a..a85855def 100644 --- a/coreapi/linphonecore.h +++ b/coreapi/linphonecore.h @@ -1030,6 +1030,8 @@ float linphone_core_get_conference_local_input_volume(LinphoneCore *lc); int linphone_core_terminate_conference(LinphoneCore *lc); int linphone_core_get_conference_size(LinphoneCore *lc); +int linphone_core_get_max_calls(LinphoneCore *lc); + #ifdef __cplusplus } #endif diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index d351c77a8..8713e86d2 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1205,6 +1205,13 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreviewWindowId(JNIEn ,jobject thiz ,jlong lc ,jobject obj) { + jobject oldWindow = (jobject) linphone_core_get_native_preview_window_id((LinphoneCore*)lc); + if (oldWindow != NULL) { + env->DeleteGlobalRef(oldWindow); + } + if (obj != NULL) { + obj = env->NewGlobalRef(obj); + } linphone_core_set_native_preview_window_id((LinphoneCore*)lc,(unsigned long)obj); } @@ -1499,5 +1506,10 @@ extern "C" void msandroid_hack_speaker_state(bool speakerOn); extern "C" void Java_org_linphone_LinphoneManager_hackSpeakerState(JNIEnv* env,jobject thiz,jboolean speakerOn){ msandroid_hack_speaker_state(speakerOn); -// End Galaxy S hack functions +} +// End Galaxy S hack functions + + +extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_getMaxCalls(JNIEnv *env,jobject thiz,jlong pCore) { + return (jint) linphone_core_get_max_calls((LinphoneCore *) pCore); } diff --git a/coreapi/private.h b/coreapi/private.h index d2b78942e..49c7c4016 100644 --- a/coreapi/private.h +++ b/coreapi/private.h @@ -467,6 +467,7 @@ struct _LinphoneCore bool_t use_preview_window; int device_rotation; bool_t ringstream_autorelease; + int max_calls; }; bool_t linphone_core_can_we_add_call(LinphoneCore *lc); diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index aef993ea0..88f1be6ff 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -621,4 +621,7 @@ public interface LinphoneCore { void transferCallToAnother(LinphoneCall callToTransfer, LinphoneCall destination); LinphoneCall findCallFromUri(String uri); + + int getMaxCalls(); + } diff --git a/m4/exosip.m4 b/m4/exosip.m4 index 2c21b129d..8e469969c 100644 --- a/m4/exosip.m4 +++ b/m4/exosip.m4 @@ -4,9 +4,18 @@ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([LP_CHECK_OSIP2]) -case $target_os in - *darwin*) - OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation " +case $host_alias in + i386-apple*) + OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork" + ;; + armv6-apple*) + OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork" + ;; + armv7-apple*) + OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation -framework CFNetwork" + ;; + x86_64-apple*) + OSIP_LIBS="$OSIP_LIBS -framework CoreFoundation" ;; esac