summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2007-09-19 10:40:55 +0000
committerThom Johansen <thomj@rockbox.org>2007-09-19 10:40:55 +0000
commit294ec1d110178f30894721d5cda14c246333954d (patch)
tree2e31dc287557007939b3b5abf4493fa02946b6c5
parent547cffb90bffacc7f22e6661c61ccad830ce2c91 (diff)
downloadrockbox-294ec1d110178f30894721d5cda14c246333954d.tar.gz
rockbox-294ec1d110178f30894721d5cda14c246333954d.zip
Remove the ID3 tag version priority setting on the grounds of it being pretty pointless. ID3v2 tags are superior to ID3v1 tags, and needs less seeking around to find.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14750 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/lang/english.lang24
-rw-r--r--apps/menus/playback_menu.c3
-rw-r--r--apps/metadata.c5
-rw-r--r--apps/metadata.h3
-rw-r--r--apps/playback.c10
-rw-r--r--apps/plugin.h5
-rw-r--r--apps/plugins/properties.c4
-rw-r--r--apps/plugins/test_codec.c3
-rw-r--r--apps/plugins/vbrfix.c2
-rw-r--r--apps/settings.c2
-rw-r--r--apps/settings.h2
-rw-r--r--apps/settings_list.c3
-rw-r--r--apps/tagcache.c2
-rw-r--r--apps/talk.c2
-rw-r--r--firmware/export/id3.h4
-rw-r--r--firmware/export/mpeg.h1
-rw-r--r--firmware/id3.c18
-rw-r--r--firmware/mpeg.c15
-rw-r--r--manual/configure_rockbox/playback_options.tex3
19 files changed, 38 insertions, 73 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 28451d0890..2f76111457 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -2040,44 +2040,44 @@
2040</phrase> 2040</phrase>
2041<phrase> 2041<phrase>
2042 id: LANG_ID3_ORDER 2042 id: LANG_ID3_ORDER
2043 desc: in playback settings screen 2043 desc: DEPRECATED
2044 user: 2044 user:
2045 <source> 2045 <source>
2046 *: "ID3 Tag Priority" 2046 *: ""
2047 </source> 2047 </source>
2048 <dest> 2048 <dest>
2049 *: "ID3 Tag Priority" 2049 *: ""
2050 </dest> 2050 </dest>
2051 <voice> 2051 <voice>
2052 *: "ID3 Tag Priority" 2052 *: ""
2053 </voice> 2053 </voice>
2054</phrase> 2054</phrase>
2055<phrase> 2055<phrase>
2056 id: LANG_ID3_V1_FIRST 2056 id: LANG_ID3_V1_FIRST
2057 desc: in playback settings screen 2057 desc: DEPRECATED
2058 user: 2058 user:
2059 <source> 2059 <source>
2060 *: "V1 then V2" 2060 *: ""
2061 </source> 2061 </source>
2062 <dest> 2062 <dest>
2063 *: "V1 then V2" 2063 *: ""
2064 </dest> 2064 </dest>
2065 <voice> 2065 <voice>
2066 *: "Version 1 then version 2" 2066 *: ""
2067 </voice> 2067 </voice>
2068</phrase> 2068</phrase>
2069<phrase> 2069<phrase>
2070 id: LANG_ID3_V2_FIRST 2070 id: LANG_ID3_V2_FIRST
2071 desc: in playback settings screen 2071 desc: DEPRECATED
2072 user: 2072 user:
2073 <source> 2073 <source>
2074 *: "V2 then V1" 2074 *: ""
2075 </source> 2075 </source>
2076 <dest> 2076 <dest>
2077 *: "V2 then V1" 2077 *: ""
2078 </dest> 2078 </dest>
2079 <voice> 2079 <voice>
2080 *: "Version 2 then version 1" 2080 *: ""
2081 </voice> 2081 </voice>
2082</phrase> 2082</phrase>
2083<phrase> 2083<phrase>
diff --git a/apps/menus/playback_menu.c b/apps/menus/playback_menu.c
index 0d4162c584..b7aa1ae47f 100644
--- a/apps/menus/playback_menu.c
+++ b/apps/menus/playback_menu.c
@@ -129,7 +129,6 @@ MENUITEM_SETTING(beep, &global_settings.beep ,NULL);
129#ifdef HAVE_SPDIF_POWER 129#ifdef HAVE_SPDIF_POWER
130MENUITEM_SETTING(spdif_enable, &global_settings.spdif_enable, NULL); 130MENUITEM_SETTING(spdif_enable, &global_settings.spdif_enable, NULL);
131#endif 131#endif
132MENUITEM_SETTING(id3_v1_first, &global_settings.id3_v1_first, NULL);
133MENUITEM_SETTING(next_folder, &global_settings.next_folder, NULL); 132MENUITEM_SETTING(next_folder, &global_settings.next_folder, NULL);
134int audioscrobbler_callback(int action,const struct menu_item_ex *this_item) 133int audioscrobbler_callback(int action,const struct menu_item_ex *this_item)
135{ 134{
@@ -187,7 +186,7 @@ MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0,
187#ifdef HAVE_SPDIF_POWER 186#ifdef HAVE_SPDIF_POWER
188 &spdif_enable, 187 &spdif_enable,
189#endif 188#endif
190 &id3_v1_first, &next_folder, &audioscrobbler, &cuesheet 189 &next_folder, &audioscrobbler, &cuesheet
191#ifdef HAVE_HEADPHONE_DETECTION 190#ifdef HAVE_HEADPHONE_DETECTION
192 ,&unplug_menu 191 ,&unplug_menu
193#endif 192#endif
diff --git a/apps/metadata.c b/apps/metadata.c
index f60b87362f..7ef2a05bea 100644
--- a/apps/metadata.c
+++ b/apps/metadata.c
@@ -93,8 +93,7 @@ unsigned int probe_file_format(const char *filename)
93/* Get metadata for track - return false if parsing showed problems with the 93/* Get metadata for track - return false if parsing showed problems with the
94 * file that would prevent playback. 94 * file that would prevent playback.
95 */ 95 */
96bool get_metadata(struct mp3entry* id3, int fd, const char* trackname, 96bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
97 bool v1first)
98{ 97{
99#if CONFIG_CODEC == SWCODEC 98#if CONFIG_CODEC == SWCODEC
100 unsigned char* buf; 99 unsigned char* buf;
@@ -111,7 +110,7 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname,
111 case AFMT_MPA_L1: 110 case AFMT_MPA_L1:
112 case AFMT_MPA_L2: 111 case AFMT_MPA_L2:
113 case AFMT_MPA_L3: 112 case AFMT_MPA_L3:
114 if (!get_mp3_metadata(fd, id3, trackname, v1first)) 113 if (!get_mp3_metadata(fd, id3, trackname))
115 { 114 {
116 return false; 115 return false;
117 } 116 }
diff --git a/apps/metadata.h b/apps/metadata.h
index 4682b35237..f07209f2dc 100644
--- a/apps/metadata.h
+++ b/apps/metadata.h
@@ -23,8 +23,7 @@
23#include "playback.h" 23#include "playback.h"
24 24
25unsigned int probe_file_format(const char *filename); 25unsigned int probe_file_format(const char *filename);
26bool get_metadata(struct mp3entry* id3, int fd, const char* trackname, 26bool get_metadata(struct mp3entry* id3, int fd, const char* trackname);
27 bool v1first);
28 27
29#endif 28#endif
30 29
diff --git a/apps/playback.c b/apps/playback.c
index b7d3b9987f..85aaad2e08 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -263,7 +263,6 @@ static size_t conf_watermark = 0; /* Level to trigger filebuf fill (A/C) FIXME *
263static size_t conf_filechunk = 0; /* Largest chunk the codec accepts (A/C) FIXME */ 263static size_t conf_filechunk = 0; /* Largest chunk the codec accepts (A/C) FIXME */
264static size_t conf_preseek = 0; /* Codec pre-seek margin (A/C) FIXME */ 264static size_t conf_preseek = 0; /* Codec pre-seek margin (A/C) FIXME */
265static size_t buffer_margin = 0; /* Buffer margin aka anti-skip buffer (A/C-) */ 265static size_t buffer_margin = 0; /* Buffer margin aka anti-skip buffer (A/C-) */
266static bool v1first = false; /* ID3 data control, true if V1 then V2 (A) */
267#if MEM > 8 266#if MEM > 8
268static size_t high_watermark = 0; /* High watermark for rebuffer (A/V/other) */ 267static size_t high_watermark = 0; /* High watermark for rebuffer (A/V/other) */
269#endif 268#endif
@@ -395,11 +394,6 @@ bool mp3_is_playing(void)
395 return voice_is_playing; 394 return voice_is_playing;
396} 395}
397 396
398void mpeg_id3_options(bool _v1first)
399{
400 v1first = _v1first;
401}
402
403/* If voice could be swapped out - wait for it to return 397/* If voice could be swapped out - wait for it to return
404 * Used by buffer claming functions. 398 * Used by buffer claming functions.
405 */ 399 */
@@ -2744,7 +2738,7 @@ static bool audio_load_track(int offset, bool start_play, bool rebuffer)
2744 /* Get track metadata if we don't already have it. */ 2738 /* Get track metadata if we don't already have it. */
2745 if (!tracks[track_widx].taginfo_ready) 2739 if (!tracks[track_widx].taginfo_ready)
2746 { 2740 {
2747 if (get_metadata(&(tracks[track_widx].id3),current_fd,trackname,v1first)) 2741 if (get_metadata(&(tracks[track_widx].id3),current_fd,trackname))
2748 { 2742 {
2749 tracks[track_widx].taginfo_ready = true; 2743 tracks[track_widx].taginfo_ready = true;
2750 if (start_play) 2744 if (start_play)
@@ -2886,7 +2880,7 @@ static bool audio_read_next_metadata(void)
2886 if (fd < 0) 2880 if (fd < 0)
2887 return false; 2881 return false;
2888 2882
2889 status = get_metadata(&(tracks[next_idx].id3),fd,trackname,v1first); 2883 status = get_metadata(&(tracks[next_idx].id3),fd,trackname);
2890 /* Preload the glyphs in the tags */ 2884 /* Preload the glyphs in the tags */
2891 if (status) 2885 if (status)
2892 { 2886 {
diff --git a/apps/plugin.h b/apps/plugin.h
index ab6213850d..86f4d60b5d 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -573,7 +573,7 @@ struct plugin_api {
573#endif 573#endif
574 struct user_settings* global_settings; 574 struct user_settings* global_settings;
575 struct system_status *global_status; 575 struct system_status *global_status;
576 bool (*mp3info)(struct mp3entry *entry, const char *filename, bool v1first); 576 bool (*mp3info)(struct mp3entry *entry, const char *filename);
577 int (*count_mp3_frames)(int fd, int startpos, int filesize, 577 int (*count_mp3_frames)(int fd, int startpos, int filesize,
578 void (*progressfunc)(int)); 578 void (*progressfunc)(int));
579 int (*create_xing_header)(int fd, long startpos, long filesize, 579 int (*create_xing_header)(int fd, long startpos, long filesize,
@@ -620,8 +620,7 @@ struct plugin_api {
620 620
621 int (*codec_load_file)(const char* codec, struct codec_api *api); 621 int (*codec_load_file)(const char* codec, struct codec_api *api);
622 const char *(*get_codec_filename)(int cod_spec); 622 const char *(*get_codec_filename)(int cod_spec);
623 bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname, 623 bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
624 bool v1first);
625#endif 624#endif
626 void (*led)(bool on); 625 void (*led)(bool on);
627}; 626};
diff --git a/apps/plugins/properties.c b/apps/plugins/properties.c
index ca18d49f50..0811b00ed3 100644
--- a/apps/plugins/properties.c
+++ b/apps/plugins/properties.c
@@ -100,9 +100,9 @@ static bool file_properties(char* selected_file)
100#if (CONFIG_CODEC == SWCODEC) 100#if (CONFIG_CODEC == SWCODEC)
101 int fd = rb->open(selected_file, O_RDONLY); 101 int fd = rb->open(selected_file, O_RDONLY);
102 if (fd >= 0 && 102 if (fd >= 0 &&
103 rb->get_metadata(&id3, fd, selected_file, false)) 103 rb->get_metadata(&id3, fd, selected_file))
104#else 104#else
105 if (!rb->mp3info(&id3, selected_file, false)) 105 if (!rb->mp3info(&id3, selected_file))
106#endif 106#endif
107 { 107 {
108 rb->snprintf(str_artist, sizeof str_artist, 108 rb->snprintf(str_artist, sizeof str_artist,
diff --git a/apps/plugins/test_codec.c b/apps/plugins/test_codec.c
index 4346a23304..94be6b7397 100644
--- a/apps/plugins/test_codec.c
+++ b/apps/plugins/test_codec.c
@@ -537,8 +537,7 @@ static enum plugin_status test_track(char* filename)
537 /* Clear the id3 struct */ 537 /* Clear the id3 struct */
538 rb->memset(&track.id3, 0, sizeof(struct mp3entry)); 538 rb->memset(&track.id3, 0, sizeof(struct mp3entry));
539 539
540 if (!rb->get_metadata(&(track.id3), fd, filename, 540 if (!rb->get_metadata(&(track.id3), fd, filename))
541 rb->global_settings->id3_v1_first))
542 { 541 {
543 log_text("Cannot read metadata",true); 542 log_text("Cannot read metadata",true);
544 return PLUGIN_ERROR; 543 return PLUGIN_ERROR;
diff --git a/apps/plugins/vbrfix.c b/apps/plugins/vbrfix.c
index 42353981a2..823e166b39 100644
--- a/apps/plugins/vbrfix.c
+++ b/apps/plugins/vbrfix.c
@@ -143,7 +143,7 @@ static bool vbr_fix(char *selected_file)
143 143
144 xingupdate(0); 144 xingupdate(0);
145 145
146 rc = rb->mp3info(&entry, selected_file, false); 146 rc = rb->mp3info(&entry, selected_file);
147 if(rc < 0) { 147 if(rc < 0) {
148 fileerror(rc); 148 fileerror(rc);
149 return true; 149 return true;
diff --git a/apps/settings.c b/apps/settings.c
index c7c8772975..6e26574f6a 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -722,8 +722,6 @@ void settings_apply(void)
722#if (CONFIG_CODEC == MAS3507D) && !defined(SIMULATOR) 722#if (CONFIG_CODEC == MAS3507D) && !defined(SIMULATOR)
723 dac_line_in(global_settings.line_in); 723 dac_line_in(global_settings.line_in);
724#endif 724#endif
725 mpeg_id3_options(global_settings.id3_v1_first);
726
727 set_poweroff_timeout(global_settings.poweroff); 725 set_poweroff_timeout(global_settings.poweroff);
728 726
729 set_battery_capacity(global_settings.battery_capacity); 727 set_battery_capacity(global_settings.battery_capacity);
diff --git a/apps/settings.h b/apps/settings.h
index c4cb917c1f..72f607d693 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -525,8 +525,6 @@ struct user_settings
525 525
526 bool line_in; /* false=off, true=active */ 526 bool line_in; /* false=off, true=active */
527 527
528 bool id3_v1_first; /* true = ID3V1 has prio over ID3V2 tag */
529
530 /* playlist viewer settings */ 528 /* playlist viewer settings */
531 bool playlist_viewer_icons; /* display icons on viewer */ 529 bool playlist_viewer_icons; /* display icons on viewer */
532 bool playlist_viewer_indices; /* display playlist indices on viewer */ 530 bool playlist_viewer_indices; /* display playlist indices on viewer */
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 67ebec8866..176d1cee69 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -757,9 +757,6 @@ const struct settings_list settings[] = {
757 "sort dirs", "alpha,oldest,newest", NULL, 3, 757 "sort dirs", "alpha,oldest,newest", NULL, 3,
758 ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE), 758 ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE),
759 ID2P(LANG_SORT_DATE_REVERSE)), 759 ID2P(LANG_SORT_DATE_REVERSE)),
760 BOOL_SETTING(0, id3_v1_first, LANG_ID3_ORDER, false,
761 "id3 tag priority", "v2-v1,v1-v2",
762 LANG_ID3_V1_FIRST, LANG_ID3_V2_FIRST, mpeg_id3_options),
763 760
764#ifdef HAVE_RECORDING 761#ifdef HAVE_RECORDING
765 /* recording */ 762 /* recording */
diff --git a/apps/tagcache.c b/apps/tagcache.c
index 0bd6a9f557..0cd6b77e07 100644
--- a/apps/tagcache.c
+++ b/apps/tagcache.c
@@ -1660,7 +1660,7 @@ static void add_tagcache(char *path)
1660 memset(&track, 0, sizeof(struct track_info)); 1660 memset(&track, 0, sizeof(struct track_info));
1661 memset(&entry, 0, sizeof(struct temp_file_entry)); 1661 memset(&entry, 0, sizeof(struct temp_file_entry));
1662 memset(&tracknumfix, 0, sizeof(tracknumfix)); 1662 memset(&tracknumfix, 0, sizeof(tracknumfix));
1663 ret = get_metadata(&(track.id3), fd, path, false); 1663 ret = get_metadata(&(track.id3), fd, path);
1664 close(fd); 1664 close(fd);
1665 1665
1666 if (!ret) 1666 if (!ret)
diff --git a/apps/talk.c b/apps/talk.c
index b9d5bc2aa7..7391dd25c4 100644
--- a/apps/talk.c
+++ b/apps/talk.c
@@ -652,7 +652,7 @@ int talk_file(const char* filename, bool enqueue)
652 if (p_thumbnail == NULL || size_for_thumbnail <= 0) 652 if (p_thumbnail == NULL || size_for_thumbnail <= 0)
653 return -1; 653 return -1;
654 654
655 if(mp3info(&info, filename, false)) /* use this to find real start */ 655 if(mp3info(&info, filename)) /* use this to find real start */
656 { 656 {
657 return 0; /* failed to open, or invalid */ 657 return 0; /* failed to open, or invalid */
658 } 658 }
diff --git a/firmware/export/id3.h b/firmware/export/id3.h
index 2751fde6f5..46b9b92f73 100644
--- a/firmware/export/id3.h
+++ b/firmware/export/id3.h
@@ -235,8 +235,8 @@ enum {
235 ID3_VER_2_4 235 ID3_VER_2_4
236}; 236};
237 237
238bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first); 238bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename);
239bool mp3info(struct mp3entry *entry, const char *filename, bool v1first); 239bool mp3info(struct mp3entry *entry, const char *filename);
240char* id3_get_num_genre(const unsigned int genre_num); 240char* id3_get_num_genre(const unsigned int genre_num);
241char* id3_get_codec(const struct mp3entry* id3); 241char* id3_get_codec(const struct mp3entry* id3);
242int getid3v2len(int fd); 242int getid3v2len(int fd);
diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h
index b2dbc1ab53..9de8c499af 100644
--- a/firmware/export/mpeg.h
+++ b/firmware/export/mpeg.h
@@ -55,7 +55,6 @@ unsigned long mpeg_get_last_header(void);
55/* in order to keep the recording here, I have to expose this */ 55/* in order to keep the recording here, I have to expose this */
56void rec_tick(void); 56void rec_tick(void);
57void playback_tick(void); /* FixMe: get rid of this, use mp3_get_playtime() */ 57void playback_tick(void); /* FixMe: get rid of this, use mp3_get_playtime() */
58void mpeg_id3_options(bool _v1first);
59 58
60void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3)); 59void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3));
61void audio_set_track_buffer_event(void (*handler)(struct mp3entry *id3, 60void audio_set_track_buffer_event(void (*handler)(struct mp3entry *id3,
diff --git a/firmware/id3.c b/firmware/id3.c
index 2fd7894de8..a3d6297c14 100644
--- a/firmware/id3.c
+++ b/firmware/id3.c
@@ -1164,10 +1164,8 @@ static int getsonglength(int fd, struct mp3entry *entry)
1164 * about an MP3 file and updates it's entry accordingly. 1164 * about an MP3 file and updates it's entry accordingly.
1165 * 1165 *
1166 Note, that this returns true for successful, false for error! */ 1166 Note, that this returns true for successful, false for error! */
1167bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first) 1167bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename)
1168{ 1168{
1169 int v1found = false;
1170
1171#if CONFIG_CODEC != SWCODEC 1169#if CONFIG_CODEC != SWCODEC
1172 memset(entry, 0, sizeof(struct mp3entry)); 1170 memset(entry, 0, sizeof(struct mp3entry));
1173#endif 1171#endif
@@ -1180,10 +1178,7 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
1180 entry->tracknum = 0; 1178 entry->tracknum = 0;
1181 entry->discnum = 0; 1179 entry->discnum = 0;
1182 1180
1183 if(v1first) 1181 if (entry->id3v2len)
1184 v1found = setid3v1title(fd, entry);
1185
1186 if (!v1found && entry->id3v2len)
1187 setid3v2title(fd, entry); 1182 setid3v2title(fd, entry);
1188 int len = getsonglength(fd, entry); 1183 int len = getsonglength(fd, entry);
1189 if (len < 0) 1184 if (len < 0)
@@ -1194,9 +1189,8 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
1194 the true size of the MP3 stream */ 1189 the true size of the MP3 stream */
1195 entry->filesize -= entry->first_frame_offset; 1190 entry->filesize -= entry->first_frame_offset;
1196 1191
1197 /* only seek to end of file if no id3v2 tags were found, 1192 /* only seek to end of file if no id3v2 tags were found */
1198 and we already haven't looked for a v1 tag */ 1193 if (!entry->id3v2len) {
1199 if (!v1first && !entry->id3v2len) {
1200 setid3v1title(fd, entry); 1194 setid3v1title(fd, entry);
1201 } 1195 }
1202 1196
@@ -1209,7 +1203,7 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
1209} 1203}
1210 1204
1211/* Note, that this returns false for successful, true for error! */ 1205/* Note, that this returns false for successful, true for error! */
1212bool mp3info(struct mp3entry *entry, const char *filename, bool v1first) 1206bool mp3info(struct mp3entry *entry, const char *filename)
1213{ 1207{
1214 int fd; 1208 int fd;
1215 bool result; 1209 bool result;
@@ -1218,7 +1212,7 @@ bool mp3info(struct mp3entry *entry, const char *filename, bool v1first)
1218 if (fd < 0) 1212 if (fd < 0)
1219 return true; 1213 return true;
1220 1214
1221 result = !get_mp3_metadata(fd, entry, filename, v1first); 1215 result = !get_mp3_metadata(fd, entry, filename);
1222 1216
1223 close(fd); 1217 close(fd);
1224 1218
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index e412c36fe2..65fb024db3 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -127,8 +127,6 @@ static bool (*cuesheet_callback)(const char *filename) = NULL;
127static const char mpeg_thread_name[] = "mpeg"; 127static const char mpeg_thread_name[] = "mpeg";
128static unsigned int mpeg_errno; 128static unsigned int mpeg_errno;
129 129
130static bool v1first = false;
131
132static bool playing = false; /* We are playing an MP3 stream */ 130static bool playing = false; /* We are playing an MP3 stream */
133static bool is_playing = false; /* We are (attempting to) playing MP3 files */ 131static bool is_playing = false; /* We are (attempting to) playing MP3 files */
134static bool paused; /* playback is paused */ 132static bool paused; /* playback is paused */
@@ -922,7 +920,7 @@ static struct trackdata *add_track_to_tag_list(const char *filename)
922 920
923 /* grab id3 tag of new file and 921 /* grab id3 tag of new file and
924 remember where in memory it starts */ 922 remember where in memory it starts */
925 if(mp3info(&track->id3, filename, v1first)) 923 if(mp3info(&track->id3, filename))
926 { 924 {
927 DEBUGF("Bad mp3\n"); 925 DEBUGF("Bad mp3\n");
928 return NULL; 926 return NULL;
@@ -2098,11 +2096,6 @@ static void mpeg_thread(void)
2098} 2096}
2099#endif /* !SIMULATOR */ 2097#endif /* !SIMULATOR */
2100 2098
2101void mpeg_id3_options(bool _v1first)
2102{
2103 v1first = _v1first;
2104}
2105
2106struct mp3entry* audio_current_track() 2099struct mp3entry* audio_current_track()
2107{ 2100{
2108#ifdef SIMULATOR 2101#ifdef SIMULATOR
@@ -2707,7 +2700,7 @@ void audio_play(long offset)
2707 trackname = playlist_peek( steps ); 2700 trackname = playlist_peek( steps );
2708 if (!trackname) 2701 if (!trackname)
2709 break; 2702 break;
2710 if(mp3info(&taginfo, trackname, v1first)) { 2703 if(mp3info(&taginfo, trackname)) {
2711 /* bad mp3, move on */ 2704 /* bad mp3, move on */
2712 if(++steps > playlist_amount()) 2705 if(++steps > playlist_amount())
2713 break; 2706 break;
@@ -2793,7 +2786,7 @@ void audio_next(void)
2793 file = playlist_peek(steps); 2786 file = playlist_peek(steps);
2794 if(!file) 2787 if(!file)
2795 break; 2788 break;
2796 if(mp3info(&taginfo, file, v1first)) { 2789 if(mp3info(&taginfo, file)) {
2797 if(++steps > playlist_amount()) 2790 if(++steps > playlist_amount())
2798 break; 2791 break;
2799 continue; 2792 continue;
@@ -2822,7 +2815,7 @@ void audio_prev(void)
2822 file = playlist_peek(steps); 2815 file = playlist_peek(steps);
2823 if(!file) 2816 if(!file)
2824 break; 2817 break;
2825 if(mp3info(&taginfo, file, v1first)) { 2818 if(mp3info(&taginfo, file)) {
2826 steps--; 2819 steps--;
2827 continue; 2820 continue;
2828 } 2821 }
diff --git a/manual/configure_rockbox/playback_options.tex b/manual/configure_rockbox/playback_options.tex
index 456e47480d..70dad6c2a9 100644
--- a/manual/configure_rockbox/playback_options.tex
+++ b/manual/configure_rockbox/playback_options.tex
@@ -218,9 +218,6 @@ related to audio playback.
218 set to \setting{Off}. 218 set to \setting{Off}.
219 } 219 }
220 220
221 \item[ID3 Tag Priority.] Select which version of ID3 tag to use if both are
222 present.
223
224\item[Auto-Change Directory. ]Control what Rockbox does when it reaches the end 221\item[Auto-Change Directory. ]Control what Rockbox does when it reaches the end
225 of a directory. If \setting{Auto-Change Directory} is set to \setting{Yes}, 222 of a directory. If \setting{Auto-Change Directory} is set to \setting{Yes},
226 Rockbox will continue to the next directory. If 223 Rockbox will continue to the next directory. If