mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-11 06:05:21 -05:00
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:
parent
547cffb90b
commit
294ec1d110
19 changed files with 38 additions and 73 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue