feat: new libmonado and new device roles

This commit is contained in:
Gabriele Musco 2023-12-28 17:59:47 +00:00
parent f6faf38896
commit f238165522
2 changed files with 117 additions and 3 deletions

2
Cargo.lock generated
View file

@ -1068,7 +1068,7 @@ dependencies = [
[[package]]
name = "libmonado-rs"
version = "0.1.0"
source = "git+https://github.com/technobaboo/libmonado-rs#3b3f098cb131843ee90f078e26362fcefe02b822"
source = "git+https://github.com/technobaboo/libmonado-rs#4838d4d0a726a584bbd34f3b5418f93a1f998da9"
dependencies = [
"bindgen",
"cmake",

View file

@ -11,6 +11,21 @@ pub enum XRDeviceRole {
Eyes,
HandTrackingLeft,
HandTrackingRight,
HandheldObject,
LeftFoot,
RightFoot,
LeftShoulder,
RightShoulder,
LeftElbow,
RightElbow,
LeftKnee,
RightKnee,
Waist,
Chest,
Camera,
Keyboard,
GenericTracker,
/**
* Devices with no role
@ -34,6 +49,21 @@ impl Display for XRDeviceRole {
Self::Eyes => "Eye Tracking",
Self::HandTrackingLeft => "Hand tracking left",
Self::HandTrackingRight => "Hand tracking right",
Self::HandheldObject => "Handheld object",
Self::LeftFoot => "Left foot",
Self::RightFoot => "Right foot",
Self::LeftShoulder => "Left shoulder",
Self::RightShoulder => "Right shoulder",
Self::LeftElbow => "Left elbow",
Self::RightElbow => "Right elbow",
Self::LeftKnee => "Left knee",
Self::RightKnee => "Right knee",
Self::Waist => "Waist",
Self::Chest => "Chest",
Self::Camera => "Camera",
Self::Keyboard => "Keyboard",
Self::GenericTracker => "Generic tracker",
Self::Other => "",
})
@ -62,6 +92,19 @@ impl XRDeviceRole {
Self::Eyes,
Self::HandTrackingLeft,
Self::HandTrackingRight,
Self::HandheldObject,
Self::LeftFoot,
Self::RightFoot,
Self::LeftShoulder,
Self::RightShoulder,
Self::LeftElbow,
Self::RightElbow,
Self::LeftKnee,
Self::RightKnee,
Self::Waist,
Self::Chest,
Self::Camera,
Self::Keyboard,
Self::GenericTracker,
]
.iter()
@ -76,6 +119,21 @@ impl XRDeviceRole {
Self::Eyes => "eyes",
Self::HandTrackingLeft => "hand-tracking-left",
Self::HandTrackingRight => "hand-tracking-right",
Self::HandheldObject => "handheld-object",
Self::LeftFoot => "left-foot",
Self::RightFoot => "right-foot",
Self::LeftShoulder => "left-shoulder",
Self::RightShoulder => "right-shoulder",
Self::LeftElbow => "left-elbow",
Self::RightElbow => "right-elbow",
Self::LeftKnee => "left-knee",
Self::RightKnee => "right-knee",
Self::Waist => "waist",
Self::Chest => "chest",
Self::Camera => "camera",
Self::Keyboard => "keyboard",
Self::GenericTracker => "generic-tracker", // not actually in monado
Self::Other => "other", // not actually in monado
}
@ -90,8 +148,23 @@ impl XRDeviceRole {
Self::Eyes => 4,
Self::HandTrackingLeft => 5,
Self::HandTrackingRight => 6,
Self::GenericTracker => 7,
Self::Other => 8,
Self::HandheldObject => 7,
Self::LeftFoot => 8,
Self::RightFoot => 9,
Self::LeftShoulder => 10,
Self::RightShoulder => 11,
Self::LeftElbow => 12,
Self::RightElbow => 13,
Self::LeftKnee => 14,
Self::RightKnee => 15,
Self::Waist => 16,
Self::Chest => 17,
Self::Camera => 18,
Self::Keyboard => 19,
Self::GenericTracker => 20,
Self::Other => 21,
}
}
@ -104,6 +177,19 @@ impl XRDeviceRole {
"eyes" => Some(Self::Eyes),
"hand-tracking-left" => Some(Self::HandTrackingLeft),
"hand-tracking-right" => Some(Self::HandTrackingRight),
"handheld-object" => Some(Self::HandheldObject),
"left-foot" => Some(Self::LeftFoot),
"right-foot" => Some(Self::RightFoot),
"left-shoulder" => Some(Self::LeftShoulder),
"right-shoulder" => Some(Self::RightShoulder),
"left-elbow" => Some(Self::LeftElbow),
"right-elbow" => Some(Self::RightElbow),
"left-knee" => Some(Self::LeftKnee),
"right-knee" => Some(Self::RightKnee),
"waist" => Some(Self::Waist),
"chest" => Some(Self::Chest),
"camera" => Some(Self::Camera),
"keyboard" => Some(Self::Keyboard),
_ => None,
}
}
@ -117,6 +203,21 @@ impl XRDeviceRole {
"Eye Tracking" => Self::Eyes,
"Hand tracking left" => Self::HandTrackingLeft,
"Hand tracking right" => Self::HandTrackingRight,
"Handheld object" => Self::HandheldObject,
"Left foot" => Self::LeftFoot,
"Right foot" => Self::RightFoot,
"Left shoulder" => Self::LeftShoulder,
"Right shoulder" => Self::RightShoulder,
"Left elbow" => Self::LeftElbow,
"Right elbow" => Self::RightElbow,
"Left knee" => Self::LeftKnee,
"Right knee" => Self::RightKnee,
"Waist" => Self::Waist,
"Chest" => Self::Chest,
"Camera" => Self::Camera,
"Keyboard" => Self::Keyboard,
"Generic tracker" => Self::GenericTracker,
_ => Self::GenericTracker,
}
@ -179,6 +280,19 @@ impl XRDevice {
XRDeviceRole::Right,
XRDeviceRole::HandTrackingLeft,
XRDeviceRole::HandTrackingRight,
XRDeviceRole::HandheldObject,
XRDeviceRole::LeftFoot,
XRDeviceRole::RightFoot,
XRDeviceRole::LeftShoulder,
XRDeviceRole::RightShoulder,
XRDeviceRole::LeftElbow,
XRDeviceRole::RightElbow,
XRDeviceRole::LeftKnee,
XRDeviceRole::RightKnee,
XRDeviceRole::Waist,
XRDeviceRole::Chest,
XRDeviceRole::Camera,
XRDeviceRole::Keyboard,
XRDeviceRole::Gamepad,
XRDeviceRole::Eyes,
]