From 294ec1d110178f30894721d5cda14c246333954d Mon Sep 17 00:00:00 2001 From: Thom Johansen Date: Wed, 19 Sep 2007 10:40:55 +0000 Subject: 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 --- apps/lang/english.lang | 24 ++++++++++++------------ apps/menus/playback_menu.c | 3 +-- apps/metadata.c | 5 ++--- apps/metadata.h | 3 +-- apps/playback.c | 10 ++-------- apps/plugin.h | 5 ++--- apps/plugins/properties.c | 4 ++-- apps/plugins/test_codec.c | 3 +-- apps/plugins/vbrfix.c | 2 +- apps/settings.c | 2 -- apps/settings.h | 2 -- apps/settings_list.c | 3 --- apps/tagcache.c | 2 +- apps/talk.c | 2 +- firmware/export/id3.h | 4 ++-- firmware/export/mpeg.h | 1 - firmware/id3.c | 18 ++++++------------ firmware/mpeg.c | 15 ++++----------- manual/configure_rockbox/playback_options.tex | 3 --- 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 @@ 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 -- cgit v1.2.3