ChannelValidator class

Пакет: com.hypixel.hytale.server.core.asset.common

Файл: com/hypixel/hytale/server/core/asset/common/SoundFileValidators.java

implements: Validator<String>

Поля (3)

МодификаторыТипИмя
private final int channelCount
assert var1
OggVorbisInfoCache.OggVorbisInfo var3

Методы (5)

МодификаторыВозвратСигнатура
public void acceptpublic void accept(@Nullable String var1, @Nonnull ValidationResults var2)
if if(var1 != null)
if if(var3 == null)
if if(var3.channels != this.channelCount)
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) {
      }
   }
}