From 3fa46af0bd28a605d9096d23bec9135cead79e10 Mon Sep 17 00:00:00 2001 From: Marcus Hanestad Date: Tue, 24 Jun 2025 08:41:23 +0200 Subject: [PATCH] rs-terminal: add `volume` argument to `play` command --- senders/terminal/src/fcastsession.rs | 3 ++- senders/terminal/src/main.rs | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/senders/terminal/src/fcastsession.rs b/senders/terminal/src/fcastsession.rs index 7e74503..3eaafb1 100644 --- a/senders/terminal/src/fcastsession.rs +++ b/senders/terminal/src/fcastsession.rs @@ -259,6 +259,7 @@ impl<'a> FCastSession<'a> { time: Option, speed: Option, headers: Option>, + volume: Option, ) -> Result<(), Box> { match self.state { SessionState::Connected(ProtoVersion::V2) => { @@ -278,7 +279,7 @@ impl<'a> FCastSession<'a> { url, content, time, - volume: Some(1.0), + volume, speed, headers, metadata: None, diff --git a/senders/terminal/src/main.rs b/senders/terminal/src/main.rs index 8b26f19..3f0cf0a 100644 --- a/senders/terminal/src/main.rs +++ b/senders/terminal/src/main.rs @@ -135,6 +135,14 @@ fn run() -> Result<(), Box> { .help("Custom request headers in key:value format") .required(false) .multiple_occurrences(true), + ) + .arg( + Arg::with_name("volume") + .short('v') + .long("volume") + .value_name("VOLUME") + .help("The desired volume") + .takes_value(true) ), ) .subcommand( @@ -301,6 +309,11 @@ fn run() -> Result<(), Box> { .collect::>() }); + let volume = match play_matches.value_of("volume") { + Some(v) => v.parse::().ok(), + _ => None, + }; + #[allow(unused_assignments)] let mut url = None; let mut content = None; @@ -340,7 +353,7 @@ fn run() -> Result<(), Box> { content = Some(buffer); } - session.send_play_message(mime_type, url, content, time, speed, headers)?; + session.send_play_message(mime_type, url, content, time, speed, headers, volume)?; } else if let Some(seek_matches) = matches.subcommand_matches("seek") { let seek_message = SeekMessage::new(match seek_matches.value_of("timestamp") { Some(s) => s.parse::()?,