From 754241f6bd04c4a1387a72a71b8b03aaf0c2d03f Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Mon, 5 Feb 2024 23:33:27 +0100 Subject: [PATCH] osc for openvr; configurable osc port --- src/backend/openvr/mod.rs | 8 ++++++++ src/backend/openxr/mod.rs | 2 +- src/config.rs | 7 +++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/backend/openvr/mod.rs b/src/backend/openvr/mod.rs index 4436eba..3e6b2f7 100644 --- a/src/backend/openvr/mod.rs +++ b/src/backend/openvr/mod.rs @@ -21,6 +21,7 @@ use crate::{ backend::{ input::interact, openvr::{input::OpenVrInputSource, lines::LinePool, manifest::install_manifest}, + osc::OscSender, }, graphics::WlxGraphics, state::AppState, @@ -87,6 +88,8 @@ pub fn openvr_run(running: Arc) -> Result<(), BackendError> { let mut overlays = OverlayContainer::::new(&mut state); let mut space_mover = playspace::PlayspaceMover::new(); + #[cfg(feature = "osc")] + let mut osc_sender = OscSender::new(state.session.config.osc_out_port).ok(); state.hid_provider.set_desktop_extent(overlays.extent); @@ -201,6 +204,11 @@ pub fn openvr_run(running: Arc) -> Result<(), BackendError> { .iter_mut() .for_each(|o| o.after_input(&mut overlay_mngr, &mut state)); + #[cfg(feature = "osc")] + if let Some(ref mut sender) = osc_sender { + let _ = sender.send_params(&overlays); + }; + log::debug!("Rendering frame"); overlays diff --git a/src/backend/openxr/mod.rs b/src/backend/openxr/mod.rs index d4b739c..46479ac 100644 --- a/src/backend/openxr/mod.rs +++ b/src/backend/openxr/mod.rs @@ -63,7 +63,7 @@ pub fn openxr_run(running: Arc) -> Result<(), BackendError> { let mut lines = LinePool::new(app_state.graphics.clone()); #[cfg(feature = "osc")] - let mut osc_sender = OscSender::new(9000).ok(); + let mut osc_sender = OscSender::new(app_state.session.config.osc_out_port).ok(); app_state.hid_provider.set_desktop_extent(overlays.extent); diff --git a/src/config.rs b/src/config.rs index 732b2ed..5c2504f 100644 --- a/src/config.rs +++ b/src/config.rs @@ -23,6 +23,10 @@ fn def_one() -> f32 { 1.0 } +fn def_osc_port() -> u16 { + 9000 +} + #[derive(Deserialize, Serialize)] pub struct GeneralConfig { #[serde(default = "def_click_freeze_time_ms")] @@ -42,6 +46,9 @@ pub struct GeneralConfig { #[serde(default = "def_pw_tokens")] pub pw_tokens: Vec<(String, String)>, + + #[serde(default = "def_osc_port")] + pub osc_out_port: u16, } impl GeneralConfig {