forked from 2009Scape/Server
Client sound fix (dropping still has sound issues)
Cache now includes all music + sfx + sound (taken from revision 550) Drop item handler - removed useless send audio
This commit is contained in:
parent
8b1bcd3a4c
commit
b6495f8d33
58 changed files with 855 additions and 847 deletions
97
Client/src/main/java/org/runite/client/JavaAudioChannel.java
Normal file
97
Client/src/main/java/org/runite/client/JavaAudioChannel.java
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
package org.runite.client;
|
||||
import java.awt.Component;
|
||||
import javax.sound.sampled.AudioFormat;
|
||||
import javax.sound.sampled.AudioSystem;
|
||||
import javax.sound.sampled.LineUnavailableException;
|
||||
import javax.sound.sampled.SourceDataLine;
|
||||
import javax.sound.sampled.Mixer.Info;
|
||||
|
||||
final class JavaAudioChannel extends AudioChannel {
|
||||
|
||||
private int anInt2971;
|
||||
private SourceDataLine aSourceDataLine2972;
|
||||
private boolean aBoolean2973 = false;
|
||||
private AudioFormat anAudioFormat2974;
|
||||
private byte[] aByteArray2975;
|
||||
|
||||
|
||||
final void close() {
|
||||
if(null != this.aSourceDataLine2972) {
|
||||
this.aSourceDataLine2972.close();
|
||||
this.aSourceDataLine2972 = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
final void init(Component var1) {
|
||||
Info[] var2 = AudioSystem.getMixerInfo();
|
||||
if(null != var2) {
|
||||
|
||||
for(int var4 = 0; var2.length > var4; ++var4) {
|
||||
Info var5 = var2[var4];
|
||||
if(null != var5) {
|
||||
String var6 = var5.getName();
|
||||
if(null != var6 && var6.toLowerCase().contains("soundmax")) {
|
||||
this.aBoolean2973 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.anAudioFormat2974 = new AudioFormat((float)Class21.sampleRate, 16, !AudioChannel.stereo ?1:2, true, false);
|
||||
this.aByteArray2975 = new byte[256 << (AudioChannel.stereo ?2:1)];
|
||||
}
|
||||
|
||||
final void open(int var1) throws LineUnavailableException {
|
||||
try {
|
||||
javax.sound.sampled.DataLine.Info var2 = new javax.sound.sampled.DataLine.Info(SourceDataLine.class, this.anAudioFormat2974, var1 << (!AudioChannel.stereo ?1:2));
|
||||
this.aSourceDataLine2972 = (SourceDataLine)AudioSystem.getLine(var2);
|
||||
this.aSourceDataLine2972.open();
|
||||
this.aSourceDataLine2972.start();
|
||||
this.anInt2971 = var1;
|
||||
} catch (LineUnavailableException var3) {
|
||||
if(Class146.method2080(var1) == 1) {
|
||||
this.aSourceDataLine2972 = null;
|
||||
throw var3;
|
||||
} else {
|
||||
this.open(Class95.method1585((byte)76, var1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final void flush() throws LineUnavailableException {
|
||||
this.aSourceDataLine2972.flush();
|
||||
if(this.aBoolean2973) {
|
||||
this.aSourceDataLine2972.close();
|
||||
this.aSourceDataLine2972 = null;
|
||||
javax.sound.sampled.DataLine.Info var1 = new javax.sound.sampled.DataLine.Info(SourceDataLine.class, this.anAudioFormat2974, this.anInt2971 << (!AudioChannel.stereo ?1:2));
|
||||
this.aSourceDataLine2972 = (SourceDataLine)AudioSystem.getLine(var1);
|
||||
this.aSourceDataLine2972.open();
|
||||
this.aSourceDataLine2972.start();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
final int method2157() {
|
||||
return this.anInt2971 - (this.aSourceDataLine2972.available() >> (!AudioChannel.stereo ?1:2));
|
||||
}
|
||||
|
||||
final void write() {
|
||||
int var1 = 256;
|
||||
if(AudioChannel.stereo) {
|
||||
var1 <<= 1;
|
||||
}
|
||||
|
||||
for(int var2 = 0; var2 < var1; ++var2) {
|
||||
int var3 = this.samples[var2];
|
||||
if((var3 + 8388608 & -16777216) != 0) {
|
||||
var3 = 8388607 ^ var3 >> 31;
|
||||
}
|
||||
|
||||
this.aByteArray2975[var2 * 2] = (byte)(var3 >> 8);
|
||||
this.aByteArray2975[var2 * 2 + 1] = (byte)(var3 >> 16);
|
||||
}
|
||||
|
||||
this.aSourceDataLine2972.write(this.aByteArray2975, 0, var1 << 1);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue