summaryrefslogtreecommitdiff
path: root/junklib.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-27 13:36:42 +0100
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-27 13:36:42 +0100
commit2ad5c3934b401b764bbbcf55cd994308c4bd2756 (patch)
treeae0bd1c64b8baadf4cc6f10b041eac4ac5533fef /junklib.c
parent96f84bde3845492e390814c9e97a699c141b7566 (diff)
added missing frames support to id3v2.2 parser
Diffstat (limited to 'junklib.c')
-rw-r--r--junklib.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/junklib.c b/junklib.c
index 5dd986a7..bdba1602 100644
--- a/junklib.c
+++ b/junklib.c
@@ -1199,6 +1199,39 @@ junk_read_id3v2 (playItem_t *it, DB_FILE *fp) {
str[sz] = 0;
band = convstr (str, sz);
}
+ else if (!strcmp (frameid, "TP3")) {
+ if (sz > 1000) {
+ readptr += sz;
+ continue;
+ }
+ char str[sz+2];
+ //memcpy (str, readptr, sz);
+ id3v2_string_read (version_major, &str[0], sz, unsync, readptr);
+ str[sz] = 0;
+ performer = convstr (str, sz);
+ }
+ else if (!strcmp (frameid, "TCM")) {
+ if (sz > 1000) {
+ readptr += sz;
+ continue;
+ }
+ char str[sz+2];
+ //memcpy (str, readptr, sz);
+ id3v2_string_read (version_major, &str[0], sz, unsync, readptr);
+ str[sz] = 0;
+ composer = convstr (str, sz);
+ }
+ else if (!strcmp (frameid, "TPA")) {
+ if (sz > 1000) {
+ readptr += sz;
+ continue;
+ }
+ char str[sz+2];
+ //memcpy (str, readptr, sz);
+ id3v2_string_read (version_major, &str[0], sz, unsync, readptr);
+ str[sz] = 0;
+ disc = convstr (str, sz);
+ }
else if (!strcmp (frameid, "TRK")) {
if (sz > 1000) {
readptr += sz;
@@ -1209,6 +1242,13 @@ junk_read_id3v2 (playItem_t *it, DB_FILE *fp) {
id3v2_string_read (version_major, &str[0], sz, unsync, readptr);
str[sz] = 0;
track = convstr (str, sz);
+ char *slash = strchr (track, '/');
+ if (slash) {
+ // split into track/number
+ *slash = 0;
+ slash++;
+ numtracks = strdup (slash);
+ }
}
else if (!strcmp (frameid, "TYE")) {
if (sz > 1000) {