1
0
Fork 0
forked from len0rd/rockbox

First crude elapsed-time display

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1237 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Björn Stenberg 2002-06-27 17:20:30 +00:00
parent e56fa6dc84
commit 930880fb80
3 changed files with 18 additions and 7 deletions

View file

@ -95,11 +95,6 @@ static void draw_screen(struct mp3entry* id3)
lcd_puts(0, l++, id3->album?id3->album:""); lcd_puts(0, l++, id3->album?id3->album:"");
lcd_puts(0, l++, id3->artist?id3->artist:""); lcd_puts(0, l++, id3->artist?id3->artist:"");
snprintf(buffer,sizeof(buffer), "Time: %d:%02d",
id3->length / 60000,
id3->length % 60000 / 1000 );
lcd_puts(0, l++, buffer);
snprintf(buffer,sizeof(buffer), "%d kbits", id3->bitrate); snprintf(buffer,sizeof(buffer), "%d kbits", id3->bitrate);
lcd_puts(0, l++, buffer); lcd_puts(0, l++, buffer);
@ -124,6 +119,7 @@ void wps_show(void)
struct mp3entry* id3 = mpeg_current_track(); struct mp3entry* id3 = mpeg_current_track();
int lastlength=0, lastsize=0, lastrate=0; int lastlength=0, lastsize=0, lastrate=0;
int lastartist=0, lastalbum=0, lasttitle=0; int lastartist=0, lastalbum=0, lasttitle=0;
char buffer[32];
while ( 1 ) { while ( 1 ) {
int i; int i;
@ -144,7 +140,17 @@ void wps_show(void)
lasttitle = id3->title[0]; lasttitle = id3->title[0];
} }
for ( i=0;i<20;i++ ) { #ifdef HAVE_LCD_BITMAP
snprintf(buffer,sizeof(buffer), "Time: %d:%02d / %d:%02d",
id3->elapsed / 60000,
id3->elapsed % 60000 / 1000,
id3->length / 60000,
id3->length % 60000 / 1000 );
lcd_puts(0, 6, buffer);
lcd_update();
#endif
for ( i=0;i<5;i++ ) {
switch ( button_get(false) ) { switch ( button_get(false) ) {
case BUTTON_ON: case BUTTON_ON:
return; return;
@ -194,7 +200,7 @@ void wps_show(void)
mpeg_stop(); mpeg_stop();
break; break;
} }
sleep(HZ/20); sleep(HZ/10);
} }
} }
} }

View file

@ -33,6 +33,7 @@ struct mp3entry {
int id3v1len; int id3v1len;
int filesize; /* in bytes */ int filesize; /* in bytes */
int length; /* song length */ int length; /* song length */
int elapsed; /* ms played */
/* these following two fields are used for local buffering */ /* these following two fields are used for local buffering */
char id3v2buf[300]; char id3v2buf[300];

View file

@ -150,6 +150,7 @@ static struct {
int mempos; int mempos;
} id3tags[MAX_ID3_TAGS]; } id3tags[MAX_ID3_TAGS];
static int last_tag = 0; static int last_tag = 0;
static int last_dma_tick = 0;
static void create_fliptable(void) static void create_fliptable(void)
{ {
@ -228,6 +229,8 @@ static void dma_tick(void)
start_dma(); start_dma();
} }
} }
id3tags[0].id3.elapsed += (current_tick - last_dma_tick) * 1000 / HZ;
last_dma_tick = current_tick;
} }
static void bitswap(unsigned short *data, int length) static void bitswap(unsigned short *data, int length)
@ -387,6 +390,7 @@ static void mpeg_thread(void)
mp3info(&(id3tags[0].id3), ev.data); mp3info(&(id3tags[0].id3), ev.data);
id3tags[0].mempos = mp3buf_write; id3tags[0].mempos = mp3buf_write;
last_tag=1; last_tag=1;
id3tags[0].id3.elapsed = 0;
/* Make it read more data */ /* Make it read more data */
filling = true; filling = true;