libsaria: Return new current index from rm_index()

Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
Bryan Schumaker 2012-04-14 11:36:29 -04:00
parent c2c13b2cbc
commit a8c6aabff7
3 changed files with 12 additions and 8 deletions

View File

@ -51,7 +51,7 @@ namespace libsaria
unsigned int find_cur_index();
void add_track(Track *, unsigned int);
void do_remove_tracks(list<Track *> &);
void remove_track_it(list<Track *>::iterator &it, unsigned int);
unsigned int remove_track_it(list<Track *>::iterator &it, unsigned int);
protected:
string name;

View File

@ -21,15 +21,19 @@ namespace libsaria
data_state = DIRTY;
}
void Playlist::remove_track_it(list<Track *>::iterator &it, unsigned int rm_index)
unsigned int Playlist::remove_track_it(list<Track *>::iterator &it,
unsigned int rm_index)
{
length -= (*it)->get_length();
index.remove_track(*it);
it = plist.erase(it);
if (rm_index != 0)
it--;
RENDER( remove_index(rm_index) );
if (rm_index != 0) {
rm_index--;
it--;
}
data_state = DIRTY;
return rm_index;
}
void Playlist::remove_tracks(list<Track *> &tracks)

View File

@ -29,10 +29,8 @@ namespace libsaria
return res;
}
remove_track_it(cur, index);
index = remove_track_it(cur, index);
schedule_save();
if (index != 0)
index--;
if (get_size() != 0)
RENDER(goto_index(index));
@ -62,7 +60,9 @@ namespace libsaria
return picked_next();
}
n = rand() % (size / 2);
if (size > 10)
size /= 2;
n = rand() % size;
for (unsigned int i = 0; i < n; i++)
incr_iter();