]> sjero.net Git - linphone/commitdiff
Add JNI to access call statistics.
authorGhislain MARY <ghislain.mary@belledonne-communications.com>
Wed, 19 Sep 2012 15:24:38 +0000 (17:24 +0200)
committerGhislain MARY <ghislain.mary@belledonne-communications.com>
Fri, 21 Sep 2012 13:55:05 +0000 (15:55 +0200)
LinphoneCallImpl.java
LinphoneCallStatsImpl.java [new file with mode: 0644]

index e73a8aacfa795aa1116469cb145fc29c9a27ace0..cf471f52c42db4e781e1fcbf2b5b2dcdfa4ca979 100644 (file)
@@ -23,6 +23,9 @@ class LinphoneCallImpl implements LinphoneCall {
  
        protected final long nativePtr;
        boolean ownPtr = false;
+       private LinphoneCallStats audioStats;
+       private LinphoneCallStats videoStats;
+
        native private void finalize(long nativePtr);
        native private long  getCallLog(long nativePtr);
        private native boolean isIncoming(long nativePtr);
@@ -58,6 +61,18 @@ class LinphoneCallImpl implements LinphoneCall {
                        return null;
                }
        }
+       public void setAudioStats(LinphoneCallStats stats) {
+               audioStats = stats;
+       }
+       public void setVideoStats(LinphoneCallStats stats) {
+               videoStats = stats;
+       }
+       public LinphoneCallStats getAudioStats() {
+               return audioStats;
+       }
+       public LinphoneCallStats getVideoStats() {
+               return videoStats;
+       }
        public CallDirection getDirection() {
                return isIncoming(nativePtr)?CallDirection.Incoming:CallDirection.Outgoing;
        }
diff --git a/LinphoneCallStatsImpl.java b/LinphoneCallStatsImpl.java
new file mode 100644 (file)
index 0000000..ffc19ed
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+LinPhoneCallStatsImpl.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;
+
+
+class LinphoneCallStatsImpl implements LinphoneCallStats {
+       private int mediaType;
+       private float senderLossRate;
+       private float receiverLossRate;
+       private float senderInterarrivalJitter;
+       private float receiverInterarrivalJitter;
+       private float roundTripDelay;
+       private long latePacketsCumulativeNumber;
+       private float jitterBufferSize;
+
+       private native int getMediaType(long nativeStatsPtr);
+       private native float getSenderLossRate(long nativeStatsPtr);
+       private native float getReceiverLossRate(long nativeStatsPtr);
+       private native float getSenderInterarrivalJitter(long nativeStatsPtr, long nativeCallPtr);
+       private native float getReceiverInterarrivalJitter(long nativeStatsPtr, long nativeCallPtr);
+       private native float getRoundTripDelay(long nativeStatsPtr);
+       private native long getLatePacketsCumulativeNumber(long nativeStatsPtr, long nativeCallPtr);
+       private native float getJitterBufferSize(long nativeStatsPtr);
+
+       protected LinphoneCallStatsImpl(long nativeCallPtr, long nativeStatsPtr) {
+               mediaType = getMediaType(nativeStatsPtr);
+               senderLossRate = getSenderLossRate(nativeStatsPtr);
+               receiverLossRate = getReceiverLossRate(nativeStatsPtr);
+               senderInterarrivalJitter = getSenderInterarrivalJitter(nativeStatsPtr, nativeCallPtr);
+               receiverInterarrivalJitter = getReceiverInterarrivalJitter(nativeStatsPtr, nativeCallPtr);
+               roundTripDelay = getRoundTripDelay(nativeStatsPtr);
+               latePacketsCumulativeNumber = getLatePacketsCumulativeNumber(nativeStatsPtr, nativeCallPtr);
+               jitterBufferSize = getJitterBufferSize(nativeStatsPtr);
+       }
+
+       public MediaType getMediaType() {
+               return MediaType.fromInt(mediaType);
+       }
+
+       public float getSenderLossRate() {
+               return senderLossRate;
+       }
+
+       public float getReceiverLossRate() {
+               return receiverLossRate;
+       }
+
+       public float getSenderInterarrivalJitter() {
+               return senderInterarrivalJitter;
+       }
+
+       public float getReceiverInterarrivalJitter() {
+               return receiverInterarrivalJitter;
+       }
+
+       public float getRoundTripDelay() {
+               return roundTripDelay;
+       }
+
+       public long getLatePacketsCumulativeNumber() {
+               return latePacketsCumulativeNumber;
+       }
+
+       public float getJitterBufferSize() {
+               return jitterBufferSize;
+       }
+}