summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
Diffstat (limited to 'firmware')
-rw-r--r--firmware/export/mascodec.h6
-rw-r--r--firmware/export/mp3_playback.h4
-rw-r--r--firmware/target/sh/archos/audio-archos.c23
-rw-r--r--firmware/target/sh/archos/i2c-archos.c2
-rw-r--r--firmware/target/sh/archos/mascodec-archos.c6
5 files changed, 16 insertions, 25 deletions
diff --git a/firmware/export/mascodec.h b/firmware/export/mascodec.h
index f10dc3f1ca..00690ae7dd 100644
--- a/firmware/export/mascodec.h
+++ b/firmware/export/mascodec.h
@@ -21,14 +21,16 @@
21#ifndef _MASCODEC_H_ 21#ifndef _MASCODEC_H_
22#define _MASCODEC_H_ 22#define _MASCODEC_H_
23 23
24int mas_default_read(unsigned short *buf); 24/* unused: int mas_default_read(unsigned short *buf); */
25#if CONFIG_CODEC == MAS3507D
25int mas_run(unsigned short address); 26int mas_run(unsigned short address);
27#endif
26int mas_readmem(int bank, int addr, unsigned long* dest, int len); 28int mas_readmem(int bank, int addr, unsigned long* dest, int len);
27int mas_writemem(int bank, int addr, const unsigned long* src, int len); 29int mas_writemem(int bank, int addr, const unsigned long* src, int len);
28int mas_readreg(int reg); 30int mas_readreg(int reg);
29int mas_writereg(int reg, unsigned int val); 31int mas_writereg(int reg, unsigned int val);
30void mas_reset(void); 32void mas_reset(void);
31int mas_direct_config_read(unsigned char reg); 33/* unused: int mas_direct_config_read(unsigned char reg); */
32int mas_direct_config_write(unsigned char reg, unsigned int val); 34int mas_direct_config_write(unsigned char reg, unsigned int val);
33int mas_codec_writereg(int reg, unsigned int val); 35int mas_codec_writereg(int reg, unsigned int val);
34int mas_codec_readreg(int reg); 36int mas_codec_readreg(int reg);
diff --git a/firmware/export/mp3_playback.h b/firmware/export/mp3_playback.h
index ded461439d..6fdaa31cac 100644
--- a/firmware/export/mp3_playback.h
+++ b/firmware/export/mp3_playback.h
@@ -39,15 +39,15 @@ void demand_irq_enable(bool on);
39#endif 39#endif
40 40
41/* new functions, exported to plugin API */ 41/* new functions, exported to plugin API */
42#if CONFIG_CODEC == MAS3587F
42void mp3_play_init(void); 43void mp3_play_init(void);
44#endif
43void mp3_play_data(const unsigned char* start, int size, 45void mp3_play_data(const unsigned char* start, int size,
44 void (*get_more)(unsigned char** start, size_t* size) /* callback fn */ 46 void (*get_more)(unsigned char** start, size_t* size) /* callback fn */
45); 47);
46void mp3_play_pause(bool play); 48void mp3_play_pause(bool play);
47bool mp3_pause_done(void); 49bool mp3_pause_done(void);
48void mp3_play_stop(void); 50void mp3_play_stop(void);
49long mp3_get_playtime(void);
50void mp3_reset_playtime(void);
51bool mp3_is_playing(void); 51bool mp3_is_playing(void);
52unsigned char* mp3_get_pos(void); 52unsigned char* mp3_get_pos(void);
53void mp3_shutdown(void); 53void mp3_shutdown(void);
diff --git a/firmware/target/sh/archos/audio-archos.c b/firmware/target/sh/archos/audio-archos.c
index e2d8b6f157..9dfcb9cb97 100644
--- a/firmware/target/sh/archos/audio-archos.c
+++ b/firmware/target/sh/archos/audio-archos.c
@@ -52,10 +52,6 @@ extern unsigned shadow_codec_reg0;
52static bool paused; /* playback is paused */ 52static bool paused; /* playback is paused */
53static bool playing; /* We are playing an MP3 stream */ 53static bool playing; /* We are playing an MP3 stream */
54 54
55/* for measuring the play time */
56static long playstart_tick;
57static long cumulative_ticks;
58
59/* the registered callback function to ask for more mp3 data */ 55/* the registered callback function to ask for more mp3 data */
60static void (*callback_for_more)(unsigned char**, size_t*); 56static void (*callback_for_more)(unsigned char**, size_t*);
61 57
@@ -461,6 +457,7 @@ void mp3_shutdown(void)
461 457
462/* new functions, to be exported to plugin API */ 458/* new functions, to be exported to plugin API */
463 459
460#if CONFIG_CODEC == MAS3587F
464void mp3_play_init(void) 461void mp3_play_init(void)
465{ 462{
466#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) 463#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
@@ -469,8 +466,8 @@ void mp3_play_init(void)
469 playing = false; 466 playing = false;
470 paused = true; 467 paused = true;
471 callback_for_more = NULL; 468 callback_for_more = NULL;
472 mp3_reset_playtime();
473} 469}
470#endif
474 471
475void mp3_play_data(const unsigned char* start, int size, 472void mp3_play_data(const unsigned char* start, int size,
476 void (*get_more)(unsigned char** start, size_t* size) /* callback fn */ 473 void (*get_more)(unsigned char** start, size_t* size) /* callback fn */
@@ -503,13 +500,11 @@ void mp3_play_pause(bool play)
503 { /* resume playback */ 500 { /* resume playback */
504 SCR0 |= 0x80; 501 SCR0 |= 0x80;
505 paused = false; 502 paused = false;
506 playstart_tick = current_tick;
507 } 503 }
508 else if (!paused && !play) 504 else if (!paused && !play)
509 { /* stop playback */ 505 { /* stop playback */
510 SCR0 &= 0x7f; 506 SCR0 &= 0x7f;
511 paused = true; 507 paused = true;
512 cumulative_ticks += current_tick - playstart_tick;
513 } 508 }
514} 509}
515 510
@@ -536,20 +531,6 @@ void mp3_play_stop(void)
536#endif 531#endif
537} 532}
538 533
539long mp3_get_playtime(void)
540{
541 if (paused)
542 return cumulative_ticks;
543 else
544 return cumulative_ticks + current_tick - playstart_tick;
545}
546
547void mp3_reset_playtime(void)
548{
549 cumulative_ticks = 0;
550 playstart_tick = current_tick;
551}
552
553bool mp3_is_playing(void) 534bool mp3_is_playing(void)
554{ 535{
555 return playing; 536 return playing;
diff --git a/firmware/target/sh/archos/i2c-archos.c b/firmware/target/sh/archos/i2c-archos.c
index b3a53240b4..5b415926f2 100644
--- a/firmware/target/sh/archos/i2c-archos.c
+++ b/firmware/target/sh/archos/i2c-archos.c
@@ -234,6 +234,7 @@ int i2c_write(int address, const unsigned char* buf, int count )
234 return x; 234 return x;
235} 235}
236 236
237#if 0 /* Currently unused, left for reference and future use */
237int i2c_read(int address, unsigned char* buf, int count ) 238int i2c_read(int address, unsigned char* buf, int count )
238{ 239{
239 int i,x=0; 240 int i,x=0;
@@ -250,3 +251,4 @@ int i2c_read(int address, unsigned char* buf, int count )
250 i2c_stop(); 251 i2c_stop();
251 return x; 252 return x;
252} 253}
254#endif
diff --git a/firmware/target/sh/archos/mascodec-archos.c b/firmware/target/sh/archos/mascodec-archos.c
index 1eb6e1044d..faa5c7ef2b 100644
--- a/firmware/target/sh/archos/mascodec-archos.c
+++ b/firmware/target/sh/archos/mascodec-archos.c
@@ -30,6 +30,7 @@
30 30
31static int mas_devread(unsigned long *dest, int len); 31static int mas_devread(unsigned long *dest, int len);
32 32
33#if 0 /* Currently unused, left for reference and future use */
33int mas_default_read(unsigned short *buf) 34int mas_default_read(unsigned short *buf)
34{ 35{
35 unsigned char *dest = (unsigned char *)buf; 36 unsigned char *dest = (unsigned char *)buf;
@@ -62,7 +63,9 @@ int mas_default_read(unsigned short *buf)
62 i2c_end(); 63 i2c_end();
63 return ret; 64 return ret;
64} 65}
66#endif
65 67
68#if CONFIG_CODEC == MAS3507D
66int mas_run(unsigned short address) 69int mas_run(unsigned short address)
67{ 70{
68 int ret = 0; 71 int ret = 0;
@@ -83,6 +86,7 @@ int mas_run(unsigned short address)
83 i2c_end(); 86 i2c_end();
84 return ret; 87 return ret;
85} 88}
89#endif
86 90
87/* note: 'len' is number of 32-bit words, not number of bytes! */ 91/* note: 'len' is number of 32-bit words, not number of bytes! */
88int mas_readmem(int bank, int addr, unsigned long* dest, int len) 92int mas_readmem(int bank, int addr, unsigned long* dest, int len)
@@ -307,6 +311,7 @@ void mas_reset(void)
307} 311}
308 312
309#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) 313#if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)
314#if 0 /* Currently unused, left for reference and future use */
310int mas_direct_config_read(unsigned char reg) 315int mas_direct_config_read(unsigned char reg)
311{ 316{
312 int ret = 0; 317 int ret = 0;
@@ -340,6 +345,7 @@ int mas_direct_config_read(unsigned char reg)
340 i2c_end(); 345 i2c_end();
341 return ret; 346 return ret;
342} 347}
348#endif
343 349
344int mas_direct_config_write(unsigned char reg, unsigned int val) 350int mas_direct_config_write(unsigned char reg, unsigned int val)
345{ 351{