diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 3ed73fd4c..eed1b2692 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1001,4 +1001,29 @@ extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_updateAddressWithParams( extern "C" jint Java_org_linphone_core_LinphoneCoreImpl_updateCall(JNIEnv *env, jobject thiz, jlong lc, jlong call, jlong params){ return (jint) linphone_core_update_call((LinphoneCore *)lc, (LinphoneCall *)call, (LinphoneCallParams *)params); -} \ No newline at end of file +} + + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setPreferredVideoSize(JNIEnv *env, jobject thiz, jlong lc, jint width, jint height){ + MSVideoSize vsize; + vsize.width = (int)width; + vsize.height = (int)height; + linphone_core_set_preferred_video_size((LinphoneCore *)lc, vsize); +} + +extern "C" jintArray Java_org_linphone_core_LinphoneCoreImpl_getPreferredVideoSize(JNIEnv *env, jobject thiz, jlong lc){ + MSVideoSize vsize = linphone_core_get_preferred_video_size((LinphoneCore *)lc); + jintArray arr = env->NewIntArray(2); + int tVsize [2]= {vsize.width,vsize.height}; + env->SetIntArrayRegion(arr, 0, 2, tVsize); + return arr; +} + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDownloadBandwidth(JNIEnv *env, jobject thiz, jlong lc, jint bw){ + linphone_core_set_download_bandwidth((LinphoneCore *)lc, (int) bw); +} + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setUploadBandwidth(JNIEnv *env, jobject thiz, jlong lc, jint bw){ + linphone_core_set_upload_bandwidth((LinphoneCore *)lc, (int) bw); +} + diff --git a/java/common/org/linphone/core/LinphoneCall.java b/java/common/org/linphone/core/LinphoneCall.java index 840a5fa99..9a1fe963d 100644 --- a/java/common/org/linphone/core/LinphoneCall.java +++ b/java/common/org/linphone/core/LinphoneCall.java @@ -89,10 +89,28 @@ public interface LinphoneCall { * Call end */ public final static State CallEnd = new State(13,"CallEnd"); + /** * Paused by remote */ public final static State PausedByRemote = new State(14,"PausedByRemote"); + + /** + * The call's parameters are updated, used for example when video is asked by remote + */ + public static final State CallUpdatedByRemote = new State(15, "CallUpdatedByRemote"); + + /** + * We are proposing early media to an incoming call + */ + public static final State CallIncomingEarlyMedia = new State(16,"CallIncomingEarlyMedia"); + + /** + * The remote accepted the call update initiated by us + */ + public static final State CallUpdated = new State(17, "CallUpdated"); + + private State(int value,String stringValue) { mValue = value; values.addElement(this); diff --git a/java/common/org/linphone/core/LinphoneCallParams.java b/java/common/org/linphone/core/LinphoneCallParams.java index 2b903b9ec..30362a73b 100644 --- a/java/common/org/linphone/core/LinphoneCallParams.java +++ b/java/common/org/linphone/core/LinphoneCallParams.java @@ -26,7 +26,7 @@ package org.linphone.core; * */ public interface LinphoneCallParams { - void setVideoEnalbled(boolean b); + void setVideoEnabled(boolean b); boolean getVideoEnabled(); LinphoneCallParams copy(); } diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 94705b49d..327f6e5aa 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -461,4 +461,11 @@ public interface LinphoneCore { public LinphoneCallParams createDefaultCallParameters(); + public void setUploadBandwidth(int bw); + + public void setDownloadBandwidth(int bw); + + public void setPreferredVideoSize(VideoSize vSize); + + public VideoSize getPreferredVideoSize(); } diff --git a/java/common/org/linphone/core/VideoSize.java b/java/common/org/linphone/core/VideoSize.java new file mode 100644 index 000000000..5dab887be --- /dev/null +++ b/java/common/org/linphone/core/VideoSize.java @@ -0,0 +1,86 @@ +/* +VideoSize.java +Copyright (C) 2010 Belledonne Communications, Grenoble, France + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ +package org.linphone.core; + +/** + * @author Guillaume Beraudo + */ +public final class VideoSize { + public static final int QCIF = 0; + public static final int CIF = 1; + public static final int HVGA = 2; + + private int width; + public int getWidth() {return width;} + public void setWidth(int width) {this.width = width;} + + private int height; + public int getHeight() {return height;} + public void setHeight(int height) {this.height = height;} + + public VideoSize() {} + private VideoSize(int width, int height) { + this.width = width; + this.height = height; + } + + public static final VideoSize createStandard(int code) { + switch (code) { + case QCIF: + return new VideoSize(176, 144); + case CIF: + return new VideoSize(352, 288); + case HVGA: + return new VideoSize(320, 480); + default: + return new VideoSize(); // Invalid one + } + } + + public boolean isValid() { + return width > 0 && height > 0; + } + + // Generated + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + height; + result = prime * result + width; + return result; + } + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + VideoSize other = (VideoSize) obj; + if (height != other.height) + return false; + if (width != other.width) + return false; + return true; + } + + +}