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
This commit is contained in:
Thom Johansen 2007-09-19 10:40:55 +00:00
parent 547cffb90b
commit 294ec1d110
19 changed files with 38 additions and 73 deletions

View file

@ -2040,44 +2040,44 @@
</phrase>
<phrase>
id: LANG_ID3_ORDER
desc: in playback settings screen
desc: DEPRECATED
user:
<source>
*: "ID3 Tag Priority"
*: ""
</source>
<dest>
*: "ID3 Tag Priority"
*: ""
</dest>
<voice>
*: "ID3 Tag Priority"
*: ""
</voice>
</phrase>
<phrase>
id: LANG_ID3_V1_FIRST
desc: in playback settings screen
desc: DEPRECATED
user:
<source>
*: "V1 then V2"
*: ""
</source>
<dest>
*: "V1 then V2"
*: ""
</dest>
<voice>
*: "Version 1 then version 2"
*: ""
</voice>
</phrase>
<phrase>
id: LANG_ID3_V2_FIRST
desc: in playback settings screen
desc: DEPRECATED
user:
<source>
*: "V2 then V1"
*: ""
</source>
<dest>
*: "V2 then V1"
*: ""
</dest>
<voice>
*: "Version 2 then version 1"
*: ""
</voice>
</phrase>
<phrase>

View file

@ -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

View file

@ -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;
}

View file

@ -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

View file

@ -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)
{

View file

@ -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);
};

View file

@ -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,

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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 */

View file

@ -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 */

View file

@ -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)

View file

@ -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 */
}

View file

@ -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);

View file

@ -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,

View file

@ -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);

View file

@ -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;
}

View file

@ -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