MCPcopy Create free account
hub / github.com/LibreVR/Revive / InputDevice

Class InputDevice

Revive/InputManager.h:17–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15{
16public:
17 class InputDevice
18 {
19 public:
20 InputDevice(vr::VRActionSetHandle_t actionSet)
21 : ActionSet(actionSet), Handle(vr::k_ulInvalidInputValueHandle) { }
22 virtual ~InputDevice() { }
23
24 // Input
25 virtual ovrControllerType GetType() = 0;
26 virtual bool IsConnected() const = 0;
27 virtual bool GetInputState(ovrSession session, ovrInputState* inputState) = 0;
28
29 // Haptics
30 virtual void SetVibration(float frequency, float amplitude) { }
31 virtual void SubmitVibration(const ovrHapticsBuffer* buffer) { }
32 virtual void GetVibrationState(ovrHapticsPlaybackState* outState) { }
33
34 vr::VRActionSetHandle_t ActionSet;
35 vr::VRInputValueHandle_t Handle;
36
37 protected:
38 bool GetDigital(vr::VRActionHandle_t action)
39 {
40 vr::InputDigitalActionData_t data = {};
41 vr::VRInput()->GetDigitalActionData(action, &data, sizeof(data), Handle);
42 return data.bState;
43 }
44
45 bool IsPressed(vr::VRActionHandle_t action)
46 {
47 vr::InputDigitalActionData_t data = {};
48 vr::VRInput()->GetDigitalActionData(action, &data, sizeof(data), Handle);
49 return data.bChanged && data.bState;
50 }
51
52 bool IsReleased(vr::VRActionHandle_t action)
53 {
54 vr::InputDigitalActionData_t data = {};
55 vr::VRInput()->GetDigitalActionData(action, &data, sizeof(data), Handle);
56 return data.bChanged && !data.bState;
57 }
58
59 OVR::Vector2f GetAnalog(vr::VRActionHandle_t action)
60 {
61 vr::InputAnalogActionData_t data = {};
62 vr::VRInput()->GetAnalogActionData(action, &data, sizeof(data), Handle);
63 return OVR::Vector2f(data.x, data.y);
64 }
65
66 static OVR::Vector2f ApplyDeadzone(OVR::Vector2f axis, float deadZoneLow, float deadZoneHigh);
67 };
68
69 class OculusTouch : public InputDevice
70 {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected