libsaria: Remove ids from the queue
In case the user changes their mind...
This commit is contained in:
parent
425c7421ed
commit
3fa1331303
|
@ -17,6 +17,7 @@ namespace libsaria
|
|||
}
|
||||
|
||||
void add_ids(list<sid_t> &);
|
||||
void rm_ids(list<sid_t> &);
|
||||
void for_each(SourceModel *);
|
||||
unsigned int size();
|
||||
string next_file();
|
||||
|
|
|
@ -9,11 +9,10 @@ using namespace std;
|
|||
|
||||
list<sid_t> playqueue;
|
||||
|
||||
static void pop_queue(sid_t &inode)
|
||||
static void save_and_refresh()
|
||||
{
|
||||
inode = playqueue.front();
|
||||
playqueue.pop_front();
|
||||
trigger_callback(QUEUE_REFRESH);
|
||||
libsaria::queue::save();
|
||||
}
|
||||
|
||||
namespace libsaria
|
||||
|
@ -22,9 +21,15 @@ namespace libsaria
|
|||
void queue::add_ids(list<sid_t> &ids)
|
||||
{
|
||||
playqueue.insert(playqueue.end(), ids.begin(), ids.end());
|
||||
println("Queue size: %d", playqueue.size());
|
||||
trigger_callback(QUEUE_REFRESH);
|
||||
save();
|
||||
save_and_refresh();
|
||||
}
|
||||
|
||||
void queue::rm_ids(list<sid_t> &ids)
|
||||
{
|
||||
list<sid_t>::iterator it;
|
||||
for (it = ids.begin(); it != ids.end(); it++)
|
||||
playqueue.remove(*it);
|
||||
save_and_refresh();
|
||||
}
|
||||
|
||||
unsigned int queue::size()
|
||||
|
@ -34,9 +39,9 @@ namespace libsaria
|
|||
|
||||
string queue::next_file()
|
||||
{
|
||||
sid_t inode;
|
||||
pop_queue(inode);
|
||||
save();
|
||||
sid_t inode = playqueue.front();
|
||||
playqueue.pop_front();
|
||||
save_and_refresh();
|
||||
return library::find_filepath(inode);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue