From 6b7931e2b967652066b076d41e1a1b549453dbe8 Mon Sep 17 00:00:00 2001 From: Marcus Hanestad Date: Wed, 4 Jun 2025 17:13:37 +0200 Subject: [PATCH] rs-terminal: add subcommand for SetPlaylistItem --- senders/terminal/src/main.rs | 19 +++++++++++++++++++ senders/terminal/src/models/v3.rs | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/senders/terminal/src/main.rs b/senders/terminal/src/main.rs index be616e5..8b26f19 100644 --- a/senders/terminal/src/main.rs +++ b/senders/terminal/src/main.rs @@ -179,6 +179,19 @@ fn run() -> Result<(), Box> { .required(true) .takes_value(true), ), + ) + .subcommand( + SubCommand::with_name("set_playlist_item") + .about("") + .arg( + Arg::with_name("item_index") + .short('i') + .long("item_index") + .value_name("INDEX") + .help("Index of the item in the playlist that should be play") + .required(true) + .takes_value(true), + ) ); let matches = app.get_matches(); @@ -375,6 +388,12 @@ fn run() -> Result<(), Box> { }); println!("Sent setspeed {:?}", setspeed_message); session.send_message(Opcode::SetSpeed, &setspeed_message)?; + } else if let Some(set_playlist_item_matches) = matches.subcommand_matches("set_playlist_item") { + let message = v3::SetPlaylistItemMessage { + item_index: set_playlist_item_matches.value_of("item_index").expect("item_index required").parse::()?, + }; + session.send_message(Opcode::SetPlaylistItem, &message)?; + println!("Sent set_playlist_item {message:?}"); } else { println!("Invalid command. Use --help for more information."); std::process::exit(1); diff --git a/senders/terminal/src/models/v3.rs b/senders/terminal/src/models/v3.rs index 2526201..c2432a6 100644 --- a/senders/terminal/src/models/v3.rs +++ b/senders/terminal/src/models/v3.rs @@ -227,7 +227,7 @@ pub struct PlayUpdateMessage { #[derive(Serialize, Debug)] pub struct SetPlaylistItemMessage { #[serde(rename = "itemIndex")] - pub item_index: Option, + pub item_index: u64, } #[derive(Deserialize, Debug)]