Commit 898a4ce9 authored by Ghislain MARY's avatar Ghislain MARY
Browse files

Extend call statistics JNI.

Add interface for download bandwidth, upload bandwidth and ICE state.
parent d2bf8846
......@@ -1254,6 +1254,15 @@ extern "C" jint Java_org_linphone_core_LinphoneCallLogImpl_getCallDuration(JNIEn
extern "C" int Java_org_linphone_core_LinphoneCallStatsImpl_getMediaType(JNIEnv *env, jobject thiz, jlong stats_ptr) {
return (int)((LinphoneCallStats *)stats_ptr)->type;
}
extern "C" int Java_org_linphone_core_LinphoneCallStatsImpl_getIceState(JNIEnv *env, jobject thiz, jlong stats_ptr) {
return (int)((LinphoneCallStats *)stats_ptr)->ice_state;
}
extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getDownloadBandwidth(JNIEnv *env, jobject thiz, jlong stats_ptr) {
return (jfloat)((LinphoneCallStats *)stats_ptr)->download_bandwidth;
}
extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getUploadBandwidth(JNIEnv *env, jobject thiz, jlong stats_ptr) {
return (jfloat)((LinphoneCallStats *)stats_ptr)->upload_bandwidth;
}
extern "C" jfloat Java_org_linphone_core_LinphoneCallStatsImpl_getSenderLossRate(JNIEnv *env, jobject thiz, jlong stats_ptr) {
const LinphoneCallStats *stats = (LinphoneCallStats *)stats_ptr;
const report_block_t *srb = NULL;
......
......@@ -51,6 +51,51 @@ public interface LinphoneCallStats {
return mStringValue;
}
}
static public class IceState {
static private Vector values = new Vector();
/**
* Not activated
*/
static public IceState NotActivated = new IceState(0, "Not activated");
/**
* Failed
*/
static public IceState Failed = new IceState(1, "Failed");
/**
* In progress
*/
static public IceState InProgress = new IceState(2, "In progress");
/**
* Host connection
*/
static public IceState HostConnection = new IceState(3, "Host connection");
/**
* Reflexive connection
*/
static public IceState ReflexiveConnection = new IceState(4, "Reflexive connection");
/**
* Relay connection
*/
static public IceState RelayConnection = new IceState(5, "Relay connection");
protected final int mValue;
private final String mStringValue;
private IceState(int value, String stringValue) {
mValue = value;
values.addElement(this);
mStringValue = stringValue;
}
public static IceState fromInt(int value) {
for (int i = 0; i < values.size(); i++) {
IceState mstate = (IceState) values.elementAt(i);
if (mstate.mValue == value) return mstate;
}
throw new RuntimeException("IceState not found [" + value + "]");
}
public String toString() {
return mStringValue;
}
}
/**
* Get the stats media type
......@@ -58,6 +103,23 @@ public interface LinphoneCallStats {
*/
public MediaType getMediaType();
/**
* Get the ICE state
*/
public IceState getIceState();
/**
* Get the download bandwidth in kbit/s
* @return The download bandwidth
*/
public float getDownloadBandwidth();
/**
* Get the upload bandwidth in kbit/s
* @return The upload bandwidth
*/
public float getUploadBandwidth();
/**
* Get the sender loss rate since last report
* @return The sender loss rate
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment