Fix insert/queue next, last and replace to update the last insert position too,
giving well defined behavior and useful interaction with insert, and making things like insert next followed by many inserts work. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20247 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
1a09bf2f9b
commit
4ae7415503
1 changed files with 4 additions and 3 deletions
|
@ -720,14 +720,15 @@ static int add_track_to_playlist(struct playlist_info* playlist,
|
||||||
else
|
else
|
||||||
position = insert_position = 0;
|
position = insert_position = 0;
|
||||||
|
|
||||||
if (playlist->last_insert_pos < 0 && playlist->started)
|
playlist->last_insert_pos = position;
|
||||||
playlist->last_insert_pos = position;
|
|
||||||
break;
|
break;
|
||||||
case PLAYLIST_INSERT_LAST:
|
case PLAYLIST_INSERT_LAST:
|
||||||
if (playlist->first_index > 0)
|
if (playlist->first_index > 0)
|
||||||
position = insert_position = playlist->first_index;
|
position = insert_position = playlist->first_index;
|
||||||
else
|
else
|
||||||
position = insert_position = playlist->amount;
|
position = insert_position = playlist->amount;
|
||||||
|
|
||||||
|
playlist->last_insert_pos = position;
|
||||||
break;
|
break;
|
||||||
case PLAYLIST_INSERT_SHUFFLED:
|
case PLAYLIST_INSERT_SHUFFLED:
|
||||||
{
|
{
|
||||||
|
@ -756,7 +757,7 @@ static int add_track_to_playlist(struct playlist_info* playlist,
|
||||||
if (playlist_remove_all_tracks(playlist) < 0)
|
if (playlist_remove_all_tracks(playlist) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
position = insert_position = playlist->index + 1;
|
playlist->last_insert_pos = position = insert_position = playlist->index + 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue