diff --git a/NEWS b/NEWS index 28ba89c4d..4fcedd287 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.19.20 (not yet released) +* protocol + - "setprio" re-enqueues old song if priority has been raised * decoder - ffmpeg: ignore empty packets - pcm: fix corruption bug with partial frames (after short read) diff --git a/src/queue/Queue.cxx b/src/queue/Queue.cxx index 99b545ab1..2011b2c13 100644 --- a/src/queue/Queue.cxx +++ b/src/queue/Queue.cxx @@ -426,14 +426,15 @@ Queue::SetPriority(unsigned position, uint8_t priority, int after_order) if (_order < (unsigned)after_order) { /* the specified song has been played already - - enqueue it only if its priority has just - become bigger than the current one's */ + - enqueue it only if its priority has been + increased and is now bigger than the + current one's */ const unsigned after_position = OrderToPosition(after_order); const Item *after_item = &items[after_position]; - if (old_priority > after_item->priority || + if (priority <= old_priority || priority <= after_item->priority) /* priority hasn't become bigger */ return true;