diff --git a/src/daemon/user.rs b/src/daemon/user.rs index 0d9a2b1..6f5b7b6 100644 --- a/src/daemon/user.rs +++ b/src/daemon/user.rs @@ -19,7 +19,7 @@ use zbus::ConnectionBuilder; use crate::daemon::{channel, Daemon, DaemonCommand, DaemonContext}; use crate::job::{JobManager, JobManagerService}; -use crate::manager::user::SteamOSManager; +use crate::manager::user::create_interfaces; use crate::path; use crate::udev::UdevMonitor; use crate::Service; @@ -112,14 +112,10 @@ async fn create_connections( .build() .await?; - let (tx, rx) = unbounded_channel(); + let (jm_tx, rx) = unbounded_channel(); let job_manager = JobManager::new(connection.clone()).await?; - let manager = SteamOSManager::new(connection.clone(), system.clone(), channel, tx).await?; let service = JobManagerService::new(job_manager, rx, system.clone()); - connection - .object_server() - .at("/com/steampowered/SteamOSManager1", manager) - .await?; + create_interfaces(connection.clone(), system.clone(), channel, jm_tx).await?; Ok((connection, system, service)) } diff --git a/src/manager/user.rs b/src/manager/user.rs index fe5c667..4686d42 100644 --- a/src/manager/user.rs +++ b/src/manager/user.rs @@ -89,7 +89,7 @@ macro_rules! setter { }; } -pub struct SteamOSManager { +struct SteamOSManager { proxy: Proxy<'static>, hdmi_cec: HdmiCecControl<'static>, channel: Sender, @@ -388,6 +388,21 @@ impl SteamOSManager { } } +pub(crate) async fn create_interfaces( + session: Connection, + system: Connection, + daemon: Sender, + job_manager: UnboundedSender, +) -> Result<()> { + let manager = SteamOSManager::new(session.clone(), system.clone(), daemon, job_manager).await?; + session + .object_server() + .at("/com/steampowered/SteamOSManager1", manager) + .await?; + + Ok(()) +} + #[cfg(test)] mod test { use super::*;