queue/Queue: add method GetLight()
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "Queue.hxx"
|
||||
#include "song/DetachedSong.hxx"
|
||||
#include "song/LightSong.hxx"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@@ -38,6 +39,15 @@ Queue::~Queue() noexcept
|
||||
delete[] order;
|
||||
}
|
||||
|
||||
LightSong
|
||||
Queue::GetLight(unsigned position) const noexcept
|
||||
{
|
||||
assert(position < length);
|
||||
|
||||
LightSong song{Get(position)};
|
||||
return song;
|
||||
}
|
||||
|
||||
int
|
||||
Queue::GetNextOrder(unsigned _order) const noexcept
|
||||
{
|
||||
|
@@ -29,6 +29,7 @@
|
||||
#include <cstdint>
|
||||
#include <utility>
|
||||
|
||||
struct LightSong;
|
||||
class DetachedSong;
|
||||
|
||||
/**
|
||||
@@ -200,6 +201,11 @@ struct Queue {
|
||||
return *items[position].song;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like Get(), but return a #LightSong instance.
|
||||
*/
|
||||
LightSong GetLight(unsigned position) const noexcept;
|
||||
|
||||
/**
|
||||
* Returns the song at the specified order number.
|
||||
*/
|
||||
|
@@ -28,7 +28,7 @@ QueueSelection::MatchPosition(const Queue &queue,
|
||||
unsigned position) const noexcept
|
||||
{
|
||||
if (filter != nullptr) {
|
||||
const LightSong song{queue.Get(position)};
|
||||
const auto song = queue.GetLight(position);
|
||||
if (!filter->Match(song))
|
||||
return false;
|
||||
}
|
||||
|
Reference in New Issue
Block a user