Files
runelite/runescape-client/src/main/java/PcmStreamMixer.java
Owain van Brakel 42acd14658 project: 184 (#1670)
* 184

* checkstyle
2019-09-28 17:05:04 +01:00

204 lines
4.6 KiB
Java

import net.runelite.mapping.Export;
import net.runelite.mapping.Implements;
import net.runelite.mapping.ObfuscatedName;
import net.runelite.mapping.ObfuscatedSignature;
@ObfuscatedName("ca")
@Implements("PcmStreamMixer")
public class PcmStreamMixer extends PcmStream {
@ObfuscatedName("z")
@ObfuscatedSignature(
signature = "Ljv;"
)
@Export("subStreams")
NodeDeque subStreams;
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "Ljv;"
)
NodeDeque field1318;
@ObfuscatedName("v")
int field1319;
@ObfuscatedName("u")
int field1317;
public PcmStreamMixer() {
this.subStreams = new NodeDeque();
this.field1318 = new NodeDeque();
this.field1319 = 0;
this.field1317 = -1;
}
@ObfuscatedName("z")
@ObfuscatedSignature(
signature = "(Ldc;)V"
)
@Export("addSubStream")
public final synchronized void addSubStream(PcmStream var1) {
this.subStreams.addLast(var1);
}
@ObfuscatedName("n")
@ObfuscatedSignature(
signature = "(Ldc;)V"
)
@Export("removeSubStream")
public final synchronized void removeSubStream(PcmStream var1) {
var1.remove();
}
@ObfuscatedName("v")
void method2275() {
if (this.field1319 > 0) {
for (PcmStreamMixerListener var1 = (PcmStreamMixerListener)this.field1318.last(); var1 != null; var1 = (PcmStreamMixerListener)this.field1318.previous()) {
var1.field1421 -= this.field1319;
}
this.field1317 -= this.field1319;
this.field1319 = 0;
}
}
@ObfuscatedName("u")
@ObfuscatedSignature(
signature = "(Lfx;Lde;)V"
)
void method2298(Node var1, PcmStreamMixerListener var2) {
while (this.field1318.sentinel != var1 && ((PcmStreamMixerListener)var1).field1421 <= var2.field1421) {
var1 = var1.previous;
}
NodeDeque.NodeDeque_addBefore(var2, var1);
this.field1317 = ((PcmStreamMixerListener)this.field1318.sentinel.previous).field1421;
}
@ObfuscatedName("r")
@ObfuscatedSignature(
signature = "(Lde;)V"
)
void method2276(PcmStreamMixerListener var1) {
var1.remove();
var1.remove2();
Node var2 = this.field1318.sentinel.previous;
if (var2 == this.field1318.sentinel) {
this.field1317 = -1;
} else {
this.field1317 = ((PcmStreamMixerListener)var2).field1421;
}
}
@ObfuscatedName("p")
@ObfuscatedSignature(
signature = "()Ldc;"
)
@Export("firstSubStream")
protected PcmStream firstSubStream() {
return (PcmStream)this.subStreams.last();
}
@ObfuscatedName("q")
@ObfuscatedSignature(
signature = "()Ldc;"
)
@Export("nextSubStream")
protected PcmStream nextSubStream() {
return (PcmStream)this.subStreams.previous();
}
@ObfuscatedName("m")
protected int vmethod3882() {
return 0;
}
@ObfuscatedName("y")
@Export("fill")
public final synchronized void fill(int[] var1, int var2, int var3) {
do {
if (this.field1317 < 0) {
this.updateSubStreams(var1, var2, var3);
return;
}
if (var3 + this.field1319 < this.field1317) {
this.field1319 += var3;
this.updateSubStreams(var1, var2, var3);
return;
}
int var4 = this.field1317 - this.field1319;
this.updateSubStreams(var1, var2, var4);
var2 += var4;
var3 -= var4;
this.field1319 += var4;
this.method2275();
PcmStreamMixerListener var5 = (PcmStreamMixerListener)this.field1318.last();
synchronized(var5) {
int var7 = var5.update();
if (var7 < 0) {
var5.field1421 = 0;
this.method2276(var5);
} else {
var5.field1421 = var7;
this.method2298(var5.previous, var5);
}
}
} while(var3 != 0);
}
@ObfuscatedName("i")
@Export("updateSubStreams")
void updateSubStreams(int[] var1, int var2, int var3) {
for (PcmStream var4 = (PcmStream)this.subStreams.last(); var4 != null; var4 = (PcmStream)this.subStreams.previous()) {
var4.update(var1, var2, var3);
}
}
@ObfuscatedName("c")
@Export("skip")
public final synchronized void skip(int var1) {
do {
if (this.field1317 < 0) {
this.skipSubStreams(var1);
return;
}
if (this.field1319 + var1 < this.field1317) {
this.field1319 += var1;
this.skipSubStreams(var1);
return;
}
int var2 = this.field1317 - this.field1319;
this.skipSubStreams(var2);
var1 -= var2;
this.field1319 += var2;
this.method2275();
PcmStreamMixerListener var3 = (PcmStreamMixerListener)this.field1318.last();
synchronized(var3) {
int var5 = var3.update();
if (var5 < 0) {
var3.field1421 = 0;
this.method2276(var3);
} else {
var3.field1421 = var5;
this.method2298(var3.previous, var3);
}
}
} while(var1 != 0);
}
@ObfuscatedName("b")
@Export("skipSubStreams")
void skipSubStreams(int var1) {
for (PcmStream var2 = (PcmStream)this.subStreams.last(); var2 != null; var2 = (PcmStream)this.subStreams.previous()) {
var2.skip(var1);
}
}
}