diff options
-rw-r--r-- | apps/wps.c | 20 | ||||
-rw-r--r-- | firmware/id3.h | 1 | ||||
-rw-r--r-- | firmware/mpeg.c | 4 |
3 files changed, 18 insertions, 7 deletions
diff --git a/apps/wps.c b/apps/wps.c index 031c20b9f7..a4d7292c64 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -95,11 +95,6 @@ static void draw_screen(struct mp3entry* id3) | |||
95 | lcd_puts(0, l++, id3->album?id3->album:""); | 95 | lcd_puts(0, l++, id3->album?id3->album:""); |
96 | lcd_puts(0, l++, id3->artist?id3->artist:""); | 96 | lcd_puts(0, l++, id3->artist?id3->artist:""); |
97 | 97 | ||
98 | snprintf(buffer,sizeof(buffer), "Time: %d:%02d", | ||
99 | id3->length / 60000, | ||
100 | id3->length % 60000 / 1000 ); | ||
101 | lcd_puts(0, l++, buffer); | ||
102 | |||
103 | snprintf(buffer,sizeof(buffer), "%d kbits", id3->bitrate); | 98 | snprintf(buffer,sizeof(buffer), "%d kbits", id3->bitrate); |
104 | 99 | ||
105 | lcd_puts(0, l++, buffer); | 100 | lcd_puts(0, l++, buffer); |
@@ -124,6 +119,7 @@ void wps_show(void) | |||
124 | struct mp3entry* id3 = mpeg_current_track(); | 119 | struct mp3entry* id3 = mpeg_current_track(); |
125 | int lastlength=0, lastsize=0, lastrate=0; | 120 | int lastlength=0, lastsize=0, lastrate=0; |
126 | int lastartist=0, lastalbum=0, lasttitle=0; | 121 | int lastartist=0, lastalbum=0, lasttitle=0; |
122 | char buffer[32]; | ||
127 | 123 | ||
128 | while ( 1 ) { | 124 | while ( 1 ) { |
129 | int i; | 125 | int i; |
@@ -144,7 +140,17 @@ void wps_show(void) | |||
144 | lasttitle = id3->title[0]; | 140 | lasttitle = id3->title[0]; |
145 | } | 141 | } |
146 | 142 | ||
147 | for ( i=0;i<20;i++ ) { | 143 | #ifdef HAVE_LCD_BITMAP |
144 | snprintf(buffer,sizeof(buffer), "Time: %d:%02d / %d:%02d", | ||
145 | id3->elapsed / 60000, | ||
146 | id3->elapsed % 60000 / 1000, | ||
147 | id3->length / 60000, | ||
148 | id3->length % 60000 / 1000 ); | ||
149 | lcd_puts(0, 6, buffer); | ||
150 | lcd_update(); | ||
151 | #endif | ||
152 | |||
153 | for ( i=0;i<5;i++ ) { | ||
148 | switch ( button_get(false) ) { | 154 | switch ( button_get(false) ) { |
149 | case BUTTON_ON: | 155 | case BUTTON_ON: |
150 | return; | 156 | return; |
@@ -194,7 +200,7 @@ void wps_show(void) | |||
194 | mpeg_stop(); | 200 | mpeg_stop(); |
195 | break; | 201 | break; |
196 | } | 202 | } |
197 | sleep(HZ/20); | 203 | sleep(HZ/10); |
198 | } | 204 | } |
199 | } | 205 | } |
200 | } | 206 | } |
diff --git a/firmware/id3.h b/firmware/id3.h index 4729d5355f..1f8aef6310 100644 --- a/firmware/id3.h +++ b/firmware/id3.h | |||
@@ -33,6 +33,7 @@ struct mp3entry { | |||
33 | int id3v1len; | 33 | int id3v1len; |
34 | int filesize; /* in bytes */ | 34 | int filesize; /* in bytes */ |
35 | int length; /* song length */ | 35 | int length; /* song length */ |
36 | int elapsed; /* ms played */ | ||
36 | 37 | ||
37 | /* these following two fields are used for local buffering */ | 38 | /* these following two fields are used for local buffering */ |
38 | char id3v2buf[300]; | 39 | char id3v2buf[300]; |
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index d130a8b572..ab99fa744c 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c | |||
@@ -150,6 +150,7 @@ static struct { | |||
150 | int mempos; | 150 | int mempos; |
151 | } id3tags[MAX_ID3_TAGS]; | 151 | } id3tags[MAX_ID3_TAGS]; |
152 | static int last_tag = 0; | 152 | static int last_tag = 0; |
153 | static int last_dma_tick = 0; | ||
153 | 154 | ||
154 | static void create_fliptable(void) | 155 | static void create_fliptable(void) |
155 | { | 156 | { |
@@ -228,6 +229,8 @@ static void dma_tick(void) | |||
228 | start_dma(); | 229 | start_dma(); |
229 | } | 230 | } |
230 | } | 231 | } |
232 | id3tags[0].id3.elapsed += (current_tick - last_dma_tick) * 1000 / HZ; | ||
233 | last_dma_tick = current_tick; | ||
231 | } | 234 | } |
232 | 235 | ||
233 | static void bitswap(unsigned short *data, int length) | 236 | static void bitswap(unsigned short *data, int length) |
@@ -387,6 +390,7 @@ static void mpeg_thread(void) | |||
387 | mp3info(&(id3tags[0].id3), ev.data); | 390 | mp3info(&(id3tags[0].id3), ev.data); |
388 | id3tags[0].mempos = mp3buf_write; | 391 | id3tags[0].mempos = mp3buf_write; |
389 | last_tag=1; | 392 | last_tag=1; |
393 | id3tags[0].id3.elapsed = 0; | ||
390 | 394 | ||
391 | /* Make it read more data */ | 395 | /* Make it read more data */ |
392 | filling = true; | 396 | filling = true; |