summaryrefslogtreecommitdiff
path: root/firmware/id3.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/id3.c')
-rw-r--r--firmware/id3.c19
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);