feat(playlists): optional start rank for play_playlist
This commit is contained in:
@@ -78,4 +78,5 @@ message TracksRequest {
|
|||||||
|
|
||||||
message PlayPlaylistRequest {
|
message PlayPlaylistRequest {
|
||||||
uint32 id = 1;
|
uint32 id = 1;
|
||||||
|
optional uint32 starting_rank = 2;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -259,8 +259,11 @@ impl Player for PlayerService {
|
|||||||
|
|
||||||
let tracks = playlist.tracks.iter().map(|t| t.clone().into());
|
let tracks = playlist.tracks.iter().map(|t| t.clone().into());
|
||||||
|
|
||||||
let tracks_and_paths: Vec<(Track, PathBuf)> =
|
let tracks_and_paths: Vec<(Track, PathBuf)> = tracks
|
||||||
tracks.into_iter().zip(track_paths.into_iter()).collect();
|
.into_iter()
|
||||||
|
.zip(track_paths.into_iter())
|
||||||
|
.skip(input.starting_rank.unwrap_or(0) as usize)
|
||||||
|
.collect();
|
||||||
|
|
||||||
if let Err(_) = player.add_tracks_to_queue(tracks_and_paths, true).await {
|
if let Err(_) = player.add_tracks_to_queue(tracks_and_paths, true).await {
|
||||||
return Err(tonic::Status::internal(""));
|
return Err(tonic::Status::internal(""));
|
||||||
|
|||||||
Reference in New Issue
Block a user