From 03775f75745e5b8aaf2efd5188a97abc357f9174 Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 21 Feb 2026 09:43:29 +0100 Subject: [PATCH] Add CurrentSpeed to GetTransportInfo This commit adds the CurrentSpeed field to the GetTransportInfo action, including updates to the action definition, handler, and web renderer. The speed is set to '1' as a default value. --- .../src/avtransport/actions/gettransportinfo.rs | 5 ++++- pmowebrenderer/src/handlers.rs | 2 ++ pmowebrenderer/src/renderer.rs | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/pmomediarenderer/src/avtransport/actions/gettransportinfo.rs b/pmomediarenderer/src/avtransport/actions/gettransportinfo.rs index cbca3a4e..38e500dc 100644 --- a/pmomediarenderer/src/avtransport/actions/gettransportinfo.rs +++ b/pmomediarenderer/src/avtransport/actions/gettransportinfo.rs @@ -1,4 +1,6 @@ -use crate::avtransport::variables::{A_ARG_TYPE_INSTANCE_ID, TRANSPORTSTATE, TRANSPORTSTATUS}; +use crate::avtransport::variables::{ + A_ARG_TYPE_INSTANCE_ID, TRANSPORTPLAYSPEED, TRANSPORTSTATE, TRANSPORTSTATUS, +}; use pmoupnp::define_action; define_action! { @@ -6,5 +8,6 @@ define_action! { in "InstanceID" => A_ARG_TYPE_INSTANCE_ID, out "CurrentTransportState" => TRANSPORTSTATE, out "CurrentTransportStatus" => TRANSPORTSTATUS, + out "CurrentSpeed" => TRANSPORTPLAYSPEED, } } diff --git a/pmowebrenderer/src/handlers.rs b/pmowebrenderer/src/handlers.rs index 09b7e062..b5c23799 100644 --- a/pmowebrenderer/src/handlers.rs +++ b/pmowebrenderer/src/handlers.rs @@ -203,6 +203,7 @@ pub fn get_transport_info_handler(state: SharedState) -> ActionHandler { Box::pin(async move { let mut data = data; let s = state.read(); + tracing::info!("[WebRenderer] GetTransportInfo handler called, state={:?}", s.playback_state); let transport_state = match s.playback_state { PlaybackState::Stopped => "STOPPED", PlaybackState::Playing => "PLAYING", @@ -215,6 +216,7 @@ pub fn get_transport_info_handler(state: SharedState) -> ActionHandler { transport_state.to_string() ); set!(&mut data, "CurrentTransportStatus", "OK".to_string()); + set!(&mut data, "CurrentSpeed", "1".to_string()); Ok(data) }) }) diff --git a/pmowebrenderer/src/renderer.rs b/pmowebrenderer/src/renderer.rs index 91f2d921..40cd8b53 100644 --- a/pmowebrenderer/src/renderer.rs +++ b/pmowebrenderer/src/renderer.rs @@ -332,6 +332,12 @@ impl WebRendererFactory { Arc::clone(&TRANSPORTSTATUS), ))) .map_err(|e| FactoryError::ActionError(format!("{:?}", e)))?; + get_info + .add_argument(Arc::new(Argument::new_out( + "CurrentSpeed".to_string(), + Arc::clone(&TRANSPORTPLAYSPEED), + ))) + .map_err(|e| FactoryError::ActionError(format!("{:?}", e)))?; get_info.set_stateful(false); get_info.set_handler(handlers::get_transport_info_handler(state.clone())); add_action(&mut svc, Arc::new(get_info))?;