From: David ‘Bombe’ Roden Date: Mon, 30 Jul 2012 10:02:04 +0000 (+0200) Subject: Add method that tries to automatically detect the audio codec from the filename. X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=99cf6fe8734e6d7b983c7ce6f32ebb4143335cf0;p=demoscenemusic.git Add method that tries to automatically detect the audio codec from the filename. --- diff --git a/src/main/java/net/pterodactylus/demoscenemusic/utils/AudioCodecs.java b/src/main/java/net/pterodactylus/demoscenemusic/utils/AudioCodecs.java index f09e79f..4ec19e8 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/utils/AudioCodecs.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/utils/AudioCodecs.java @@ -41,6 +41,35 @@ public class AudioCodecs { } /** + * Tries to automatically detect the audio codec from the filename. In most + * cases this will match the {@link AudioCodecDescription#code} of the codec + * but in some cases other extensions are possible, too. Also, on Amiga + * filenames usually start with the extension (mod files are often named + * “mod.somethingsomethingsomethingdarkside”). + * + * @param filename + * The name of the file + * @return The audio codec of the file, or {@code null} if no codec could be + * detected + */ + public static AudioCodecDescription detect(String filename) { + String extension = filename.substring(filename.lastIndexOf('.') + 1).toLowerCase(); + if (codecDescriptions.containsKey(extension)) { + return codecDescriptions.get(extension); + } + if (extension.equals("ogg")) { + return codecDescriptions.get("vorbis"); + } + if (extension.equals("mp4")) { + return codecDescriptions.get("aac"); + } + if (extension.equals("xm")) { + return codecDescriptions.get("ft2"); + } + return null; + } + + /** * Bundles descriptions for various audio codecs. For simplicity reasons, * file formats such as MOD, IT, or SID are also treated as audio codecs * even though they are not.