diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/id3.h | 1 | ||||
-rw-r--r-- | firmware/mpeg.c | 4 |
2 files changed, 5 insertions, 0 deletions
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; |