diff options
| author | Björn Stenberg <bjorn@haxx.se> | 2002-06-26 21:11:29 +0000 |
|---|---|---|
| committer | Björn Stenberg <bjorn@haxx.se> | 2002-06-26 21:11:29 +0000 |
| commit | 928e334831f87dfe3b35b50e119b0ade9980b944 (patch) | |
| tree | 40f96984dc3c51136efcebb84202e03ebba0ccda /firmware/id3.c | |
| parent | f186f46f5d10fde5ff9585928f9343cab2c15287 (diff) | |
| download | rockbox-928e334831f87dfe3b35b50e119b0ade9980b944.zip rockbox-928e334831f87dfe3b35b50e119b0ade9980b944.tar.gz rockbox-928e334831f87dfe3b35b50e119b0ade9980b944.tar.bz2 rockbox-928e334831f87dfe3b35b50e119b0ade9980b944.tar.xz | |
Added id3 tracknum (Yusef Napora)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1204 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/id3.c')
| -rw-r--r-- | firmware/id3.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/firmware/id3.c b/firmware/id3.c index 0cb7118..902b052 100644 --- a/firmware/id3.c +++ b/firmware/id3.c @@ -29,6 +29,7 @@ #include <stdbool.h> #include "file.h" #include "debug.h" +#include "atoi.h" #include "id3.h" @@ -164,9 +165,10 @@ setid3v2title(int fd, struct mp3entry *entry) char *title = NULL; char *artist = NULL; char *album = NULL; + char *tracknum = NULL; char header[10]; unsigned short int version; - int titlen=0, artistn=0, albumn=0; + int titlen=0, artistn=0, albumn=0, tracknumn=0; char *buffer = entry->id3v2buf; /* 10 = headerlength */ @@ -249,6 +251,17 @@ setid3v2title(int fd, struct mp3entry *entry) albumn = headerlen; readsize += headerlen; } + else if(!strncmp(header, "TRCK", strlen("TRCK"))) { + readsize++; + headerlen--; + if(headerlen > (size - readsize)) + headerlen = (size - readsize); + tracknum = buffer + readsize; + tracknumn = headerlen; + readsize += headerlen; + } else { + readsize += headerlen; + } } if(artist) { @@ -265,6 +278,11 @@ setid3v2title(int fd, struct mp3entry *entry) entry->album = album; album[albumn]=0; } + + if(tracknum) { + tracknum[tracknumn] = 0; + entry->tracknum = atoi(tracknum); + } } /* @@ -493,6 +511,8 @@ mp3info(struct mp3entry *entry, char *filename) entry->title = NULL; entry->filesize = getfilesize(fd); entry->id3v2len = getid3v2len(fd); + entry->tracknum = 0; + if(HASID3V2(entry)) setid3v2title(fd, entry); entry->length = getsonglength(fd, entry); |