diff options
Diffstat (limited to 'firmware/id3.c')
-rw-r--r-- | firmware/id3.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/firmware/id3.c b/firmware/id3.c index 8133f7c4f6..2c1f85e0ae 100644 --- a/firmware/id3.c +++ b/firmware/id3.c | |||
@@ -115,7 +115,6 @@ setid3v1title(int fd, mp3entry *entry) | |||
115 | char buffer[31]; | 115 | char buffer[31]; |
116 | int offsets[3] = {-95,-65,-125}; | 116 | int offsets[3] = {-95,-65,-125}; |
117 | int i; | 117 | int i; |
118 | static char keepit[3][32]; | ||
119 | 118 | ||
120 | for(i=0;i<3;i++) { | 119 | for(i=0;i<3;i++) { |
121 | if(-1 == lseek(fd, offsets[i], SEEK_END)) | 120 | if(-1 == lseek(fd, offsets[i], SEEK_END)) |
@@ -128,16 +127,16 @@ setid3v1title(int fd, mp3entry *entry) | |||
128 | if(buffer[0]) { | 127 | if(buffer[0]) { |
129 | switch(i) { | 128 | switch(i) { |
130 | case 0: | 129 | case 0: |
131 | strcpy(keepit[0], buffer); | 130 | strcpy(entry->id3v1buf[0], buffer); |
132 | entry->artist = keepit[0]; | 131 | entry->artist = entry->id3v1buf[0]; |
133 | break; | 132 | break; |
134 | case 1: | 133 | case 1: |
135 | strcpy(keepit[1], buffer); | 134 | strcpy(entry->id3v1buf[1], buffer); |
136 | entry->album = keepit[1]; | 135 | entry->album = entry->id3v1buf[1]; |
137 | break; | 136 | break; |
138 | case 2: | 137 | case 2: |
139 | strcpy(keepit[2], buffer); | 138 | strcpy(entry->id3v1buf[2], buffer); |
140 | entry->title = keepit[2]; | 139 | entry->title = entry->id3v1buf[2]; |
141 | break; | 140 | break; |
142 | } | 141 | } |
143 | } | 142 | } |
@@ -166,8 +165,8 @@ setid3v2title(int fd, mp3entry *entry) | |||
166 | char *album = NULL; | 165 | char *album = NULL; |
167 | char header[10]; | 166 | char header[10]; |
168 | unsigned short int version; | 167 | unsigned short int version; |
169 | static char buffer[512]; | ||
170 | int titlen=0, artistn=0, albumn=0; | 168 | int titlen=0, artistn=0, albumn=0; |
169 | char *buffer = entry->id3v2buf; | ||
171 | 170 | ||
172 | /* 10 = headerlength */ | 171 | /* 10 = headerlength */ |
173 | if(entry->id3v2len < 10) | 172 | if(entry->id3v2len < 10) |
@@ -183,8 +182,8 @@ setid3v2title(int fd, mp3entry *entry) | |||
183 | /* Read all frames in the tag */ | 182 | /* Read all frames in the tag */ |
184 | size = entry->id3v2len - 10; | 183 | size = entry->id3v2len - 10; |
185 | 184 | ||
186 | if(size >= (int)sizeof(buffer)) | 185 | if(size >= (int)sizeof(entry->id3v2buf)) |
187 | size = sizeof(buffer)-1; | 186 | size = sizeof(entry->id3v2buf)-1; |
188 | 187 | ||
189 | if(size != read(fd, buffer, size)) { | 188 | if(size != read(fd, buffer, size)) { |
190 | free(buffer); | 189 | free(buffer); |