Device.smali
.class public final Lorg/mediasoup/Device;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field private mNativeDevice:J
# direct methods
.method public constructor <init>()V
.registers 3
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
invoke-static {}, Lorg/mediasoup/Device;->nativeNewDevice()J
move-result-wide v0
iput-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
return-void
.end method
.method private checkDeviceExists()V
.registers 6
.line 1
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_9
return-void
.line 2
:cond_9
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Device has been disposed."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private static native nativeCanProduce(JLjava/lang/String;)Z
.end method
.method private static native nativeCreateRecvTransport(JLorg/mediasoup/RecvTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;JLjava/lang/String;)Lorg/mediasoup/RecvTransport;
.end method
.method private static native nativeCreateRecvTransport2(JLorg/mediasoup/RecvTransport$Listener;Lorg/webrtc/PeerConnection$RTCConfiguration;JZLjava/lang/String;)Lorg/mediasoup/RecvTransport;
.end method
.method private static native nativeCreateSendTransport(JLorg/mediasoup/SendTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;JLjava/lang/String;)Lorg/mediasoup/SendTransport;
.end method
.method private static native nativeCreateSendTransport2(JLorg/mediasoup/SendTransport$Listener;Lorg/webrtc/PeerConnection$RTCConfiguration;JZLjava/lang/String;)Lorg/mediasoup/SendTransport;
.end method
.method private static native nativeFreeDevice(J)V
.end method
.method private static native nativeGetRtpCapabilities(J)Ljava/lang/String;
.end method
.method private static native nativeGetSctpCapabilities(J)Ljava/lang/String;
.end method
.method private static native nativeIsLoaded(J)Z
.end method
.method private static native nativeLoad(JLjava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;J)V
.end method
.method private static native nativeNewDevice()J
.end method
# virtual methods
.method public canProduce(Ljava/lang/String;)Z
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
invoke-static {v0, v1, p1}, Lorg/mediasoup/Device;->nativeCanProduce(JLjava/lang/String;)Z
move-result p1
return p1
.end method
.method public createRecvTransport(Lorg/mediasoup/RecvTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/mediasoup/PeerConnection$Options;Ljava/lang/String;)Lorg/mediasoup/RecvTransport;
.registers 23
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
move-object/from16 v0, p7
.line 5
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
move-object v1, p0
.line 6
iget-wide v2, v1, Lorg/mediasoup/Device;->mNativeDevice:J
if-eqz v0, :cond_d
.line 7
iget-object v4, v0, Lorg/mediasoup/PeerConnection$Options;->mRTCConfig:Lorg/webrtc/PeerConnection$RTCConfiguration;
goto :goto_e
:cond_d
const/4 v4, 0x0
:goto_e
move-object v10, v4
if-eqz v0, :cond_1a
.line 8
iget-object v0, v0, Lorg/mediasoup/PeerConnection$Options;->mFactory:Lorg/webrtc/PeerConnectionFactory;
if-eqz v0, :cond_1a
invoke-virtual {v0}, Lorg/webrtc/PeerConnectionFactory;->getNativePeerConnectionFactory()J
move-result-wide v4
goto :goto_1c
:cond_1a
const-wide/16 v4, 0x0
:goto_1c
move-wide v11, v4
move-object v4, p1
move-object/from16 v5, p2
move-object/from16 v6, p3
move-object/from16 v7, p4
move-object/from16 v8, p5
move-object/from16 v9, p6
move-object/from16 v13, p8
.line 9
invoke-static/range {v2 .. v13}, Lorg/mediasoup/Device;->nativeCreateRecvTransport(JLorg/mediasoup/RecvTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;JLjava/lang/String;)Lorg/mediasoup/RecvTransport;
move-result-object v0
return-object v0
.end method
.method public createRecvTransport(Lorg/mediasoup/RecvTransport$Listener;Lorg/mediasoup/PeerConnection$Options;ZLjava/lang/String;)Lorg/mediasoup/RecvTransport;
.registers 13
.line 1
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
const/4 v2, 0x0
const-wide/16 v3, 0x0
cmp-long v5, v0, v3
if-nez v5, :cond_a
return-object v2
:cond_a
if-eqz p2, :cond_e
.line 2
iget-object v2, p2, Lorg/mediasoup/PeerConnection$Options;->mRTCConfig:Lorg/webrtc/PeerConnection$RTCConfiguration;
:cond_e
move-object v5, v2
if-eqz p2, :cond_1b
.line 3
iget-object p2, p2, Lorg/mediasoup/PeerConnection$Options;->mFactory:Lorg/webrtc/PeerConnectionFactory;
if-eqz p2, :cond_1b
invoke-virtual {p2}, Lorg/webrtc/PeerConnectionFactory;->getNativePeerConnectionFactory()J
move-result-wide v2
move-wide v6, v2
goto :goto_1c
:cond_1b
move-wide v6, v3
:goto_1c
move-object v2, p1
move-object v3, v5
move-wide v4, v6
move v6, p3
move-object v7, p4
.line 4
invoke-static/range {v0 .. v7}, Lorg/mediasoup/Device;->nativeCreateRecvTransport2(JLorg/mediasoup/RecvTransport$Listener;Lorg/webrtc/PeerConnection$RTCConfiguration;JZLjava/lang/String;)Lorg/mediasoup/RecvTransport;
move-result-object p1
return-object p1
.end method
.method public createSendTransport(Lorg/mediasoup/SendTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/mediasoup/PeerConnection$Options;Ljava/lang/String;)Lorg/mediasoup/SendTransport;
.registers 23
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
move-object/from16 v0, p7
.line 5
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
move-object v1, p0
.line 6
iget-wide v2, v1, Lorg/mediasoup/Device;->mNativeDevice:J
if-eqz v0, :cond_d
.line 7
iget-object v4, v0, Lorg/mediasoup/PeerConnection$Options;->mRTCConfig:Lorg/webrtc/PeerConnection$RTCConfiguration;
goto :goto_e
:cond_d
const/4 v4, 0x0
:goto_e
move-object v10, v4
if-eqz v0, :cond_1a
.line 8
iget-object v0, v0, Lorg/mediasoup/PeerConnection$Options;->mFactory:Lorg/webrtc/PeerConnectionFactory;
if-eqz v0, :cond_1a
invoke-virtual {v0}, Lorg/webrtc/PeerConnectionFactory;->getNativePeerConnectionFactory()J
move-result-wide v4
goto :goto_1c
:cond_1a
const-wide/16 v4, 0x0
:goto_1c
move-wide v11, v4
move-object v4, p1
move-object/from16 v5, p2
move-object/from16 v6, p3
move-object/from16 v7, p4
move-object/from16 v8, p5
move-object/from16 v9, p6
move-object/from16 v13, p8
.line 9
invoke-static/range {v2 .. v13}, Lorg/mediasoup/Device;->nativeCreateSendTransport(JLorg/mediasoup/SendTransport$Listener;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;JLjava/lang/String;)Lorg/mediasoup/SendTransport;
move-result-object v0
return-object v0
.end method
.method public createSendTransport(Lorg/mediasoup/SendTransport$Listener;Lorg/mediasoup/PeerConnection$Options;ZLjava/lang/String;)Lorg/mediasoup/SendTransport;
.registers 13
.line 1
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
const/4 v2, 0x0
const-wide/16 v3, 0x0
cmp-long v5, v0, v3
if-nez v5, :cond_a
return-object v2
:cond_a
if-eqz p2, :cond_e
.line 2
iget-object v2, p2, Lorg/mediasoup/PeerConnection$Options;->mRTCConfig:Lorg/webrtc/PeerConnection$RTCConfiguration;
:cond_e
move-object v5, v2
if-eqz p2, :cond_1b
.line 3
iget-object p2, p2, Lorg/mediasoup/PeerConnection$Options;->mFactory:Lorg/webrtc/PeerConnectionFactory;
if-eqz p2, :cond_1b
invoke-virtual {p2}, Lorg/webrtc/PeerConnectionFactory;->getNativePeerConnectionFactory()J
move-result-wide v2
move-wide v6, v2
goto :goto_1c
:cond_1b
move-wide v6, v3
:goto_1c
move-object v2, p1
move-object v3, v5
move-wide v4, v6
move v6, p3
move-object v7, p4
.line 4
invoke-static/range {v0 .. v7}, Lorg/mediasoup/Device;->nativeCreateSendTransport2(JLorg/mediasoup/SendTransport$Listener;Lorg/webrtc/PeerConnection$RTCConfiguration;JZLjava/lang/String;)Lorg/mediasoup/SendTransport;
move-result-object p1
return-object p1
.end method
.method public dispose()V
.registers 3
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
invoke-static {v0, v1}, Lorg/mediasoup/Device;->nativeFreeDevice(J)V
const-wide/16 v0, 0x0
.line 3
iput-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
return-void
.end method
.method public getRtpCapabilities()Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
invoke-static {v0, v1}, Lorg/mediasoup/Device;->nativeGetRtpCapabilities(J)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getSctpCapabilities()Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
invoke-static {v0, v1}, Lorg/mediasoup/Device;->nativeGetSctpCapabilities(J)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public isLoaded()Z
.registers 3
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
invoke-static {v0, v1}, Lorg/mediasoup/Device;->nativeIsLoaded(J)Z
move-result v0
return v0
.end method
.method public load(Ljava/lang/String;Lorg/mediasoup/PeerConnection$Options;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/mediasoup/MediasoupException;
}
.end annotation
.line 1
invoke-direct {p0}, Lorg/mediasoup/Device;->checkDeviceExists()V
.line 2
iget-wide v0, p0, Lorg/mediasoup/Device;->mNativeDevice:J
if-eqz p2, :cond_a
.line 3
iget-object v2, p2, Lorg/mediasoup/PeerConnection$Options;->mRTCConfig:Lorg/webrtc/PeerConnection$RTCConfiguration;
goto :goto_b
:cond_a
const/4 v2, 0x0
:goto_b
move-object v3, v2
if-eqz p2, :cond_17
.line 4
iget-object p2, p2, Lorg/mediasoup/PeerConnection$Options;->mFactory:Lorg/webrtc/PeerConnectionFactory;
if-eqz p2, :cond_17
invoke-virtual {p2}, Lorg/webrtc/PeerConnectionFactory;->getNativePeerConnectionFactory()J
move-result-wide v4
goto :goto_19
:cond_17
const-wide/16 v4, 0x0
:goto_19
move-object v2, p1
.line 5
invoke-static/range {v0 .. v5}, Lorg/mediasoup/Device;->nativeLoad(JLjava/lang/String;Lorg/webrtc/PeerConnection$RTCConfiguration;J)V
return-void
.end method