From 57a2bde8a22d52a8aa8d3bffeb18c8ebe88a4b5c Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 12 Nov 2010 09:03:10 +0100 Subject: [PATCH 1/2] implement enable video call java binding --- coreapi/linphonecore_jni.cc | 14 ++++++++++++ .../org/linphone/core/LinphoneCore.java | 22 +++++++++++++++++-- .../common/org/linphone/core/VideoWindow.java | 5 ----- mediastreamer2 | 2 +- 4 files changed, 35 insertions(+), 8 deletions(-) delete mode 100644 java/common/org/linphone/core/VideoWindow.java diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index d22edef61..cf2a99c06 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -562,6 +562,20 @@ extern "C" long Java_org_linphone_core_LinphoneCoreImpl_createChatRoom(JNIEnv* return (long)lResult; } +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_enableVideo(JNIEnv* env + ,jobject thiz + ,jlong lc + ,jboolean vcap_enabled + ,jboolean display_enabled) { + linphone_core_enable_video((LinphoneCore*)lc, vcap_enabled,display_enabled); + +} +extern "C" jboolean Java_org_linphone_core_LinphoneCoreImpl_isVideoEnabled(JNIEnv* env + ,jobject thiz + ,jlong lc) { + return linphone_core_video_enabled((LinphoneCore*)lc); +} + //ProxyConfig extern "C" jlong Java_org_linphone_core_LinphoneProxyConfigImpl_newLinphoneProxyConfig(JNIEnv* env,jobject thiz) { diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 655f95f4d..e9471201d 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -372,6 +372,24 @@ public interface LinphoneCore { */ LinphoneChatRoom createChatRoom(String to); - public void setVideoWindow(VideoWindow w); - public void setPreviewWindow(VideoWindow w); + public void setVideoWindow(Object w); + public void setPreviewWindow(Object w); + /** + * Enables video globally. + * + * + * This function does not have any effect during calls. It just indicates #LinphoneCore to + * initiate future calls with video or not. The two boolean parameters indicate in which + * direction video is enabled. Setting both to false disables video entirely. + * + * @param vcap_enabled indicates whether video capture is enabled + * @param display_enabled indicates whether video display should be shown + * + **/ + void enableVideo(boolean vcap_enabled, boolean display_enabled); + /** + * Returns TRUE if video is enabled, FALSE otherwise. + * + ***/ + boolean isVideoEnabled(); } diff --git a/java/common/org/linphone/core/VideoWindow.java b/java/common/org/linphone/core/VideoWindow.java deleted file mode 100644 index d4a46b931..000000000 --- a/java/common/org/linphone/core/VideoWindow.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.linphone.core; - -public interface VideoWindow { - -} diff --git a/mediastreamer2 b/mediastreamer2 index ffacf5671..e59157a44 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit ffacf56718c198cb80a290f7a65975916d8a9b6b +Subproject commit e59157a44a7b6aa1f1fa756325047e98c2be3786 From f86a75c0e1a7906efe725eada21c609d104c6c92 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 12 Nov 2010 10:10:26 +0100 Subject: [PATCH 2/2] fix java linphone core creation without configuration file --- coreapi/linphonecore_jni.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index cf2a99c06..e0a7f3e7e 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -298,8 +298,8 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_newLinphoneCore(JNIEnv* ,jstring jfactoryConfig ,jobject juserdata){ - const char* userConfig = env->GetStringUTFChars(juserConfig, NULL); - const char* factoryConfig = env->GetStringUTFChars(jfactoryConfig, NULL); + const char* userConfig = juserConfig?env->GetStringUTFChars(juserConfig, NULL):NULL; + const char* factoryConfig = jfactoryConfig?env->GetStringUTFChars(jfactoryConfig, NULL):NULL; LinphoneCoreData* ldata = new LinphoneCoreData(env,thiz,jlistener,juserdata); #ifdef ANDROID ms_andsnd_set_jvm(jvm); @@ -317,8 +317,8 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_newLinphoneCore(JNIEnv* //clear existing proxy config linphone_core_clear_proxy_config((LinphoneCore*) nativePtr); - env->ReleaseStringUTFChars(juserConfig, userConfig); - env->ReleaseStringUTFChars(jfactoryConfig, factoryConfig); + if (userConfig) env->ReleaseStringUTFChars(juserConfig, userConfig); + if (factoryConfig) env->ReleaseStringUTFChars(jfactoryConfig, factoryConfig); return nativePtr; } extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_delete(JNIEnv* env