summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-07-25 23:12:41 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-07-25 23:12:41 +0000
commite5792d6f6cd4e672767bea8850fe45f90780829e (patch)
treece0d2e9fa67f5bb26af969b45d59bcdabe228c9c /firmware
parentd2018ebfc6ccb93054ad8cf59a9179ce7e5d26d9 (diff)
downloadrockbox-e5792d6f6cd4e672767bea8850fe45f90780829e.tar.gz
rockbox-e5792d6f6cd4e672767bea8850fe45f90780829e.zip
First step towards better ID3 handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1450 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/mpeg.c24
-rw-r--r--firmware/mpeg.h1
2 files changed, 23 insertions, 2 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 082ed5067c..00b2d660a3 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -139,11 +139,13 @@ int mpeg_sound_default(int setting)
139} 139}
140 140
141/* list of tracks in memory */ 141/* list of tracks in memory */
142#define MAX_ID3_TAGS 4 142#define MAX_ID3_TAGS 12
143static struct { 143static struct {
144 struct mp3entry id3; 144 struct mp3entry id3;
145 int mempos; 145 int mempos;
146} id3tags[MAX_ID3_TAGS]; 146} id3tags[MAX_ID3_TAGS];
147static unsigned int current_track_counter = 0;
148static unsigned int last_track_counter = 0;
147 149
148#ifndef SIMULATOR 150#ifndef SIMULATOR
149static int last_tag = 0; 151static int last_tag = 0;
@@ -582,6 +584,8 @@ static void mpeg_thread(void)
582 /* Tell the file loading code that we want to start playing 584 /* Tell the file loading code that we want to start playing
583 as soon as we have some data */ 585 as soon as we have some data */
584 play_pending = true; 586 play_pending = true;
587
588 current_track_counter++;
585 break; 589 break;
586 590
587 case MPEG_STOP: 591 case MPEG_STOP:
@@ -629,6 +633,8 @@ static void mpeg_thread(void)
629 /* Tell the file loading code that we want to start playing 633 /* Tell the file loading code that we want to start playing
630 as soon as we have some data */ 634 as soon as we have some data */
631 play_pending = true; 635 play_pending = true;
636
637 current_track_counter++;
632 } 638 }
633 break; 639 break;
634 640
@@ -655,6 +661,8 @@ static void mpeg_thread(void)
655 /* Tell the file loading code that we want to start playing 661 /* Tell the file loading code that we want to start playing
656 as soon as we have some data */ 662 as soon as we have some data */
657 play_pending = true; 663 play_pending = true;
664
665 current_track_counter++;
658 } 666 }
659 break; 667 break;
660 668
@@ -820,6 +828,8 @@ static void mpeg_thread(void)
820 DEBUGF("tc: %d, %x\n", i, id3tags[i].mempos); 828 DEBUGF("tc: %d, %x\n", i, id3tags[i].mempos);
821 } 829 }
822 last_tag--; 830 last_tag--;
831
832 current_track_counter++;
823 break; 833 break;
824 834
825 case SYS_USB_CONNECTED: 835 case SYS_USB_CONNECTED:
@@ -885,6 +895,16 @@ struct mp3entry* mpeg_current_track(void)
885 return &(id3tags[0].id3); 895 return &(id3tags[0].id3);
886} 896}
887 897
898bool mpeg_has_changed_track(void)
899{
900 if(last_track_counter != current_track_counter)
901 {
902 last_track_counter = current_track_counter;
903 return true;
904 }
905 return false;
906}
907
888void mpeg_play(char* trackname) 908void mpeg_play(char* trackname)
889{ 909{
890#ifdef SIMULATOR 910#ifdef SIMULATOR
@@ -1196,5 +1216,5 @@ void mpeg_init(int volume, int bass, int treble, int loudness, int bass_boost, i
1196 mpeg_sound_set(SOUND_SUPERBASS, bass_boost); 1216 mpeg_sound_set(SOUND_SUPERBASS, bass_boost);
1197 mpeg_sound_set(SOUND_AVC, avc); 1217 mpeg_sound_set(SOUND_AVC, avc);
1198#endif 1218#endif
1199#endif /* SIMULATOR */ 1219#endif /* !SIMULATOR */
1200} 1220}
diff --git a/firmware/mpeg.h b/firmware/mpeg.h
index 6a86b3400d..a267079579 100644
--- a/firmware/mpeg.h
+++ b/firmware/mpeg.h
@@ -37,6 +37,7 @@ int mpeg_val2phys(int setting, int value);
37char *mpeg_sound_unit(int setting); 37char *mpeg_sound_unit(int setting);
38int mpeg_sound_numdecimals(int setting); 38int mpeg_sound_numdecimals(int setting);
39struct mp3entry* mpeg_current_track(void); 39struct mp3entry* mpeg_current_track(void);
40bool mpeg_has_changed_track(void);
40 41
41#define SOUND_VOLUME 0 42#define SOUND_VOLUME 0
42#define SOUND_BASS 1 43#define SOUND_BASS 1