LocalSpatialAudioImpl.smali

.class public Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;
.super Lio/agora/spatialaudio/ILocalSpatialAudioEngine;


# static fields
.field private static final TAG:Ljava/lang/String; = "LocalSpatialAudioImpl"


# instance fields
.field private mNativeHandle:J


# direct methods
.method static constructor <clinit>()V
    .registers 0

    return-void
.end method

.method public constructor <init>()V
    .registers 3

    invoke-direct {p0}, Lio/agora/spatialaudio/ILocalSpatialAudioEngine;-><init>()V

    const-wide/16 v0, 0x0

    iput-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    return-void
.end method

.method static getChannelId(Lio/agora/rtc2/RtcConnection;)Ljava/lang/String;
    .registers 1
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "connection"
        }
    .end annotation

    if-eqz p0, :cond_5

    iget-object p0, p0, Lio/agora/rtc2/RtcConnection;->channelId:Ljava/lang/String;

    goto :goto_6

    :cond_5
    const/4 p0, 0x0

    :goto_6
    return-object p0
.end method

.method static getUserId(Lio/agora/rtc2/RtcConnection;)I
    .registers 1
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "connection"
        }
    .end annotation

    if-eqz p0, :cond_5

    iget p0, p0, Lio/agora/rtc2/RtcConnection;->localUid:I

    goto :goto_6

    :cond_5
    const/4 p0, 0x0

    :goto_6
    return p0
.end method

.method private native nativeClearRemotePositions(J)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid"
        }
    .end annotation
.end method

.method private native nativeClearRemotePositionsEx(JLjava/lang/String;I)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "channelId",
            "localUid"
        }
    .end annotation
.end method

.method private static native nativeDestroy(J)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "handle"
        }
    .end annotation
.end method

.method private native nativeMuteRemoteAudioStream(JIZ)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid",
            "mute"
        }
    .end annotation
.end method

.method private native nativeObjectInit(Lio/agora/spatialaudio/LocalSpatialAudioConfig;J)J
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "config",
            "rtcEngine"
        }
    .end annotation
.end method

.method private native nativeRemoveRemotePosition(JI)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid"
        }
    .end annotation
.end method

.method private native nativeRemoveRemotePositionEx(JILjava/lang/String;I)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid",
            "channelId",
            "localUid"
        }
    .end annotation
.end method

.method private native nativeSetParameters(JLjava/lang/String;)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "param"
        }
    .end annotation
.end method

.method private native nativeSetPlayerAttenuation(JIDZ)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "playerId",
            "attenuation",
            "forceSet"
        }
    .end annotation
.end method

.method private native nativeSetRemoteAudioAttenuation(JIDZ)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid",
            "attenuation",
            "forceSet"
        }
    .end annotation
.end method

.method private native nativeSetZones(J[Lio/agora/spatialaudio/SpatialAudioZone;)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "zones"
        }
    .end annotation
.end method

.method private native nativeUpdatePlayerPositionInfo(JILio/agora/spatialaudio/RemoteVoicePositionInfo;)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "playerId",
            "posInfo"
        }
    .end annotation
.end method

