diff options
author | Alexey Yakovenko <wakeroid@gmail.com> | 2010-03-27 13:36:42 +0100 |
---|---|---|
committer | Alexey Yakovenko <wakeroid@gmail.com> | 2010-03-27 13:36:42 +0100 |
commit | 2ad5c3934b401b764bbbcf55cd994308c4bd2756 (patch) | |
tree | ae0bd1c64b8baadf4cc6f10b041eac4ac5533fef | |
parent | 96f84bde3845492e390814c9e97a699c141b7566 (diff) |
added missing frames support to id3v2.2 parser
-rw-r--r-- | junklib.c | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -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) { |