libsaria: Return new current index from rm_index()
Signed-off-by: Bryan Schumaker <bjschuma@gmail.com>
This commit is contained in:
parent
c2c13b2cbc
commit
a8c6aabff7
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Reference in New Issue