remove some profiles, skip saving none values

This commit is contained in:
galister 2026-07-02 03:56:00 +09:00
parent f3bb2e070b
commit 65fd75eb4a
3 changed files with 20 additions and 2 deletions

View File

@ -7,12 +7,10 @@ readonly ALLOWED_PROFILES="$(
/interaction_profiles/htc/vive_controller /interaction_profiles/htc/vive_controller
/interaction_profiles/htc/vive_cosmos_controller /interaction_profiles/htc/vive_cosmos_controller
/interaction_profiles/htc/vive_focus3_controller /interaction_profiles/htc/vive_focus3_controller
/interaction_profiles/khr/generic_controller
/interaction_profiles/khr/simple_controller /interaction_profiles/khr/simple_controller
/interaction_profiles/ml/ml2_controller /interaction_profiles/ml/ml2_controller
/interaction_profiles/microsoft/motion_controller /interaction_profiles/microsoft/motion_controller
/interaction_profiles/mndx/flipvr /interaction_profiles/mndx/flipvr
/interaction_profiles/mndx/hydra
/interaction_profiles/mndx/pssense_controller_mndx /interaction_profiles/mndx/pssense_controller_mndx
/interaction_profiles/oculus/touch_controller /interaction_profiles/oculus/touch_controller
/interaction_profiles/oppo/mr_controller_oppo /interaction_profiles/oppo/mr_controller_oppo

View File

@ -13,30 +13,50 @@ pub enum OneOrMany<T> {
#[derive(Debug, Default, Clone, Serialize, Deserialize)] #[derive(Debug, Default, Clone, Serialize, Deserialize)]
pub struct OpenXrInputAction { pub struct OpenXrInputAction {
#[serde(skip_serializing_if = "Option::is_none")]
pub left: Option<OneOrMany<String>>, pub left: Option<OneOrMany<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub right: Option<OneOrMany<String>>, pub right: Option<OneOrMany<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub handsfree: Option<OneOrMany<String>>, pub handsfree: Option<OneOrMany<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threshold: Option<[f32; 2]>, pub threshold: Option<[f32; 2]>,
#[serde(skip_serializing_if = "Option::is_none")]
pub double_click: Option<bool>, pub double_click: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub triple_click: Option<bool>, pub triple_click: Option<bool>,
} }
#[derive(Debug, Default, Clone, Serialize, Deserialize)] #[derive(Debug, Default, Clone, Serialize, Deserialize)]
pub struct OpenXrInputProfile { pub struct OpenXrInputProfile {
pub profile: String, pub profile: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub pose: Option<OpenXrInputAction>, pub pose: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub click: Option<OpenXrInputAction>, pub click: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub grab: Option<OpenXrInputAction>, pub grab: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alt_click: Option<OpenXrInputAction>, pub alt_click: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_hide: Option<OpenXrInputAction>, pub show_hide: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub toggle_dashboard: Option<OpenXrInputAction>, pub toggle_dashboard: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub space_drag: Option<OpenXrInputAction>, pub space_drag: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub space_rotate: Option<OpenXrInputAction>, pub space_rotate: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub space_reset: Option<OpenXrInputAction>, pub space_reset: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub click_modifier_right: Option<OpenXrInputAction>, pub click_modifier_right: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub click_modifier_middle: Option<OpenXrInputAction>, pub click_modifier_middle: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub move_mouse: Option<OpenXrInputAction>, pub move_mouse: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scroll: Option<OpenXrInputAction>, pub scroll: Option<OpenXrInputAction>,
#[serde(skip_serializing_if = "Option::is_none")]
pub haptic: Option<OpenXrInputAction>, pub haptic: Option<OpenXrInputAction>,
} }