Spaces:
Build error
Build error
package com.mojang.blaze3d.audio; | |
import java.nio.ByteBuffer; | |
import java.util.OptionalInt; | |
import javax.annotation.Nullable; | |
import javax.sound.sampled.AudioFormat; | |
import net.minecraftforge.api.distmarker.Dist; | |
import net.minecraftforge.api.distmarker.OnlyIn; | |
import org.lwjgl.openal.AL10; | |
public class SoundBuffer { | |
private ByteBuffer data; | |
private final AudioFormat format; | |
private boolean hasAlBuffer; | |
private int alBuffer; | |
public SoundBuffer(ByteBuffer p_83798_, AudioFormat p_83799_) { | |
this.data = p_83798_; | |
this.format = p_83799_; | |
} | |
OptionalInt getAlBuffer() { | |
if (!this.hasAlBuffer) { | |
if (this.data == null) { | |
return OptionalInt.empty(); | |
} | |
int i = OpenAlUtil.audioFormatToOpenAl(this.format); | |
int[] aint = new int[1]; | |
AL10.alGenBuffers(aint); | |
if (OpenAlUtil.checkALError("Creating buffer")) { | |
return OptionalInt.empty(); | |
} | |
AL10.alBufferData(aint[0], i, this.data, (int)this.format.getSampleRate()); | |
if (OpenAlUtil.checkALError("Assigning buffer data")) { | |
return OptionalInt.empty(); | |
} | |
this.alBuffer = aint[0]; | |
this.hasAlBuffer = true; | |
this.data = null; | |
} | |
return OptionalInt.of(this.alBuffer); | |
} | |
public void discardAlBuffer() { | |
if (this.hasAlBuffer) { | |
AL10.alDeleteBuffers(new int[]{this.alBuffer}); | |
if (OpenAlUtil.checkALError("Deleting stream buffers")) { | |
return; | |
} | |
} | |
this.hasAlBuffer = false; | |
} | |
public OptionalInt releaseAlBuffer() { | |
OptionalInt optionalint = this.getAlBuffer(); | |
this.hasAlBuffer = false; | |
return optionalint; | |
} | |
} |