Support case-insensitive audio file names. (fixes #33)
Signed-off-by: Jeffrey Han <itdelatrisu@gmail.com>
This commit is contained in:
parent
078b765143
commit
cf6e87f6f2
|
@ -191,13 +191,28 @@ public class OsuParser {
|
||||||
try {
|
try {
|
||||||
switch (tokens[0]) {
|
switch (tokens[0]) {
|
||||||
case "AudioFilename":
|
case "AudioFilename":
|
||||||
File audioFileName = new File(file.getParent(), tokens[1]);
|
File audioFileName = new File(dir, tokens[1]);
|
||||||
if (!osuFiles.isEmpty()) {
|
if (!osuFiles.isEmpty()) {
|
||||||
// if possible, reuse the same File object from another OsuFile in the group
|
// if possible, reuse the same File object from another OsuFile in the group
|
||||||
File groupAudioFileName = osuFiles.get(0).audioFilename;
|
File groupAudioFileName = osuFiles.get(0).audioFilename;
|
||||||
if (audioFileName.equals(groupAudioFileName))
|
if (tokens[1].equalsIgnoreCase(groupAudioFileName.getName()))
|
||||||
audioFileName = groupAudioFileName;
|
audioFileName = groupAudioFileName;
|
||||||
}
|
}
|
||||||
|
if (!audioFileName.isFile()) {
|
||||||
|
// try to find the file with a case-insensitive match
|
||||||
|
boolean match = false;
|
||||||
|
for (String s : dir.list()) {
|
||||||
|
if (s.equalsIgnoreCase(tokens[1])) {
|
||||||
|
audioFileName = new File(dir, s);
|
||||||
|
match = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!match) {
|
||||||
|
Log.error(String.format("File not found: '%s'", tokens[1]));
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
osu.audioFilename = audioFileName;
|
osu.audioFilename = audioFileName;
|
||||||
break;
|
break;
|
||||||
case "AudioLeadIn":
|
case "AudioLeadIn":
|
||||||
|
|
Loading…
Reference in New Issue
Block a user