1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.tika.parser.mp3; 18 19 20 /** 21 * Interface that defines the common interface for ID3 tag parsers, 22 * such as ID3v1 and ID3v2.3. 23 * Implementations should return NULL if the file lacks a given 24 * tag, or if the tag isn't defined for the version. 25 * 26 * Note that so far, only the ID3v1 core tags are listed here. In 27 * future, we may wish to add more to cover the extra tags that 28 * our ID3v2 handlers can produce. 29 */ 30 public interface ID3Tags { 31 /** 32 * List of predefined genres. 33 * 34 * @see http://www.id3.org/id3v2-00 35 */ 36 String[] GENRES = new String[] { 37 /* 0 */ "Blues", 38 /* 1 */ "Classic Rock", 39 /* 2 */ "Country", 40 /* 3 */ "Dance", 41 /* 4 */ "Disco", 42 /* 5 */ "Funk", 43 /* 6 */ "Grunge", 44 /* 7 */ "Hip-Hop", 45 /* 8 */ "Jazz", 46 /* 9 */ "Metal", 47 /* 10 */ "New Age", 48 /* 11 */ "Oldies", 49 /* 12 */ "Other", 50 /* 13 */ "Pop", 51 /* 14 */ "R&B", 52 /* 15 */ "Rap", 53 /* 16 */ "Reggae", 54 /* 17 */ "Rock", 55 /* 18 */ "Techno", 56 /* 19 */ "Industrial", 57 /* 20 */ "Alternative", 58 /* 21 */ "Ska", 59 /* 22 */ "Death Metal", 60 /* 23 */ "Pranks", 61 /* 24 */ "Soundtrack", 62 /* 25 */ "Euro-Techno", 63 /* 26 */ "Ambient", 64 /* 27 */ "Trip-Hop", 65 /* 28 */ "Vocal", 66 /* 29 */ "Jazz+Funk", 67 /* 30 */ "Fusion", 68 /* 31 */ "Trance", 69 /* 32 */ "Classical", 70 /* 33 */ "Instrumental", 71 /* 34 */ "Acid", 72 /* 35 */ "House", 73 /* 36 */ "Game", 74 /* 37 */ "Sound Clip", 75 /* 38 */ "Gospel", 76 /* 39 */ "Noise", 77 /* 40 */ "AlternRock", 78 /* 41 */ "Bass", 79 /* 42 */ "Soul", 80 /* 43 */ "Punk", 81 /* 44 */ "Space", 82 /* 45 */ "Meditative", 83 /* 46 */ "Instrumental Pop", 84 /* 47 */ "Instrumental Rock", 85 /* 48 */ "Ethnic", 86 /* 49 */ "Gothic", 87 /* 50 */ "Darkwave", 88 /* 51 */ "Techno-Industrial", 89 /* 52 */ "Electronic", 90 /* 53 */ "Pop-Folk", 91 /* 54 */ "Eurodance", 92 /* 55 */ "Dream", 93 /* 56 */ "Southern Rock", 94 /* 57 */ "Comedy", 95 /* 58 */ "Cult", 96 /* 59 */ "Gangsta", 97 /* 60 */ "Top 40", 98 /* 61 */ "Christian Rap", 99 /* 62 */ "Pop/Funk", 100 /* 63 */ "Jungle", 101 /* 64 */ "Native American", 102 /* 65 */ "Cabaret", 103 /* 66 */ "New Wave", 104 /* 67 */ "Psychadelic", 105 /* 68 */ "Rave", 106 /* 69 */ "Showtunes", 107 /* 70 */ "Trailer", 108 /* 71 */ "Lo-Fi", 109 /* 72 */ "Tribal", 110 /* 73 */ "Acid Punk", 111 /* 74 */ "Acid Jazz", 112 /* 75 */ "Polka", 113 /* 76 */ "Retro", 114 /* 77 */ "Musical", 115 /* 78 */ "Rock & Roll", 116 /* 79 */ "Hard Rock", 117 /* 80 */ "Folk", 118 /* 81 */ "Folk-Rock", 119 /* 82 */ "National Folk", 120 /* 83 */ "Swing", 121 /* 84 */ "Fast Fusion", 122 /* 85 */ "Bebob", 123 /* 86 */ "Latin", 124 /* 87 */ "Revival", 125 /* 88 */ "Celtic", 126 /* 89 */ "Bluegrass", 127 /* 90 */ "Avantgarde", 128 /* 91 */ "Gothic Rock", 129 /* 92 */ "Progressive Rock", 130 /* 93 */ "Psychedelic Rock", 131 /* 94 */ "Symphonic Rock", 132 /* 95 */ "Slow Rock", 133 /* 96 */ "Big Band", 134 /* 97 */ "Chorus", 135 /* 98 */ "Easy Listening", 136 /* 99 */ "Acoustic", 137 /* 100 */ "Humour", 138 /* 101 */ "Speech", 139 /* 102 */ "Chanson", 140 /* 103 */ "Opera", 141 /* 104 */ "Chamber Music", 142 /* 105 */ "Sonata", 143 /* 106 */ "Symphony", 144 /* 107 */ "Booty Bass", 145 /* 108 */ "Primus", 146 /* 109 */ "Porn Groove", 147 /* 110 */ "Satire", 148 /* 111 */ "Slow Jam", 149 /* 112 */ "Club", 150 /* 113 */ "Tango", 151 /* 114 */ "Samba", 152 /* 115 */ "Folklore", 153 /* 116 */ "Ballad", 154 /* 117 */ "Power Ballad", 155 /* 118 */ "Rhythmic Soul", 156 /* 119 */ "Freestyle", 157 /* 120 */ "Duet", 158 /* 121 */ "Punk Rock", 159 /* 122 */ "Drum Solo", 160 /* 123 */ "A capella", 161 /* 124 */ "Euro-House", 162 /* 125 */ "Dance Hall", 163 /* sentinel */ "" 164 }; 165 166 /** 167 * Does the file contain this kind of tags? 168 */ 169 boolean getTagsPresent(); 170 171 String getTitle(); 172 173 String getArtist(); 174 175 String getAlbum(); 176 177 String getComment(); 178 179 String getGenre(); 180 181 String getYear(); 182 183 String getTrackNumber(); 184 185 }