OpenVRController::OpenVRController(OpenVRSystem &s):
system(s),
- index(-1)
+ index(-1),
+ last_packet_number(0)
{
name = "OpenVR Controller";
{
case vr::VREvent_TrackedDeviceActivated:
index = ev.trackedDeviceIndex;
+ signal_tracking_state_changed.emit(true);
break;
case vr::VREvent_TrackedDeviceDeactivated:
index = -1;
+ signal_tracking_state_changed.emit(false);
break;
case vr::VREvent_ButtonPress:
set_button_state(ev.data.controller.button, true, true);
}
}
+const GL::Object *OpenVRController::get_object() const
+{
+ char buf[1024];
+ unsigned len = vr::VRSystem()->GetStringTrackedDeviceProperty(index, vr::Prop_RenderModelName_String, buf, sizeof(buf));
+ if(len>1)
+ return system.get_render_model(string(buf, len-1));
+
+ return 0;
+}
+
} // namespace VR
} // namespace Msp