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:
Thomas Martitz 2009-03-08 19:03:53 +00:00
parent 1a09bf2f9b
commit 4ae7415503

View file

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