diff options
-rw-r--r-- | apps/lang/english.lang | 24 | ||||
-rw-r--r-- | apps/menus/playback_menu.c | 3 | ||||
-rw-r--r-- | apps/metadata.c | 5 | ||||
-rw-r--r-- | apps/metadata.h | 3 | ||||
-rw-r--r-- | apps/playback.c | 10 | ||||
-rw-r--r-- | apps/plugin.h | 5 | ||||
-rw-r--r-- | apps/plugins/properties.c | 4 | ||||
-rw-r--r-- | apps/plugins/test_codec.c | 3 | ||||
-rw-r--r-- | apps/plugins/vbrfix.c | 2 | ||||
-rw-r--r-- | apps/settings.c | 2 | ||||
-rw-r--r-- | apps/settings.h | 2 | ||||
-rw-r--r-- | apps/settings_list.c | 3 | ||||
-rw-r--r-- | apps/tagcache.c | 2 | ||||
-rw-r--r-- | apps/talk.c | 2 | ||||
-rw-r--r-- | firmware/export/id3.h | 4 | ||||
-rw-r--r-- | firmware/export/mpeg.h | 1 | ||||
-rw-r--r-- | firmware/id3.c | 18 | ||||
-rw-r--r-- | firmware/mpeg.c | 15 | ||||
-rw-r--r-- | 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 @@ | |||
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 |
130 | MENUITEM_SETTING(spdif_enable, &global_settings.spdif_enable, NULL); | 130 | MENUITEM_SETTING(spdif_enable, &global_settings.spdif_enable, NULL); |
131 | #endif | 131 | #endif |
132 | MENUITEM_SETTING(id3_v1_first, &global_settings.id3_v1_first, NULL); | ||
133 | MENUITEM_SETTING(next_folder, &global_settings.next_folder, NULL); | 132 | MENUITEM_SETTING(next_folder, &global_settings.next_folder, NULL); |
134 | int audioscrobbler_callback(int action,const struct menu_item_ex *this_item) | 133 | int 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 | */ |
96 | bool get_metadata(struct mp3entry* id3, int fd, const char* trackname, | 96 | bool 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 | ||
25 | unsigned int probe_file_format(const char *filename); | 25 | unsigned int probe_file_format(const char *filename); |
26 | bool get_metadata(struct mp3entry* id3, int fd, const char* trackname, | 26 | bool 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 * | |||
263 | static size_t conf_filechunk = 0; /* Largest chunk the codec accepts (A/C) FIXME */ | 263 | static size_t conf_filechunk = 0; /* Largest chunk the codec accepts (A/C) FIXME */ |
264 | static size_t conf_preseek = 0; /* Codec pre-seek margin (A/C) FIXME */ | 264 | static size_t conf_preseek = 0; /* Codec pre-seek margin (A/C) FIXME */ |
265 | static size_t buffer_margin = 0; /* Buffer margin aka anti-skip buffer (A/C-) */ | 265 | static size_t buffer_margin = 0; /* Buffer margin aka anti-skip buffer (A/C-) */ |
266 | static bool v1first = false; /* ID3 data control, true if V1 then V2 (A) */ | ||
267 | #if MEM > 8 | 266 | #if MEM > 8 |
268 | static size_t high_watermark = 0; /* High watermark for rebuffer (A/V/other) */ | 267 | static 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 | ||
398 | void 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 | ||
238 | bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first); | 238 | bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename); |
239 | bool mp3info(struct mp3entry *entry, const char *filename, bool v1first); | 239 | bool mp3info(struct mp3entry *entry, const char *filename); |
240 | char* id3_get_num_genre(const unsigned int genre_num); | 240 | char* id3_get_num_genre(const unsigned int genre_num); |
241 | char* id3_get_codec(const struct mp3entry* id3); | 241 | char* id3_get_codec(const struct mp3entry* id3); |
242 | int getid3v2len(int fd); | 242 | 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); | |||
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 */ |
56 | void rec_tick(void); | 56 | void rec_tick(void); |
57 | void playback_tick(void); /* FixMe: get rid of this, use mp3_get_playtime() */ | 57 | void playback_tick(void); /* FixMe: get rid of this, use mp3_get_playtime() */ |
58 | void mpeg_id3_options(bool _v1first); | ||
59 | 58 | ||
60 | void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3)); | 59 | void audio_set_track_changed_event(void (*handler)(struct mp3entry *id3)); |
61 | void audio_set_track_buffer_event(void (*handler)(struct mp3entry *id3, | 60 | 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) | |||
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! */ |
1167 | bool get_mp3_metadata(int fd, struct mp3entry *entry, const char *filename, bool v1first) | 1167 | bool 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! */ |
1212 | bool mp3info(struct mp3entry *entry, const char *filename, bool v1first) | 1206 | bool 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; | |||
127 | static const char mpeg_thread_name[] = "mpeg"; | 127 | static const char mpeg_thread_name[] = "mpeg"; |
128 | static unsigned int mpeg_errno; | 128 | static unsigned int mpeg_errno; |
129 | 129 | ||
130 | static bool v1first = false; | ||
131 | |||
132 | static bool playing = false; /* We are playing an MP3 stream */ | 130 | static bool playing = false; /* We are playing an MP3 stream */ |
133 | static bool is_playing = false; /* We are (attempting to) playing MP3 files */ | 131 | static bool is_playing = false; /* We are (attempting to) playing MP3 files */ |
134 | static bool paused; /* playback is paused */ | 132 | static 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 | ||
2101 | void mpeg_id3_options(bool _v1first) | ||
2102 | { | ||
2103 | v1first = _v1first; | ||
2104 | } | ||
2105 | |||
2106 | struct mp3entry* audio_current_track() | 2099 | struct 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 |