X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fopenvr%2Fopenvrcontroller.cpp;h=e757221d2911a76b144977989a35f10bce512661;hb=HEAD;hp=9ab957de11c5d5fe41031902548fed66c503253c;hpb=774cc129d93a0001c36434f47ec0614c653824be;p=libs%2Fvr.git diff --git a/source/openvr/openvrcontroller.cpp b/source/openvr/openvrcontroller.cpp index 9ab957d..e757221 100644 --- a/source/openvr/openvrcontroller.cpp +++ b/source/openvr/openvrcontroller.cpp @@ -10,7 +10,8 @@ namespace VR { OpenVRController::OpenVRController(OpenVRSystem &s): system(s), - index(-1) + index(-1), + last_packet_number(0) { name = "OpenVR Controller"; @@ -58,9 +59,11 @@ void OpenVRController::event(const Event &ev) { 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); @@ -98,5 +101,15 @@ void OpenVRController::update_input_state() } } +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