CompositeSequenceableLoader.smali
.class public Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;
.super Ljava/lang/Object;
.source "CompositeSequenceableLoader.java"
# interfaces
.implements Lcom/google/android/exoplayer2/source/SequenceableLoader;
# instance fields
.field protected final loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>([Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.registers 2
.param p1, "loaders" # [Lcom/google/android/exoplayer2/source/SequenceableLoader;
.line 27
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 28
iput-object p1, p0, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
.line 29
return-void
.end method
# virtual methods
.method public continueLoading(J)Z
.registers 21
.param p1, "positionUs" # J
.line 64
move-wide/from16 v0, p1
const/4 v2, 0x0
.line 67
.local v2, "madeProgress":Z
:cond_3
const/4 v3, 0x0
.line 68
.local v3, "madeProgressThisIteration":Z
invoke-virtual/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->getNextLoadPositionUs()J
move-result-wide v4
.line 69
.local v4, "nextLoadPositionUs":J
const-wide/high16 v6, -0x8000000000000000L
cmp-long v8, v4, v6
if-nez v8, :cond_11
.line 70
move-object/from16 v8, p0
goto :goto_3f
.line 72
:cond_11
move-object/from16 v8, p0
iget-object v9, v8, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
array-length v10, v9
const/4 v11, 0x0
const/4 v12, 0x0
:goto_18
if-ge v12, v10, :cond_3c
aget-object v13, v9, v12
.line 73
.local v13, "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
invoke-interface {v13}, Lcom/google/android/exoplayer2/source/SequenceableLoader;->getNextLoadPositionUs()J
move-result-wide v14
.line 74
.local v14, "loaderNextLoadPositionUs":J
cmp-long v16, v14, v6
if-eqz v16, :cond_2b
cmp-long v16, v14, v0
if-gtz v16, :cond_2b
const/16 v16, 0x1
goto :goto_2d
:cond_2b
const/16 v16, 0x0
.line 77
.local v16, "isLoaderBehind":Z
:goto_2d
cmp-long v17, v14, v4
if-eqz v17, :cond_33
if-eqz v16, :cond_39
.line 78
:cond_33
invoke-interface {v13, v0, v1}, Lcom/google/android/exoplayer2/source/SequenceableLoader;->continueLoading(J)Z
move-result v17
or-int v3, v3, v17
.line 72
.end local v13 # "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
.end local v14 # "loaderNextLoadPositionUs":J
.end local v16 # "isLoaderBehind":Z
:cond_39
add-int/lit8 v12, v12, 0x1
goto :goto_18
.line 81
:cond_3c
or-int/2addr v2, v3
.line 82
.end local v4 # "nextLoadPositionUs":J
if-nez v3, :cond_3
.line 83
:goto_3f
return v2
.end method
.method public final getBufferedPositionUs()J
.registers 12
.line 33
const-wide v0, 0x7fffffffffffffffL
.line 34
.local v0, "bufferedPositionUs":J
iget-object v2, p0, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
array-length v3, v2
const/4 v4, 0x0
:goto_9
const-wide/high16 v5, -0x8000000000000000L
if-ge v4, v3, :cond_1e
aget-object v7, v2, v4
.line 35
.local v7, "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
invoke-interface {v7}, Lcom/google/android/exoplayer2/source/SequenceableLoader;->getBufferedPositionUs()J
move-result-wide v8
.line 36
.local v8, "loaderBufferedPositionUs":J
cmp-long v10, v8, v5
if-eqz v10, :cond_1b
.line 37
invoke-static {v0, v1, v8, v9}, Ljava/lang/Math;->min(JJ)J
move-result-wide v0
.line 34
.end local v7 # "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
.end local v8 # "loaderBufferedPositionUs":J
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_9
.line 40
:cond_1e
const-wide v2, 0x7fffffffffffffffL
cmp-long v4, v0, v2
if-nez v4, :cond_28
goto :goto_29
:cond_28
move-wide v5, v0
:goto_29
return-wide v5
.end method
.method public final getNextLoadPositionUs()J
.registers 12
.line 45
const-wide v0, 0x7fffffffffffffffL
.line 46
.local v0, "nextLoadPositionUs":J
iget-object v2, p0, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
array-length v3, v2
const/4 v4, 0x0
:goto_9
const-wide/high16 v5, -0x8000000000000000L
if-ge v4, v3, :cond_1e
aget-object v7, v2, v4
.line 47
.local v7, "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
invoke-interface {v7}, Lcom/google/android/exoplayer2/source/SequenceableLoader;->getNextLoadPositionUs()J
move-result-wide v8
.line 48
.local v8, "loaderNextLoadPositionUs":J
cmp-long v10, v8, v5
if-eqz v10, :cond_1b
.line 49
invoke-static {v0, v1, v8, v9}, Ljava/lang/Math;->min(JJ)J
move-result-wide v0
.line 46
.end local v7 # "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
.end local v8 # "loaderNextLoadPositionUs":J
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_9
.line 52
:cond_1e
const-wide v2, 0x7fffffffffffffffL
cmp-long v4, v0, v2
if-nez v4, :cond_28
goto :goto_29
:cond_28
move-wide v5, v0
:goto_29
return-wide v5
.end method
.method public final reevaluateBuffer(J)V
.registers 7
.param p1, "positionUs" # J
.line 57
iget-object v0, p0, Lcom/google/android/exoplayer2/source/CompositeSequenceableLoader;->loaders:[Lcom/google/android/exoplayer2/source/SequenceableLoader;
array-length v1, v0
const/4 v2, 0x0
:goto_4
if-ge v2, v1, :cond_e
aget-object v3, v0, v2
.line 58
.local v3, "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
invoke-interface {v3, p1, p2}, Lcom/google/android/exoplayer2/source/SequenceableLoader;->reevaluateBuffer(J)V
.line 57
.end local v3 # "loader":Lcom/google/android/exoplayer2/source/SequenceableLoader;
add-int/lit8 v2, v2, 0x1
goto :goto_4
.line 60
:cond_e
return-void
.end method