.method private native nativeUpdateRemotePosition(JI[F[F)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid",
            "position",
            "forward"
        }
    .end annotation
.end method

.method private native nativeUpdateRemotePositionEx(JI[F[FLjava/lang/String;I)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "uid",
            "position",
            "forward",
            "channelId",
            "localUid"
        }
    .end annotation
.end method

.method private native nativeUpdateSelfPosition(J[F[F[F[F)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "position",
            "axisForward",
            "axisRight",
            "axisUp"
        }
    .end annotation
.end method

.method private native nativeUpdateSelfPositionEx(J[F[F[F[FLjava/lang/String;I)I
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "nativeLocalSpatialAudioAndroid",
            "position",
            "axisForward",
            "axisRight",
            "axisUp",
            "channelID",
            "uid"
        }
    .end annotation
.end method


# virtual methods
.method public clearRemotePositions()I
    .registers 5

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 v0, -0x7

    return v0

    :cond_a
    invoke-direct {p0, v0, v1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeClearRemotePositions(J)I

    move-result v0

    return v0
.end method

.method public clearRemotePositionsEx(Lio/agora/rtc2/RtcConnection;)I
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "connection"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    invoke-static {p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getChannelId(Lio/agora/rtc2/RtcConnection;)Ljava/lang/String;

    move-result-object v2

    invoke-static {p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getUserId(Lio/agora/rtc2/RtcConnection;)I

    move-result p1

    invoke-direct {p0, v0, v1, v2, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeClearRemotePositionsEx(JLjava/lang/String;I)I

    move-result p1

    return p1
.end method

.method public initialize(Lio/agora/spatialaudio/LocalSpatialAudioConfig;)I
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "config"
        }
    .end annotation

    iget-object v0, p1, Lio/agora/spatialaudio/LocalSpatialAudioConfig;->mRtcEngine:Lio/agora/rtc2/RtcEngine;

    if-nez v0, :cond_6

    const/4 p1, -0x2

    return p1

    :cond_6
    iget-object v0, p1, Lio/agora/spatialaudio/LocalSpatialAudioConfig;->mRtcEngine:Lio/agora/rtc2/RtcEngine;

    invoke-virtual {v0}, Lio/agora/rtc2/RtcEngine;->getNativeHandle()J

    move-result-wide v0

    invoke-direct {p0, p1, v0, v1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeObjectInit(Lio/agora/spatialaudio/LocalSpatialAudioConfig;J)J

    move-result-wide v0

    iput-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long p1, v0, v2

    if-nez p1, :cond_1a

    const/4 p1, -0x7

    return p1

    :cond_1a
    const/4 p1, 0x0

    return p1
.end method

.method public muteAllRemoteAudioStreams(Z)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "mute"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;

    const/4 v3, 0x1

    new-array v3, v3, [Ljava/lang/Object;

    const/4 v4, 0x0

    if-eqz p1, :cond_15

    const-string p1, "true"

    goto :goto_17

    :cond_15
    const-string p1, "false"

    :goto_17
    aput-object p1, v3, v4

    const-string p1, "{\"rtc.local_spatial_audio.mute_all_remote_audio_streams\":%s}"

    invoke-static {v2, p1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetParameters(JLjava/lang/String;)I

    move-result p1

    return p1
.end method

.method public muteLocalAudioStream(Z)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "mute"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;

    const/4 v3, 0x1

    new-array v3, v3, [Ljava/lang/Object;

    const/4 v4, 0x0

    if-eqz p1, :cond_15

    const-string p1, "true"

    goto :goto_17

    :cond_15
    const-string p1, "false"

    :goto_17
    aput-object p1, v3, v4

    const-string p1, "{\"rtc.local_spatial_audio.mute_local_stream\":%s}"

    invoke-static {v2, p1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetParameters(JLjava/lang/String;)I

    move-result p1

    return p1
.end method

.method public muteRemoteAudioStream(IZ)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "uid",
            "mute"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    invoke-direct {p0, v0, v1, p1, p2}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeMuteRemoteAudioStream(JIZ)I

    move-result p1

    return p1
.end method

.method protected release()I
    .registers 6

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v4, v0, v2

    if-eqz v4, :cond_d

    invoke-static {v0, v1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeDestroy(J)I

    iput-wide v2, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    :cond_d
    const/4 v0, 0x0

    return v0
.end method

.method public removeRemotePosition(I)I
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "uid"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeRemoveRemotePosition(JI)I

    move-result p1

    return p1
.end method

.method public removeRemotePositionEx(ILio/agora/rtc2/RtcConnection;)I
    .registers 9
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "uid",
            "connection"
        }
    .end annotation

    iget-wide v1, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v3, 0x0

    cmp-long v0, v1, v3

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    invoke-static {p2}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getChannelId(Lio/agora/rtc2/RtcConnection;)Ljava/lang/String;

    move-result-object v4

    invoke-static {p2}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getUserId(Lio/agora/rtc2/RtcConnection;)I

    move-result v5

    move-object v0, p0

    move v3, p1

    invoke-direct/range {v0 .. v5}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeRemoveRemotePositionEx(JILjava/lang/String;I)I

    move-result p1

    return p1
.end method

.method public setAudioRecvRange(F)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "range"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;

    const/4 v3, 0x1

    new-array v3, v3, [Ljava/lang/Object;

    const/4 v4, 0x0

    invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object p1

    aput-object p1, v3, v4

    const-string p1, "{\"rtc.local_spatial_audio.hear_range\":%f}"

    invoke-static {v2, p1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetParameters(JLjava/lang/String;)I

    move-result p1

    return p1
.end method

.method public setDistanceUnit(F)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "unit"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;

    const/4 v3, 0x1

    new-array v3, v3, [Ljava/lang/Object;

    const/4 v4, 0x0

    invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;

    move-result-object p1

    aput-object p1, v3, v4

    const-string p1, "{\"rtc.local_spatial_audio.distance_unit\":%f}"

    invoke-static {v2, p1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetParameters(JLjava/lang/String;)I

    move-result p1

    return p1
.end method

.method public setMaxAudioRecvCount(I)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "maxCount"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v2, v0, v2

    if-nez v2, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    sget-object v2, Ljava/util/Locale;->US:Ljava/util/Locale;

    const/4 v3, 0x1

    new-array v3, v3, [Ljava/lang/Object;

    const/4 v4, 0x0

    invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object p1

    aput-object p1, v3, v4

    const-string p1, "{\"rtc.local_spatial_audio.max_hear_count\":%d}"

    invoke-static {v2, p1, v3}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object p1

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetParameters(JLjava/lang/String;)I

    move-result p1

    return p1
.end method

.method public setPlayerAttenuation(IDZ)I
    .registers 12
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "playerId",
            "attenuation",
            "forceSet"
        }
    .end annotation

    iget-wide v1, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v3, 0x0

    cmp-long v0, v1, v3

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    move-object v0, p0

    move v3, p1

    move-wide v4, p2

    move v6, p4

    invoke-direct/range {v0 .. v6}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetPlayerAttenuation(JIDZ)I

    move-result p1

    return p1
.end method

.method public setRemoteAudioAttenuation(IDZ)I
    .registers 12
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "uid",
            "attenuation",
            "forceSet"
        }
    .end annotation

    iget-wide v1, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v3, 0x0

    cmp-long v0, v1, v3

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    move-object v0, p0

    move v3, p1

    move-wide v4, p2

    move v6, p4

    invoke-direct/range {v0 .. v6}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetRemoteAudioAttenuation(JIDZ)I

    move-result p1

    return p1
.end method

.method public setZones([Lio/agora/spatialaudio/SpatialAudioZone;)I
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "zones"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    const/4 v0, -0x2

    if-eqz p1, :cond_5e

    array-length v1, p1

    if-gtz v1, :cond_11

    goto :goto_5e

    :cond_11
    const/4 v1, 0x0

    :goto_12
    array-length v2, p1

    if-ge v1, v2, :cond_57

    aget-object v2, p1, v1

    if-nez v2, :cond_1a

    return v0

    :cond_1a
    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->position:[F

    if-eqz v2, :cond_56

    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->position:[F

    array-length v2, v2

    const/4 v3, 0x3

    if-eq v2, v3, :cond_29

    goto :goto_56

    :cond_29
    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->forward:[F

    if-eqz v2, :cond_56

    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->forward:[F

    array-length v2, v2

    if-eq v2, v3, :cond_37

    goto :goto_56

    :cond_37
    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->right:[F

    if-eqz v2, :cond_56

    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->right:[F

    array-length v2, v2

    if-eq v2, v3, :cond_45

    goto :goto_56

    :cond_45
    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->up:[F

    if-eqz v2, :cond_56

    aget-object v2, p1, v1

    iget-object v2, v2, Lio/agora/spatialaudio/SpatialAudioZone;->up:[F

    array-length v2, v2

    if-eq v2, v3, :cond_53

    goto :goto_56

    :cond_53
    add-int/lit8 v1, v1, 0x1

    goto :goto_12

    :cond_56
    :goto_56
    return v0

    :cond_57
    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    invoke-direct {p0, v0, v1, p1}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeSetZones(J[Lio/agora/spatialaudio/SpatialAudioZone;)I

    move-result p1

    return p1

    :cond_5e
    :goto_5e
    return v0
.end method

.method public updatePlayerPositionInfo(ILio/agora/spatialaudio/RemoteVoicePositionInfo;)I
    .registers 7
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "playerId",
            "positionInfo"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    if-eqz p2, :cond_27

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    if-eqz v0, :cond_27

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    array-length v0, v0

    const/4 v1, 0x3

    if-ne v0, v1, :cond_27

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    if-eqz v0, :cond_20

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    array-length v0, v0

    if-eq v0, v1, :cond_20

    goto :goto_27

    :cond_20
    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    invoke-direct {p0, v0, v1, p1, p2}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeUpdatePlayerPositionInfo(JILio/agora/spatialaudio/RemoteVoicePositionInfo;)I

    move-result p1

    return p1

    :cond_27
    :goto_27
    const/4 p1, -0x2

    return p1
.end method

.method public updateRemotePosition(ILio/agora/spatialaudio/RemoteVoicePositionInfo;)I
    .registers 10
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "uid",
            "posInfo"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    if-eqz p2, :cond_2f

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    if-eqz v0, :cond_2f

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    array-length v0, v0

    const/4 v1, 0x3

    if-eq v0, v1, :cond_17

    goto :goto_2f

    :cond_17
    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    if-nez v0, :cond_22

    new-array v0, v1, [F

    fill-array-data v0, :array_32

    iput-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    :cond_22
    iget-wide v2, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    iget-object v5, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    iget-object v6, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    move-object v1, p0

    move v4, p1

    invoke-direct/range {v1 .. v6}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeUpdateRemotePosition(JI[F[F)I

    move-result p1

    return p1

    :cond_2f
    :goto_2f
    const/4 p1, -0x2

    return p1

    nop

    :array_32
    .array-data 4
        0x0
        0x0
        0x0
    .end array-data
.end method

.method public updateRemotePositionEx(ILio/agora/spatialaudio/RemoteVoicePositionInfo;Lio/agora/rtc2/RtcConnection;)I
    .registers 13
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0
        }
        names = {
            "uid",
            "posInfo",
            "connection"
        }
    .end annotation

    iget-wide v0, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    if-eqz p2, :cond_37

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    if-eqz v0, :cond_37

    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    array-length v0, v0

    const/4 v1, 0x3

    if-eq v0, v1, :cond_17

    goto :goto_37

    :cond_17
    iget-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    if-nez v0, :cond_22

    new-array v0, v1, [F

    fill-array-data v0, :array_3a

    iput-object v0, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    :cond_22
    iget-wide v2, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    iget-object v5, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->position:[F

    iget-object v6, p2, Lio/agora/spatialaudio/RemoteVoicePositionInfo;->forward:[F

    invoke-static {p3}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getChannelId(Lio/agora/rtc2/RtcConnection;)Ljava/lang/String;

    move-result-object v7

    invoke-static {p3}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getUserId(Lio/agora/rtc2/RtcConnection;)I

    move-result v8

    move-object v1, p0

    move v4, p1

    invoke-direct/range {v1 .. v8}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeUpdateRemotePositionEx(JI[F[FLjava/lang/String;I)I

    move-result p1

    return p1

    :cond_37
    :goto_37
    const/4 p1, -0x2

    return p1

    nop

    :array_3a
    .array-data 4
        0x0
        0x0
        0x0
    .end array-data
.end method

.method public updateSelfPosition([F[F[F[F)I
    .registers 12
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "position",
            "axisForward",
            "axisRight",
            "axisUp"
        }
    .end annotation

    iget-wide v1, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v3, 0x0

    cmp-long v0, v1, v3

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    array-length v0, p1

    const/4 v3, 0x3

    if-ne v0, v3, :cond_22

    array-length v0, p2

    if-ne v0, v3, :cond_22

    array-length v0, p3

    if-ne v0, v3, :cond_22

    array-length v0, p4

    if-eq v0, v3, :cond_18

    goto :goto_22

    :cond_18
    move-object v0, p0

    move-object v3, p1

    move-object v4, p2

    move-object v5, p3

    move-object v6, p4

    invoke-direct/range {v0 .. v6}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeUpdateSelfPosition(J[F[F[F[F)I

    move-result p1

    return p1

    :cond_22
    :goto_22
    const/4 p1, -0x2

    return p1
.end method

.method public updateSelfPositionEx([F[F[F[FLio/agora/rtc2/RtcConnection;)I
    .registers 15
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0,
            0x0,
            0x0,
            0x0
        }
        names = {
            "position",
            "axisForward",
            "axisRight",
            "axisUp",
            "connection"
        }
    .end annotation

    iget-wide v1, p0, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->mNativeHandle:J

    const-wide/16 v3, 0x0

    cmp-long v0, v1, v3

    if-nez v0, :cond_a

    const/4 p1, -0x7

    return p1

    :cond_a
    array-length v0, p1

    const/4 v3, 0x3

    if-ne v0, v3, :cond_2a

    array-length v0, p2

    if-ne v0, v3, :cond_2a

    array-length v0, p3

    if-ne v0, v3, :cond_2a

    array-length v0, p4

    if-eq v0, v3, :cond_18

    goto :goto_2a

    :cond_18
    invoke-static {p5}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getChannelId(Lio/agora/rtc2/RtcConnection;)Ljava/lang/String;

    move-result-object v7

    invoke-static {p5}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->getUserId(Lio/agora/rtc2/RtcConnection;)I

    move-result v8

    move-object v0, p0

    move-object v3, p1

    move-object v4, p2

    move-object v5, p3

    move-object v6, p4

    invoke-direct/range {v0 .. v8}, Lio/agora/spatialaudio/internal/LocalSpatialAudioImpl;->nativeUpdateSelfPositionEx(J[F[F[F[FLjava/lang/String;I)I

    move-result p1

    return p1

    :cond_2a
    :goto_2a
    const/4 p1, -0x2

    return p1
.end method