queue/PlaylistEdit: convert start/end parameters to RangeArg
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#include "PlaylistError.hxx"
|
||||
#include "queue/Playlist.hxx"
|
||||
#include "queue/QueuePrint.hxx"
|
||||
#include "protocol/RangeArg.hxx"
|
||||
|
||||
#define SONG_FILE "file: "
|
||||
#define SONG_TIME "Time: "
|
||||
@@ -35,20 +36,17 @@ playlist_print_uris(Response &r, const playlist &playlist)
|
||||
}
|
||||
|
||||
void
|
||||
playlist_print_info(Response &r, const playlist &playlist,
|
||||
unsigned start, unsigned end)
|
||||
playlist_print_info(Response &r, const playlist &playlist, RangeArg range)
|
||||
{
|
||||
const Queue &queue = playlist.queue;
|
||||
|
||||
if (end > queue.GetLength())
|
||||
/* correct the "end" offset */
|
||||
end = queue.GetLength();
|
||||
|
||||
if (start > end)
|
||||
/* an invalid "start" offset is fatal */
|
||||
if (!range.CheckClip(queue.GetLength()))
|
||||
throw PlaylistError::BadRange();
|
||||
|
||||
queue_print_info(r, queue, start, end);
|
||||
if (range.IsEmpty())
|
||||
return;
|
||||
|
||||
queue_print_info(r, queue, range.start, range.end);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -62,7 +60,7 @@ playlist_print_id(Response &r, const playlist &playlist,
|
||||
/* no such song */
|
||||
throw PlaylistError::NoSuchSong();
|
||||
|
||||
playlist_print_info(r, playlist, position, position + 1);
|
||||
playlist_print_info(r, playlist, {unsigned(position), position + 1U});
|
||||
}
|
||||
|
||||
bool
|
||||
@@ -87,18 +85,24 @@ playlist_print_find(Response &r, const playlist &playlist,
|
||||
void
|
||||
playlist_print_changes_info(Response &r, const playlist &playlist,
|
||||
uint32_t version,
|
||||
unsigned start, unsigned end)
|
||||
RangeArg range)
|
||||
{
|
||||
queue_print_changes_info(r, playlist.queue, version,
|
||||
start, end);
|
||||
const Queue &queue = playlist.queue;
|
||||
range.ClipRelaxed(queue.GetLength());
|
||||
|
||||
queue_print_changes_info(r, queue, version,
|
||||
range.start, range.end);
|
||||
}
|
||||
|
||||
void
|
||||
playlist_print_changes_position(Response &r,
|
||||
const playlist &playlist,
|
||||
uint32_t version,
|
||||
unsigned start, unsigned end)
|
||||
RangeArg range)
|
||||
{
|
||||
const Queue &queue = playlist.queue;
|
||||
range.ClipRelaxed(queue.GetLength());
|
||||
|
||||
queue_print_changes_position(r, playlist.queue, version,
|
||||
start, end);
|
||||
range.start, range.end);
|
||||
}
|
||||
|
Reference in New Issue
Block a user