Android: Generate JNI code for MediaStreamTrack
Bug: webrtc:8278
Change-Id: Id5ac6ecd4f65bed4ae4b2953ef58ebc390508d21
Reviewed-on: https://webrtc-review.googlesource.com/25963
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20910}
diff --git a/sdk/android/api/org/webrtc/MediaStreamTrack.java b/sdk/android/api/org/webrtc/MediaStreamTrack.java
index 656d024..b13ea9e 100644
--- a/sdk/android/api/org/webrtc/MediaStreamTrack.java
+++ b/sdk/android/api/org/webrtc/MediaStreamTrack.java
@@ -15,9 +15,31 @@
/** Tracks MediaStreamTrackInterface.TrackState */
public enum State { LIVE, ENDED }
+ // Must be kept in sync with cricket::MediaType.
public enum MediaType {
- MEDIA_TYPE_AUDIO,
- MEDIA_TYPE_VIDEO,
+ MEDIA_TYPE_AUDIO(0),
+ MEDIA_TYPE_VIDEO(1);
+
+ private final int nativeIndex;
+
+ private MediaType(int nativeIndex) {
+ this.nativeIndex = nativeIndex;
+ }
+
+ @CalledByNative("MediaType")
+ int getNative() {
+ return nativeIndex;
+ }
+
+ @CalledByNative("MediaType")
+ static MediaType fromNativeIndex(int nativeIndex) {
+ for (MediaType type : MediaType.values()) {
+ if (type.getNative() == nativeIndex) {
+ return type;
+ }
+ }
+ throw new IllegalArgumentException("Unknown native media type: " + nativeIndex);
+ }
}
final long nativeTrack;
@@ -27,36 +49,36 @@
}
public String id() {
- return nativeId(nativeTrack);
+ return getNativeId(nativeTrack);
}
public String kind() {
- return nativeKind(nativeTrack);
+ return getNativeKind(nativeTrack);
}
public boolean enabled() {
- return nativeEnabled(nativeTrack);
+ return getNativeEnabled(nativeTrack);
}
public boolean setEnabled(boolean enable) {
- return nativeSetEnabled(nativeTrack, enable);
+ return setNativeEnabled(nativeTrack, enable);
}
public State state() {
- return nativeState(nativeTrack);
+ return getNativeState(nativeTrack);
}
public void dispose() {
JniCommon.nativeReleaseRef(nativeTrack);
}
- private static native String nativeId(long nativeTrack);
+ private static native String getNativeId(long nativeTrack);
- private static native String nativeKind(long nativeTrack);
+ private static native String getNativeKind(long nativeTrack);
- private static native boolean nativeEnabled(long nativeTrack);
+ private static native boolean getNativeEnabled(long nativeTrack);
- private static native boolean nativeSetEnabled(long nativeTrack, boolean enabled);
+ private static native boolean setNativeEnabled(long nativeTrack, boolean enabled);
- private static native State nativeState(long nativeTrack);
+ private static native State getNativeState(long nativeTrack);
}