Move some text-parsing methods to Util class.
This commit is contained in:
parent
1dba55620f
commit
0914cadaf5
|
@ -18,8 +18,6 @@ import javax.json.JsonObject;
|
|||
class Format
|
||||
{
|
||||
|
||||
private static final Pattern SIZE_PATTERN = Pattern.compile("\\b([0-9]+\\.?[0-9]*)([kkMmGg])i?[bB]\\b");
|
||||
private static final Pattern SAMPLE_RATE_PATTERN = Pattern.compile("\\b([0-9]+)k(b(ps?))?\\b");
|
||||
|
||||
private final String code;
|
||||
private final String extension;
|
||||
|
@ -97,29 +95,9 @@ class Format
|
|||
return size;
|
||||
|
||||
// try to find eg. "1.32MiB" inside note
|
||||
Matcher matcher = SIZE_PATTERN.matcher(note);
|
||||
if (matcher.find())
|
||||
{
|
||||
double value = Double.parseDouble(matcher.group(1));
|
||||
String mag = matcher.group(2).toUpperCase();
|
||||
long mult = 1;
|
||||
switch (mag)
|
||||
{
|
||||
case "K":
|
||||
mult = 1024;
|
||||
break;
|
||||
case "M":
|
||||
mult = 1024 * 1024;
|
||||
break;
|
||||
case "G":
|
||||
mult = 1024 * 1024 * 1024;
|
||||
break;
|
||||
}
|
||||
value *= mult;
|
||||
return (long) value;
|
||||
long size = Util.parseSize(note);
|
||||
|
||||
}
|
||||
return -1;
|
||||
return size;
|
||||
}
|
||||
|
||||
public int getSampleRate()
|
||||
|
@ -128,12 +106,7 @@ class Format
|
|||
return samplerate;
|
||||
|
||||
// try to find eg. "51k" inside note
|
||||
Matcher matcher = SAMPLE_RATE_PATTERN.matcher(note);
|
||||
if (matcher.find())
|
||||
{
|
||||
return Integer.parseInt(matcher.group(1)) * 1000;
|
||||
}
|
||||
return -1;
|
||||
return Util.parseSampleRate(note);
|
||||
}
|
||||
|
||||
public void setSampleRate(int samplerate)
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package moe.nekojimi.chords;
|
||||
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/*
|
||||
* Copyright (C) 2022 jimj316
|
||||
|
@ -25,6 +27,10 @@ import java.nio.ByteBuffer;
|
|||
*/
|
||||
public class Util
|
||||
{
|
||||
|
||||
private static final Pattern SIZE_PATTERN = Pattern.compile("\\b([0-9]+\\.?[0-9]*)([kkMmGg])i?[bB]\\b");
|
||||
private static final Pattern SAMPLE_RATE_PATTERN = Pattern.compile("\\b([0-9]+)k(b(ps?))?\\b");
|
||||
|
||||
public static String printSamples(ByteBuffer buf)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
@ -34,4 +40,41 @@ public class Util
|
|||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public static int parseSampleRate(String input)
|
||||
{
|
||||
Matcher matcher = SAMPLE_RATE_PATTERN.matcher(input);
|
||||
if (matcher.find())
|
||||
{
|
||||
return Integer.parseInt(matcher.group(1)) * 1000;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static long parseSize(String note)
|
||||
{
|
||||
Matcher matcher = SIZE_PATTERN.matcher(note);
|
||||
if (matcher.find())
|
||||
{
|
||||
double value = Double.parseDouble(matcher.group(1));
|
||||
String mag = matcher.group(2).toUpperCase();
|
||||
long mult = 1;
|
||||
switch (mag)
|
||||
{
|
||||
case "K":
|
||||
mult = 1024;
|
||||
break;
|
||||
case "M":
|
||||
mult = 1024 * 1024;
|
||||
break;
|
||||
case "G":
|
||||
mult = 1024 * 1024 * 1024;
|
||||
break;
|
||||
}
|
||||
value *= mult;
|
||||
return (long) value;
|
||||
|
||||
}
|
||||
return -1L;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue