summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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