SampleRateValidator class
Пакет: com.hypixel.hytale.server.core.asset.common
Файл: com/hypixel/hytale/server/core/asset/common/SoundFileValidators.java
implements: Validator<String>
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
assert var1.length > |
0 |
|
private final int[] |
allowedHz |
|
|
return |
|
OggVorbisInfoCache.OggVorbisInfo |
var3 |
|
StringBuilder |
var8 |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public void |
acceptpublic void accept(@Nullable String var1, @Nonnull ValidationResults var2) |
|
|
for for(int var7 : this.allowedHz) |
|
|
for for(int var9 = 0; var9 < this.allowedHz.length; var9++) |
|
|
if if(var1 != null) |
|
|
if if(var3 == null) |
|
|
if if(var3.sampleRate == var7) |
|
|
if if(var9 > 0) |
|
public void |
updateSchemapublic void updateSchema(SchemaContext var1, Schema var2) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.asset.common;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.config.Schema;
class="kw">import com.hypixel.hytale.codec.validation.ValidationResults;
class="kw">import com.hypixel.hytale.codec.validation.Validator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class SoundFileValidators {
class="kw">public class="kw">static class="kw">final SoundFileValidators.ChannelValidator MONO = new SoundFileValidators.ChannelValidator(1);
class="kw">public class="kw">static class="kw">final SoundFileValidators.ChannelValidator STEREO = new SoundFileValidators.ChannelValidator(2);
class="kw">public class="kw">static class="kw">final SoundFileValidators.SampleRateValidator MUSIC_SAMPLE_RATE = new SoundFileValidators.SampleRateValidator(48000, 44100);
class="kw">private class="kw">static class="kw">final String MONO_STRING = "Mono";
class="kw">private class="kw">static class="kw">final String STEREO_STRING = "Stereo";
class="kw">public SoundFileValidators() {
}
@Nonnull
class="kw">public class="kw">static String getEncoding(int var0) {
class="kw">return class="kw">switch (var0) {
case 1 -> "Mono";
case 2 -> "Stereo";
class="kw">default -> throw new IllegalArgumentException("Invalid channel count: " + var0);
};
}
class="kw">public class="kw">static class ChannelValidator class="kw">implements Validator<String> {
class="kw">private class="kw">final int channelCount;
class="kw">public ChannelValidator(int var1) {
assert var1 == 1 || var1 == 2;
this.channelCount = var1;
}
class="kw">public void accept(@Nullable String var1, @Nonnull ValidationResults var2) {
if (var1 != null) {
OggVorbisInfoCache.OggVorbisInfo var3 = OggVorbisInfoCache.getNow(var1);
if (var3 == null) {
var2.fail("No such ogg file: " + var1);
} else {
if (var3.channels != this.channelCount) {
var2.fail(
"Sound file '"
+ var1
+ "' is "
+ SoundFileValidators.getEncoding(var3.channels)
+ " instead of "
+ SoundFileValidators.getEncoding(this.channelCount)
);
}
}
}
}
@Override
class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
}
}
class="kw">public class="kw">static class SampleRateValidator class="kw">implements Validator<String> {
class="kw">private class="kw">final int[] allowedHz;
class="kw">public SampleRateValidator(int... var1) {
assert var1.length > 0;
this.allowedHz = var1;
}
class="kw">public void accept(@Nullable String var1, @Nonnull ValidationResults var2) {
if (var1 != null) {
OggVorbisInfoCache.OggVorbisInfo var3 = OggVorbisInfoCache.getNow(var1);
if (var3 == null) {
var2.fail("No such ogg file: " + var1);
} else {
for (int var7 : this.allowedHz) {
if (var3.sampleRate == var7) {
class="kw">return;
}
}
StringBuilder var8 = new StringBuilder();
for (int var9 = 0; var9 < this.allowedHz.length; var9++) {
if (var9 > 0) {
var8.append(var9 == this.allowedHz.length - 1 ? " or " : ", ");
}
var8.append(this.allowedHz[var9]);
}
var2.fail("Sound file '" + var1 + "' has sample rate " + var3.sampleRate + " Hz; must be " + var8 + " Hz");
}
}
}
@Override
class="kw">public void updateSchema(SchemaContext var1, Schema var2) {
}
}
}