2025-11-24 22:52:51 +03:00

106 lines
3.1 KiB
Java

/*
* Decompiled with CFR 0.152.
*
* Could not load the following classes:
* com.mojang.logging.LogUtils
* org.lwjgl.openal.AL10
* org.lwjgl.openal.ALC10
* org.slf4j.Logger
*/
package com.mojang.blaze3d.audio;
import com.mojang.logging.LogUtils;
import javax.sound.sampled.AudioFormat;
import org.lwjgl.openal.AL10;
import org.lwjgl.openal.ALC10;
import org.slf4j.Logger;
public class OpenAlUtil {
private static final Logger LOGGER = LogUtils.getLogger();
private static String alErrorToString(int error) {
switch (error) {
case 40961: {
return "Invalid name parameter.";
}
case 40962: {
return "Invalid enumerated parameter value.";
}
case 40963: {
return "Invalid parameter parameter value.";
}
case 40964: {
return "Invalid operation.";
}
case 40965: {
return "Unable to allocate memory.";
}
}
return "An unrecognized error occurred.";
}
static boolean checkALError(String location) {
int error = AL10.alGetError();
if (error != 0) {
LOGGER.error("{}: {}", (Object)location, (Object)OpenAlUtil.alErrorToString(error));
return true;
}
return false;
}
private static String alcErrorToString(int error) {
switch (error) {
case 40961: {
return "Invalid device.";
}
case 40962: {
return "Invalid context.";
}
case 40964: {
return "Invalid value.";
}
case 40963: {
return "Illegal enum.";
}
case 40965: {
return "Unable to allocate memory.";
}
}
return "An unrecognized error occurred.";
}
static boolean checkALCError(long device, String location) {
int error = ALC10.alcGetError((long)device);
if (error != 0) {
LOGGER.error("{} ({}): {}", new Object[]{location, device, OpenAlUtil.alcErrorToString(error)});
return true;
}
return false;
}
static int audioFormatToOpenAl(AudioFormat audioFormat) {
AudioFormat.Encoding encoding = audioFormat.getEncoding();
int channels = audioFormat.getChannels();
int sampleSizeInBits = audioFormat.getSampleSizeInBits();
if (encoding.equals(AudioFormat.Encoding.PCM_UNSIGNED) || encoding.equals(AudioFormat.Encoding.PCM_SIGNED)) {
if (channels == 1) {
if (sampleSizeInBits == 8) {
return 4352;
}
if (sampleSizeInBits == 16) {
return 4353;
}
} else if (channels == 2) {
if (sampleSizeInBits == 8) {
return 4354;
}
if (sampleSizeInBits == 16) {
return 4355;
}
}
}
throw new IllegalArgumentException("Invalid audio format: " + String.valueOf(audioFormat));
}
}