summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2003-06-04 15:09:35 +0000
committerBjörn Stenberg <bjorn@haxx.se>2003-06-04 15:09:35 +0000
commit8498a48496579aecc1645604f49d931d4f35ff7f (patch)
tree6caebfc5fe29e6c155d236cab5ceff17e1a05bf6 /apps
parent7bc69aa084fe3d0577303fbf6cf1569a19cde390 (diff)
downloadrockbox-8498a48496579aecc1645604f49d931d4f35ff7f.tar.gz
rockbox-8498a48496579aecc1645604f49d931d4f35ff7f.zip
Generalized id3v2 parsing code. Added support for the composer frame and free-form genre and tracknum frames. (Patch #706111 by Thomas Paul Diffenbach)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3727 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/wps-display.c30
1 files changed, 17 insertions, 13 deletions
diff --git a/apps/wps-display.c b/apps/wps-display.c
index cc8009ec5c..71ba4c5433 100644
--- a/apps/wps-display.c
+++ b/apps/wps-display.c
@@ -285,34 +285,38 @@ static char* get_tag(struct mp3entry* id3,
285 return id3->artist; 285 return id3->artist;
286 286
287 case 'n': /* ID3 Track Number */ 287 case 'n': /* ID3 Track Number */
288 if (id3->tracknum) 288 if (id3->track_string)
289 { 289 return id3->track_string;
290
291 if (id3->tracknum) {
290 snprintf(buf, buf_size, "%d", id3->tracknum); 292 snprintf(buf, buf_size, "%d", id3->tracknum);
291 return buf; 293 return buf;
292 } 294 }
293 else 295 return NULL;
294 { 296
295 return NULL;
296 }
297
298 case 'd': /* ID3 Album/Disc */ 297 case 'd': /* ID3 Album/Disc */
299 return id3->album; 298 return id3->album;
300 299
300 case 'c': /* ID3 Composer */
301 return id3->composer;
302
301 case 'y': /* year */ 303 case 'y': /* year */
304 if( id3->year_string )
305 return id3->year_string;
306
302 if (id3->year) { 307 if (id3->year) {
303 snprintf(buf, buf_size, "%d", id3->year); 308 snprintf(buf, buf_size, "%d", id3->year);
304 return buf; 309 return buf;
305 } 310 }
306 else 311 return NULL;
307 return NULL;
308 break;
309 312
310 case 'g': /* genre */ 313 case 'g': /* genre */
314 if( id3->genre_string )
315 return id3->genre_string ;
316
311 if (id3->genre < sizeof(genres)/sizeof(char*)) 317 if (id3->genre < sizeof(genres)/sizeof(char*))
312 return (char*)genres[id3->genre]; 318 return (char*)genres[id3->genre];
313 else 319 return NULL;
314 return NULL;
315 break;
316 320
317 case 'v': /* id3 version */ 321 case 'v': /* id3 version */
318 switch (id3->id3version) { 322 switch (id3->id3version) {