fix sorting of track list when tracks with track number and tracks without track number are in the same list.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28267 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Teruaki Kawashima 2010-10-13 12:13:59 +00:00
parent 0432147f2f
commit 5832254289

View file

@ -848,20 +848,20 @@ void create_track_index(const int slide_index)
int len = 0, fn_idx = 0; int len = 0, fn_idx = 0;
avail -= sizeof(struct track_data); avail -= sizeof(struct track_data);
track_num = rb->tagcache_get_numeric(&tcs, tag_tracknumber) - 1; track_num = rb->tagcache_get_numeric(&tcs, tag_tracknumber);
disc_num = rb->tagcache_get_numeric(&tcs, tag_discnumber); disc_num = rb->tagcache_get_numeric(&tcs, tag_discnumber);
if (disc_num < 0) if (disc_num < 0)
disc_num = 0; disc_num = 0;
retry: retry:
if (track_num >= 0) if (track_num > 0)
{ {
if (disc_num) if (disc_num)
fn_idx = 1 + rb->snprintf(track_names + string_index , avail, fn_idx = 1 + rb->snprintf(track_names + string_index , avail,
"%d.%02d: %s", disc_num, track_num + 1, tcs.result); "%d.%02d: %s", disc_num, track_num, tcs.result);
else else
fn_idx = 1 + rb->snprintf(track_names + string_index , avail, fn_idx = 1 + rb->snprintf(track_names + string_index , avail,
"%d: %s", track_num + 1, tcs.result); "%d: %s", track_num, tcs.result);
} }
else else
{ {
@ -910,7 +910,7 @@ retry:
avail -= len; avail -= len;
tracks--; tracks--;
tracks->sort = ((disc_num - 1) << 24) + (track_num << 14) + track_count; tracks->sort = (disc_num << 24) + (track_num << 14) + track_count;
tracks->name_idx = string_index; tracks->name_idx = string_index;
tracks->seek = tcs.result_seek; tracks->seek = tcs.result_seek;
#if PF_PLAYBACK_CAPABLE #if PF_PLAYBACK_CAPABLE