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 @@
id: LANG_ID3_ORDER
- desc: in playback settings screen
+ desc: DEPRECATED
user:
- *: "ID3 Tag Priority"
+ *: ""
- *: "ID3 Tag Priority"
+ *: ""
- *: "ID3 Tag Priority"
+ *: ""
id: LANG_ID3_V1_FIRST
- desc: in playback settings screen
+ desc: DEPRECATED
user:
- *: "V1 then V2"
+ *: ""
- *: "V1 then V2"
+ *: ""
- *: "Version 1 then version 2"
+ *: ""
id: LANG_ID3_V2_FIRST
- desc: in playback settings screen
+ desc: DEPRECATED
user:
- *: "V2 then V1"
+ *: ""
- *: "V2 then V1"
+ *: ""
- *: "Version 2 then version 1"
+ *: ""
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);
#ifdef HAVE_SPDIF_POWER
MENUITEM_SETTING(spdif_enable, &global_settings.spdif_enable, NULL);
#endif
-MENUITEM_SETTING(id3_v1_first, &global_settings.id3_v1_first, NULL);
MENUITEM_SETTING(next_folder, &global_settings.next_folder, NULL);
int audioscrobbler_callback(int action,const struct menu_item_ex *this_item)
{
@@ -187,7 +186,7 @@ MAKE_MENU(playback_menu_item,ID2P(LANG_PLAYBACK),0,
#ifdef HAVE_SPDIF_POWER
&spdif_enable,
#endif
- &id3_v1_first, &next_folder, &audioscrobbler, &cuesheet
+ &next_folder, &audioscrobbler, &cuesheet
#ifdef HAVE_HEADPHONE_DETECTION
,&unplug_menu
#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)
/* Get metadata for track - return false if parsing showed problems with the
* file that would prevent playback.
*/
-bool get_metadata(struct mp3entry* id3, int fd, const char* trackname,
- bool v1first)
+bool get_metadata(struct mp3entry* id3, int fd, const char* trackname)
{
#if CONFIG_CODEC == SWCODEC
unsigned char* buf;
@@ -111,7 +110,7 @@ bool get_metadata(struct mp3entry* id3, int fd, const char* trackname,
case AFMT_MPA_L1:
case AFMT_MPA_L2:
case AFMT_MPA_L3:
- if (!get_mp3_metadata(fd, id3, trackname, v1first))
+ if (!get_mp3_metadata(fd, id3, trackname))
{
return false;
}
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 @@
#include "playback.h"
unsigned int probe_file_format(const char *filename);
-bool get_metadata(struct mp3entry* id3, int fd, const char* trackname,
- bool v1first);
+bool get_metadata(struct mp3entry* id3, int fd, const char* trackname);
#endif
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 *
static size_t conf_filechunk = 0; /* Largest chunk the codec accepts (A/C) FIXME */
static size_t conf_preseek = 0; /* Codec pre-seek margin (A/C) FIXME */
static size_t buffer_margin = 0; /* Buffer margin aka anti-skip buffer (A/C-) */
-static bool v1first = false; /* ID3 data control, true if V1 then V2 (A) */
#if MEM > 8
static size_t high_watermark = 0; /* High watermark for rebuffer (A/V/other) */
#endif
@@ -395,11 +394,6 @@ bool mp3_is_playing(void)
return voice_is_playing;
}
-void mpeg_id3_options(bool _v1first)
-{
- v1first = _v1first;
-}
-
/* If voice could be swapped out - wait for it to return
* Used by buffer claming functions.
*/
@@ -2744,7 +2738,7 @@ static bool audio_load_track(int offset, bool start_play, bool rebuffer)
/* Get track metadata if we don't already have it. */
if (!tracks[track_widx].taginfo_ready)
{
- if (get_metadata(&(tracks[track_widx].id3),current_fd,trackname,v1first))
+ if (get_metadata(&(tracks[track_widx].id3),current_fd,trackname))
{
tracks[track_widx].taginfo_ready = true;
if (start_play)
@@ -2886,7 +2880,7 @@ static bool audio_read_next_metadata(void)
if (fd < 0)
return false;
- status = get_metadata(&(tracks[next_idx].id3),fd,trackname,v1first);
+ status = get_metadata(&(tracks[next_idx].id3),fd,trackname);
/* Preload the glyphs in the tags */
if (status)
{
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 {
#endif
struct user_settings* global_settings;
struct system_status *global_status;
- bool (*mp3info)(struct mp3entry *entry, const char *filename, bool v1first);
+ bool (*mp3info)(struct mp3entry *entry, const char *filename);
int (*count_mp3_frames)(int fd, int startpos, int filesize,
void (*progressfunc)(int));
int (*create_xing_header)(int fd, long startpos, long filesize,
@@ -620,8 +620,7 @@ struct plugin_api {
int (*codec_load_file)(const char* codec, struct codec_api *api);
const char *(*get_codec_filename)(int cod_spec);
- bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname,
- bool v1first);
+ bool (*get_metadata)(struct mp3entry* id3, int fd, const char* trackname);
#endif
void (*led)(bool on);
};
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)
#if (CONFIG_CODEC == SWCODEC)
int fd = rb->open(selected_file, O_RDONLY);
if (fd >= 0 &&
- rb->get_metadata(&id3, fd, selected_file, false))
+ rb->get_metadata(&id3, fd, selected_file))
#else
- if (!rb->mp3info(&id3, selected_file, false))
+ if (!rb->mp3info(&id3, selected_file))
#endif
{
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)
/* Clear the id3 struct */
rb->memset(&track.id3, 0, sizeof(struct mp3entry));
- if (!rb->get_metadata(&(track.id3), fd, filename,
- rb->global_settings->id3_v1_first))
+ if (!rb->get_metadata(&(track.id3), fd, filename))
{
log_text("Cannot read metadata",true);
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)
xingupdate(0);
- rc = rb->mp3info(&entry, selected_file, false);
+ rc = rb->mp3info(&entry, selected_file);
if(rc < 0) {
fileerror(rc);
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)
#if (CONFIG_CODEC == MAS3507D) && !defined(SIMULATOR)
dac_line_in(global_settings.line_in);
#endif
- mpeg_id3_options(global_settings.id3_v1_first);
-
set_poweroff_timeout(global_settings.poweroff);
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
bool line_in; /* false=off, true=active */
- bool id3_v1_first; /* true = ID3V1 has prio over ID3V2 tag */
-
/* playlist viewer settings */
bool playlist_viewer_icons; /* display icons on viewer */
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[] = {
"sort dirs", "alpha,oldest,newest", NULL, 3,
ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE),
ID2P(LANG_SORT_DATE_REVERSE)),
- BOOL_SETTING(0, id3_v1_first, LANG_ID3_ORDER, false,
- "id3 tag priority", "v2-v1,v1-v2",
- LANG_ID3_V1_FIRST, LANG_ID3_V2_FIRST, mpeg_id3_options),
#ifdef HAVE_RECORDING
/* 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)
memset(&track, 0, sizeof(struct track_info));
memset(&entry, 0, sizeof(struct temp_file_entry));
memset(&tracknumfix, 0, sizeof(tracknumfix));
- ret = get_metadata(&(track.id3), fd, path, false);
+ ret = get_metadata(&(track.id3), fd, path);
close(fd);
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)
if (p_thumbnail == NULL || size_for_thumbnail <= 0)
return -1;
- if(mp3info(&info, filename, false)) /* use this to find real start */
+ if(mp3info(&info, filename)) /* use this to find real start */
{
return 0; /* failed to open, or invalid */
}
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 {
ID3_VER_2_4
};
-bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first);
-bool mp3info(struct mp3entry *entry, const char *filename, bool v1first);
+bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename);
+bool mp3info(struct mp3entry *entry, const char *filename);
char* id3_get_num_genre(const unsigned int genre_num);
char* id3_get_codec(const struct mp3entry* id3);
int 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);
/* in order to keep the recording here, I have to expose this */
void rec_tick(void);
void playback_tick(void); /* FixMe: get rid of this, use mp3_get_playtime() */
-void mpeg_id3_options(bool _v1first);
void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3));
void 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)
* about an MP3 file and updates it's entry accordingly.
*
Note, that this returns true for successful, false for error! */
-bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first)
+bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename)
{
- int v1found = false;
-
#if CONFIG_CODEC != SWCODEC
memset(entry, 0, sizeof(struct mp3entry));
#endif
@@ -1180,10 +1178,7 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
entry->tracknum = 0;
entry->discnum = 0;
- if(v1first)
- v1found = setid3v1title(fd, entry);
-
- if (!v1found && entry->id3v2len)
+ if (entry->id3v2len)
setid3v2title(fd, entry);
int len = getsonglength(fd, entry);
if (len < 0)
@@ -1194,9 +1189,8 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
the true size of the MP3 stream */
entry->filesize -= entry->first_frame_offset;
- /* only seek to end of file if no id3v2 tags were found,
- and we already haven't looked for a v1 tag */
- if (!v1first && !entry->id3v2len) {
+ /* only seek to end of file if no id3v2 tags were found */
+ if (!entry->id3v2len) {
setid3v1title(fd, entry);
}
@@ -1209,7 +1203,7 @@ bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool
}
/* Note, that this returns false for successful, true for error! */
-bool mp3info(struct mp3entry *entry, const char *filename, bool v1first)
+bool mp3info(struct mp3entry *entry, const char *filename)
{
int fd;
bool result;
@@ -1218,7 +1212,7 @@ bool mp3info(struct mp3entry *entry, const char *filename, bool v1first)
if (fd < 0)
return true;
- result = !get_mp3_metadata(fd, entry, filename, v1first);
+ result = !get_mp3_metadata(fd, entry, filename);
close(fd);
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;
static const char mpeg_thread_name[] = "mpeg";
static unsigned int mpeg_errno;
-static bool v1first = false;
-
static bool playing = false; /* We are playing an MP3 stream */
static bool is_playing = false; /* We are (attempting to) playing MP3 files */
static bool paused; /* playback is paused */
@@ -922,7 +920,7 @@ static struct trackdata *add_track_to_tag_list(const char *filename)
/* grab id3 tag of new file and
remember where in memory it starts */
- if(mp3info(&track->id3, filename, v1first))
+ if(mp3info(&track->id3, filename))
{
DEBUGF("Bad mp3\n");
return NULL;
@@ -2098,11 +2096,6 @@ static void mpeg_thread(void)
}
#endif /* !SIMULATOR */
-void mpeg_id3_options(bool _v1first)
-{
- v1first = _v1first;
-}
-
struct mp3entry* audio_current_track()
{
#ifdef SIMULATOR
@@ -2707,7 +2700,7 @@ void audio_play(long offset)
trackname = playlist_peek( steps );
if (!trackname)
break;
- if(mp3info(&taginfo, trackname, v1first)) {
+ if(mp3info(&taginfo, trackname)) {
/* bad mp3, move on */
if(++steps > playlist_amount())
break;
@@ -2793,7 +2786,7 @@ void audio_next(void)
file = playlist_peek(steps);
if(!file)
break;
- if(mp3info(&taginfo, file, v1first)) {
+ if(mp3info(&taginfo, file)) {
if(++steps > playlist_amount())
break;
continue;
@@ -2822,7 +2815,7 @@ void audio_prev(void)
file = playlist_peek(steps);
if(!file)
break;
- if(mp3info(&taginfo, file, v1first)) {
+ if(mp3info(&taginfo, file)) {
steps--;
continue;
}
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.
set to \setting{Off}.
}
- \item[ID3 Tag Priority.] Select which version of ID3 tag to use if both are
- present.
-
\item[Auto-Change Directory. ]Control what Rockbox does when it reaches the end
of a directory. If \setting{Auto-Change Directory} is set to \setting{Yes},
Rockbox will continue to the next directory. If