Commit 2b8ce83c authored by Max Kellermann's avatar Max Kellermann

Queue: move queue_shuffle_order_range() into the class

parent 52638c68
...@@ -368,20 +368,15 @@ queue_sort_order_by_priority(struct queue *queue, unsigned start, unsigned end) ...@@ -368,20 +368,15 @@ queue_sort_order_by_priority(struct queue *queue, unsigned start, unsigned end)
queue); queue);
} }
/** void
* Shuffle the order of items in the specified range, ignoring their queue::ShuffleOrderRange(unsigned start, unsigned end)
* priorities.
*/
static void
queue_shuffle_order_range(struct queue *queue, unsigned start, unsigned end)
{ {
assert(queue != NULL); assert(random);
assert(queue->random);
assert(start <= end); assert(start <= end);
assert(end <= queue->length); assert(end <= length);
for (unsigned i = start; i < end; ++i) for (unsigned i = start; i < end; ++i)
queue->SwapOrders(i, g_rand_int_range(queue->rand, i, end)); SwapOrders(i, g_rand_int_range(rand, i, end));
} }
/** /**
...@@ -412,14 +407,14 @@ queue::ShuffleOrderRangeWithPriority(unsigned start, unsigned end) ...@@ -412,14 +407,14 @@ queue::ShuffleOrderRangeWithPriority(unsigned start, unsigned end)
if (priority != group_priority) { if (priority != group_priority) {
/* start of a new group - shuffle the one that /* start of a new group - shuffle the one that
has just ended */ has just ended */
queue_shuffle_order_range(this, group_start, i); ShuffleOrderRange(group_start, i);
group_start = i; group_start = i;
group_priority = priority; group_priority = priority;
} }
} }
/* shuffle the last group */ /* shuffle the last group */
queue_shuffle_order_range(this, group_start, end); ShuffleOrderRange(group_start, end);
} }
void void
......
...@@ -299,6 +299,12 @@ struct queue { ...@@ -299,6 +299,12 @@ struct queue {
} }
/** /**
* Shuffle the order of items in the specified range, ignoring
* their priorities.
*/
void ShuffleOrderRange(unsigned start, unsigned end);
/**
* Shuffle the order of items in the specified range, taking their * Shuffle the order of items in the specified range, taking their
* priorities into account. * priorities into account.
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment