package org.cmc.music.common;
import java.util.Map;
import org.cmc.music.util.MyMap;
public class ID3v1Genre
{
public final int id;
public final String name;
public ID3v1Genre(int id, String name)
{
this.id = id;
this.name = name;
}
public static final ID3v1Genre GENRE_BLUES = new ID3v1Genre(0, "Blues");
public static final ID3v1Genre GENRE_CLASSIC_ROCK = new ID3v1Genre(1,
"Classic Rock");
public static final ID3v1Genre GENRE_COUNTRY = new ID3v1Genre(2, "Country");
public static final ID3v1Genre GENRE_DANCE = new ID3v1Genre(3, "Dance");
public static final ID3v1Genre GENRE_DISCO = new ID3v1Genre(4, "Disco");
public static final ID3v1Genre GENRE_FUNK = new ID3v1Genre(5, "Funk");
public static final ID3v1Genre GENRE_GRUNGE = new ID3v1Genre(6, "Grunge");
public static final ID3v1Genre GENRE_HIP_HOP = new ID3v1Genre(7, "Hip-Hop");
public static final ID3v1Genre GENRE_JAZZ = new ID3v1Genre(8, "Jazz");
public static final ID3v1Genre GENRE_METAL = new ID3v1Genre(9, "Metal");
public static final ID3v1Genre GENRE_NEW_AGE = new ID3v1Genre(10, "New Age");
public static final ID3v1Genre GENRE_OLDIES = new ID3v1Genre(11, "Oldies");
public static final ID3v1Genre GENRE_OTHER = new ID3v1Genre(12, "Other");
public static final ID3v1Genre GENRE_POP = new ID3v1Genre(13, "Pop");
public static final ID3v1Genre GENRE_RNB = new ID3v1Genre(14, "R&B");
public static final ID3v1Genre GENRE_RAP = new ID3v1Genre(15, "Rap");
public static final ID3v1Genre GENRE_REGGAE = new ID3v1Genre(16, "Reggae");
public static final ID3v1Genre GENRE_ROCK = new ID3v1Genre(17, "Rock");
public static final ID3v1Genre GENRE_TECHNO = new ID3v1Genre(18, "Techno");
public static final ID3v1Genre GENRE_INDUSTRIAL = new ID3v1Genre(19,
"Industrial");
public static final ID3v1Genre GENRE_ALTERNATIVE = new ID3v1Genre(20,
"Alternative");
public static final ID3v1Genre GENRE_SKA = new ID3v1Genre(21, "Ska");
public static final ID3v1Genre GENRE_DEATH_METAL = new ID3v1Genre(22,
"Death Metal");
public static final ID3v1Genre GENRE_PRANKS = new ID3v1Genre(23, "Pranks");
public static final ID3v1Genre GENRE_SOUNDTRACK = new ID3v1Genre(24,
"Soundtrack");
public static final ID3v1Genre GENRE_EURO_TECHNO = new ID3v1Genre(25,
"Euro-Techno");
public static final ID3v1Genre GENRE_AMBIENT = new ID3v1Genre(26, "Ambient");
public static final ID3v1Genre GENRE_TRIP_HOP = new ID3v1Genre(27,
"Trip-Hop");
public static final ID3v1Genre GENRE_VOCAL = new ID3v1Genre(28, "Vocal");
public static final ID3v1Genre GENRE_JAZZ_FUNK = new ID3v1Genre(29,
"Jazz+Funk");
public static final ID3v1Genre GENRE_FUSION = new ID3v1Genre(30, "Fusion");
public static final ID3v1Genre GENRE_TRANCE = new ID3v1Genre(31, "Trance");
public static final ID3v1Genre GENRE_CLASSICAL = new ID3v1Genre(32,
"Classical");
public static final ID3v1Genre GENRE_INSTRUMENTAL = new ID3v1Genre(33,
"Instrumental");
public static final ID3v1Genre GENRE_ACID = new ID3v1Genre(34, "Acid");
public static final ID3v1Genre GENRE_HOUSE = new ID3v1Genre(35, "House");
public static final ID3v1Genre GENRE_GAME = new ID3v1Genre(36, "Game");
public static final ID3v1Genre GENRE_SOUND_CLIP = new ID3v1Genre(37,
"Sound Clip");
public static final ID3v1Genre GENRE_GOSPEL = new ID3v1Genre(38, "Gospel");
public static final ID3v1Genre GENRE_NOISE = new ID3v1Genre(39, "Noise");
public static final ID3v1Genre GENRE_ALTERNROCK = new ID3v1Genre(40,
"AlternRock");
public static final ID3v1Genre GENRE_BASS = new ID3v1Genre(41, "Bass");
public static final ID3v1Genre GENRE_SOUL = new ID3v1Genre(42, "Soul");
public static final ID3v1Genre GENRE_PUNK = new ID3v1Genre(43, "Punk");
public static final ID3v1Genre GENRE_SPACE = new ID3v1Genre(44, "Space");
public static final ID3v1Genre GENRE_MEDITATIVE = new ID3v1Genre(45,
"Meditative");
public static final ID3v1Genre GENRE_INSTRUMENTAL_POP = new ID3v1Genre(46,
"Instrumental Pop");
public static final ID3v1Genre GENRE_INSTRUMENTAL_ROCK = new ID3v1Genre(47,
"Instrumental Rock");
public static final ID3v1Genre GENRE_ETHNIC = new ID3v1Genre(48, "Ethnic");
public static final ID3v1Genre GENRE_GOTHIC = new ID3v1Genre(49, "Gothic");
public static final ID3v1Genre GENRE_DARKWAVE = new ID3v1Genre(50,
"Darkwave");
public static final ID3v1Genre GENRE_TECHNO_INDUSTRIAL = new ID3v1Genre(51,
"Techno-Industrial");
public static final ID3v1Genre GENRE_ELECTRONIC = new ID3v1Genre(52,
"Electronic");
public static final ID3v1Genre GENRE_POP_FOLK = new ID3v1Genre(53,
"Pop-Folk");
public static final ID3v1Genre GENRE_EURODANCE = new ID3v1Genre(54,
"Eurodance");
public static final ID3v1Genre GENRE_DREAM = new ID3v1Genre(55, "Dream");
public static final ID3v1Genre GENRE_SOUTHERN_ROCK = new ID3v1Genre(56,
"Southern Rock");
public static final ID3v1Genre GENRE_COMEDY = new ID3v1Genre(57, "Comedy");
public static final ID3v1Genre GENRE_CULT = new ID3v1Genre(58, "Cult");
public static final ID3v1Genre GENRE_GANGSTA = new ID3v1Genre(59, "Gangsta");
public static final ID3v1Genre GENRE_TOP_40 = new ID3v1Genre(60, "Top 40");
public static final ID3v1Genre GENRE_CHRISTIAN_RAP = new ID3v1Genre(61,
"Christian Rap");
public static final ID3v1Genre GENRE_POP_FUNK = new ID3v1Genre(62,
"Pop/Funk");
public static final ID3v1Genre GENRE_JUNGLE = new ID3v1Genre(63, "Jungle");
public static final ID3v1Genre GENRE_NATIVE_AMERICAN = new ID3v1Genre(64,
"Native American");
public static final ID3v1Genre GENRE_CABARET = new ID3v1Genre(65, "Cabaret");
public static final ID3v1Genre GENRE_NEW_WAVE = new ID3v1Genre(66,
"New Wave");
public static final ID3v1Genre GENRE_PSYCHADELIC = new ID3v1Genre(67,
"Psychadelic");
public static final ID3v1Genre GENRE_RAVE = new ID3v1Genre(68, "Rave");
public static final ID3v1Genre GENRE_SHOWTUNES = new ID3v1Genre(69,
"Showtunes");
public static final ID3v1Genre GENRE_TRAILER = new ID3v1Genre(70, "Trailer");
public static final ID3v1Genre GENRE_LO_FI = new ID3v1Genre(71, "Lo-Fi");
public static final ID3v1Genre GENRE_TRIBAL = new ID3v1Genre(72, "Tribal");
public static final ID3v1Genre GENRE_ACID_PUNK = new ID3v1Genre(73,
"Acid Punk");
public static final ID3v1Genre GENRE_ACID_JAZZ = new ID3v1Genre(74,
"Acid Jazz");
public static final ID3v1Genre GENRE_POLKA = new ID3v1Genre(75, "Polka");
public static final ID3v1Genre GENRE_RETRO = new ID3v1Genre(76, "Retro");
public static final ID3v1Genre GENRE_MUSICAL = new ID3v1Genre(77, "Musical");
public static final ID3v1Genre GENRE_ROCK_N_ROLL = new ID3v1Genre(78,
"Rock & Roll");
public static final ID3v1Genre GENRE_HARD_ROCK = new ID3v1Genre(79,
"Hard Rock");
public static final ID3v1Genre GENRE_FOLK = new ID3v1Genre(80, "Folk");
public static final ID3v1Genre GENRE_FOLK_ROCK = new ID3v1Genre(81,
"Folk-Rock");
public static final ID3v1Genre GENRE_NATIONAL_FOLK = new ID3v1Genre(82,
"National Folk");
public static final ID3v1Genre GENRE_SWING = new ID3v1Genre(83, "Swing");
public static final ID3v1Genre GENRE_FAST_FUSION = new ID3v1Genre(84,
"Fast Fusion");
public static final ID3v1Genre GENRE_BEBOB = new ID3v1Genre(85, "Bebob");
public static final ID3v1Genre GENRE_LATIN = new ID3v1Genre(86, "Latin");
public static final ID3v1Genre GENRE_REVIVAL = new ID3v1Genre(87, "Revival");
public static final ID3v1Genre GENRE_CELTIC = new ID3v1Genre(88, "Celtic");
public static final ID3v1Genre GENRE_BLUEGRASS = new ID3v1Genre(89,
"Bluegrass");
public static final ID3v1Genre GENRE_AVANTGARDE = new ID3v1Genre(90,
"Avantgarde");
public static final ID3v1Genre GENRE_GOTHIC_ROCK = new ID3v1Genre(91,
"Gothic Rock");
public static final ID3v1Genre GENRE_PROGRESSIVE_ROCK = new ID3v1Genre(92,
"Progressive Rock");
public static final ID3v1Genre GENRE_PSYCHEDELIC_ROCK = new ID3v1Genre(93,
"Psychedelic Rock");
public static final ID3v1Genre GENRE_SYMPHONIC_ROCK = new ID3v1Genre(94,
"Symphonic Rock");
public static final ID3v1Genre GENRE_SLOW_ROCK = new ID3v1Genre(95,
"Slow Rock");
public static final ID3v1Genre GENRE_BIG_BAND = new ID3v1Genre(96,
"Big Band");
public static final ID3v1Genre GENRE_CHORUS = new ID3v1Genre(97, "Chorus");
public static final ID3v1Genre GENRE_EASY_LISTENING = new ID3v1Genre(98,
"Easy Listening");
public static final ID3v1Genre GENRE_ACOUSTIC = new ID3v1Genre(99,
"Acoustic");
public static final ID3v1Genre GENRE_HUMOUR = new ID3v1Genre(100, "Humour");
public static final ID3v1Genre GENRE_SPEECH = new ID3v1Genre(101, "Speech");
public static final ID3v1Genre GENRE_CHANSON = new ID3v1Genre(102,
"Chanson");
public static final ID3v1Genre GENRE_OPERA = new ID3v1Genre(103, "Opera");
public static final ID3v1Genre GENRE_CHAMBER_MUSIC = new ID3v1Genre(104,
"Chamber Music");
public static final ID3v1Genre GENRE_SONATA = new ID3v1Genre(105, "Sonata");
public static final ID3v1Genre GENRE_SYMPHONY = new ID3v1Genre(106,
"Symphony");
public static final ID3v1Genre GENRE_BOOTY_BASS = new ID3v1Genre(107,
"Booty Bass");
public static final ID3v1Genre GENRE_PRIMUS = new ID3v1Genre(108, "Primus");
public static final ID3v1Genre GENRE_PORN_GROOVE = new ID3v1Genre(109,
"Porn Groove");
public static final ID3v1Genre GENRE_SATIRE = new ID3v1Genre(110, "Satire");
public static final ID3v1Genre GENRE_SLOW_JAM = new ID3v1Genre(111,
"Slow Jam");
public static final ID3v1Genre GENRE_CLUB = new ID3v1Genre(112, "Club");
public static final ID3v1Genre GENRE_TANGO = new ID3v1Genre(113, "Tango");
public static final ID3v1Genre GENRE_SAMBA = new ID3v1Genre(114, "Samba");
public static final ID3v1Genre GENRE_FOLKLORE = new ID3v1Genre(115,
"Folklore");
public static final ID3v1Genre GENRE_BALLAD = new ID3v1Genre(116, "Ballad");
public static final ID3v1Genre GENRE_POWER_BALLAD = new ID3v1Genre(117,
"Power Ballad");
public static final ID3v1Genre GENRE_RHYTHMIC_SOUL = new ID3v1Genre(118,
"Rhythmic Soul");
public static final ID3v1Genre GENRE_FREESTYLE = new ID3v1Genre(119,
"Freestyle");
public static final ID3v1Genre GENRE_DUET = new ID3v1Genre(120, "Duet");
public static final ID3v1Genre GENRE_PUNK_ROCK = new ID3v1Genre(121,
"Punk Rock");
public static final ID3v1Genre GENRE_DRUM_SOLO = new ID3v1Genre(122,
"Drum Solo");
public static final ID3v1Genre GENRE_A_CAPELLA = new ID3v1Genre(123,
"A capella");
public static final ID3v1Genre GENRE_EURO_HOUSE = new ID3v1Genre(124,
"Euro-House");
public static final ID3v1Genre GENRE_DANCE_HALL = new ID3v1Genre(125,
"Dance Hall");
private static final ID3v1Genre ALL[] = { GENRE_BLUES, //
GENRE_CLASSIC_ROCK, //
GENRE_COUNTRY, //
GENRE_DANCE, //
GENRE_DISCO, //
GENRE_FUNK, //
GENRE_GRUNGE, //
GENRE_HIP_HOP, //
GENRE_JAZZ, //
GENRE_METAL, //
GENRE_NEW_AGE, //
GENRE_OLDIES, //
GENRE_OTHER, //
GENRE_POP, //
GENRE_RNB, //
GENRE_RAP, //
GENRE_REGGAE, //
GENRE_ROCK, //
GENRE_TECHNO, //
GENRE_INDUSTRIAL, //
GENRE_ALTERNATIVE, //
GENRE_SKA, //
GENRE_DEATH_METAL, //
GENRE_PRANKS, //
GENRE_SOUNDTRACK, //
GENRE_EURO_TECHNO, //
GENRE_AMBIENT, //
GENRE_TRIP_HOP, //
GENRE_VOCAL, //
GENRE_JAZZ_FUNK, //
GENRE_FUSION, //
GENRE_TRANCE, //
GENRE_CLASSICAL, //
GENRE_INSTRUMENTAL, //
GENRE_ACID, //
GENRE_HOUSE, //
GENRE_GAME, //
GENRE_SOUND_CLIP, //
GENRE_GOSPEL, //
GENRE_NOISE, //
GENRE_ALTERNROCK, //
GENRE_BASS, //
GENRE_SOUL, //
GENRE_PUNK, //
GENRE_SPACE, //
GENRE_MEDITATIVE, //
GENRE_INSTRUMENTAL_POP, //
GENRE_INSTRUMENTAL_ROCK, //
GENRE_ETHNIC, //
GENRE_GOTHIC, //
GENRE_DARKWAVE, //
GENRE_TECHNO_INDUSTRIAL, //
GENRE_ELECTRONIC, //
GENRE_POP_FOLK, //
GENRE_EURODANCE, //
GENRE_DREAM, //
GENRE_SOUTHERN_ROCK, //
GENRE_COMEDY, //
GENRE_CULT, //
GENRE_GANGSTA, //
GENRE_TOP_40, //
GENRE_CHRISTIAN_RAP, //
GENRE_POP_FUNK, //
GENRE_JUNGLE, //
GENRE_NATIVE_AMERICAN, //
GENRE_CABARET, //
GENRE_NEW_WAVE, //
GENRE_PSYCHADELIC, //
GENRE_RAVE, //
GENRE_SHOWTUNES, //
GENRE_TRAILER, //
GENRE_LO_FI, //
GENRE_TRIBAL, //
GENRE_ACID_PUNK, //
GENRE_ACID_JAZZ, //
GENRE_POLKA, //
GENRE_RETRO, //
GENRE_MUSICAL, //
GENRE_ROCK_N_ROLL, //
GENRE_HARD_ROCK, //
GENRE_FOLK, //
GENRE_FOLK_ROCK, //
GENRE_NATIONAL_FOLK, //
GENRE_SWING, //
GENRE_FAST_FUSION, //
GENRE_BEBOB, //
GENRE_LATIN, //
GENRE_REVIVAL, //
GENRE_CELTIC, //
GENRE_BLUEGRASS, //
GENRE_AVANTGARDE, //
GENRE_GOTHIC_ROCK, //
GENRE_PROGRESSIVE_ROCK, //
GENRE_PSYCHEDELIC_ROCK, //
GENRE_SYMPHONIC_ROCK, //
GENRE_SLOW_ROCK, //
GENRE_BIG_BAND, //
GENRE_CHORUS, //
GENRE_EASY_LISTENING, //
GENRE_ACOUSTIC, //
GENRE_HUMOUR, //
GENRE_SPEECH, //
GENRE_CHANSON, //
GENRE_OPERA, //
GENRE_CHAMBER_MUSIC, //
GENRE_SONATA, //
GENRE_SYMPHONY, //
GENRE_BOOTY_BASS, //
GENRE_PRIMUS, //
GENRE_PORN_GROOVE, //
GENRE_SATIRE, //
GENRE_SLOW_JAM, //
GENRE_CLUB, //
GENRE_TANGO, //
GENRE_SAMBA, //
GENRE_FOLKLORE, //
GENRE_BALLAD, //
GENRE_POWER_BALLAD, //
GENRE_RHYTHMIC_SOUL, //
GENRE_FREESTYLE, //
GENRE_DUET, //
GENRE_PUNK_ROCK, //
GENRE_DRUM_SOLO, //
GENRE_A_CAPELLA, //
GENRE_EURO_HOUSE, //
GENRE_DANCE_HALL, //
};
private static final String simplify(String s)
{
StringBuffer result = new StringBuffer();
char chars[] = s.toCharArray();
for (int i = 0; i < chars.length; i++)
{
char c = chars[i];
if (Character.isLetter(c))
result.append(Character.toLowerCase(c));
else if (Character.isDigit(c))
result.append(c);
else
;
}
return result.toString();
}
private static final Map ID_TO_NAME_MAP = new MyMap();
private static final Map NAME_TO_ID_MAP = new MyMap();
private static final Map SIMPLE_NAME_TO_ID_MAP = new MyMap();
static
{
for (int i = 0; i < ALL.length; i++)
{
ID3v1Genre genre = ALL[i];
String name = genre.name;
Number id = new Integer(genre.id);
ID_TO_NAME_MAP.put(id, name);
NAME_TO_ID_MAP.put(name, id);
String simple = simplify(name);
SIMPLE_NAME_TO_ID_MAP.put(simple, id);
}
}
public static final Number getIDForName(String name)
{
Number result = (Number) NAME_TO_ID_MAP.get(name);
if (result != null)
return result;
String simple = simplify(name);
result = (Number) SIMPLE_NAME_TO_ID_MAP.get(simple);
return result;
}
public static final String getNameForID(Number id)
{
return (String) ID_TO_NAME_MAP.get(id);
}
}