Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRInput.hpp
Go to the documentation of this file.
1// Copyright 2026, Beyley Cardellio
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Implementation of the latest IVRInput_011 interface version.
6 *
7 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
8 * @ingroup openvr_interfaces
9 */
10
11#pragma once
12
13#include "openvr_interfaces_unified.h"
14#include "openvr_forward_macros.h"
15
16#include "XRTVRClientCore.hpp"
17
18#include <string>
19#include <unordered_map>
20
21
22namespace xrt::state_trackers::openvr {
23
24using namespace vr;
25
26class XRTVRInput_011 : public vr::IVRInput_011
27{
28private:
30
31public:
33
34 virtual ~XRTVRInput_011() = default;
35
36 FnTable_IVRInput_011();
37
38 EVRInputError
39 SetActionManifestPath(const char *pchActionManifestPath) override;
40
41 EVRInputError
42 GetActionSetHandle(const char *pchActionSetName, VRActionSetHandle_t *pHandle) override;
43
44 EVRInputError
45 GetActionHandle(const char *pchActionName, VRActionHandle_t *pHandle) override;
46
47 EVRInputError
48 GetInputSourceHandle(const char *pchInputSourcePath, VRInputValueHandle_t *pHandle) override;
49
50 EVRInputError
51 UpdateActionState(VRActiveActionSet_t *pSets,
52 uint32_t unSizeOfVRSelectedActionSet_t,
53 uint32_t unSetCount) override;
54
55 EVRInputError
56 GetDigitalActionData(VRActionHandle_t action,
57 InputDigitalActionData_t *pActionData,
58 uint32_t unActionDataSize,
59 VRInputValueHandle_t ulRestrictToDevice) override;
60
61 EVRInputError
62 GetAnalogActionData(VRActionHandle_t action,
63 InputAnalogActionData_t *pActionData,
64 uint32_t unActionDataSize,
65 VRInputValueHandle_t ulRestrictToDevice) override;
66
67 EVRInputError
68 GetPoseActionDataRelativeToNow(VRActionHandle_t action,
69 ETrackingUniverseOrigin eOrigin,
70 float fPredictedSecondsFromNow,
71 InputPoseActionData_t *pActionData,
72 uint32_t unActionDataSize,
73 VRInputValueHandle_t ulRestrictToDevice) override;
74
75 EVRInputError
76 GetPoseActionDataForNextFrame(VRActionHandle_t action,
77 ETrackingUniverseOrigin eOrigin,
78 InputPoseActionData_t *pActionData,
79 uint32_t unActionDataSize,
80 VRInputValueHandle_t ulRestrictToDevice) override;
81
82 EVRInputError
83 GetSkeletalActionData(VRActionHandle_t action,
84 InputSkeletalActionData_t *pActionData,
85 uint32_t unActionDataSize) override;
86
87 EVRInputError
88 GetDominantHand(ETrackedControllerRole *peDominantHand) override;
89
90 EVRInputError
91 SetDominantHand(ETrackedControllerRole eDominantHand) override;
92
93 EVRInputError
94 GetEyeTrackingDataRelativeToNow(VRActionHandle_t action,
95 vr::ETrackingUniverseOrigin eOrigin,
96 float fPredictedSecondsFromNow,
97 vr::VREyeTrackingData_t *pEyeTrackingData,
98 uint32_t ulEyeTrackingDataSize) override;
99
100 EVRInputError
101 GetEyeTrackingDataForNextFrame(VRActionHandle_t action,
102 vr::ETrackingUniverseOrigin eOrigin,
103 vr::VREyeTrackingData_t *pEyeTrackingData,
104 uint32_t ulEyeTrackingDataSize) override;
105
106 EVRInputError
107 GetBoneCount(VRActionHandle_t action, uint32_t *pBoneCount) override;
108
109 EVRInputError
110 GetBoneHierarchy(VRActionHandle_t action, BoneIndex_t *pParentIndices, uint32_t unIndexArayCount) override;
111
112 EVRInputError
113 GetBoneName(VRActionHandle_t action,
114 BoneIndex_t nBoneIndex,
115 char *pchBoneName,
116 uint32_t unNameBufferSize) override;
117
118 EVRInputError
119 GetSkeletalReferenceTransforms(VRActionHandle_t action,
120 EVRSkeletalTransformSpace eTransformSpace,
121 EVRSkeletalReferencePose eReferencePose,
122 VRBoneTransform_t *pTransformArray,
123 uint32_t unTransformArrayCount) override;
124
125 EVRInputError
126 GetSkeletalTrackingLevel(VRActionHandle_t action, EVRSkeletalTrackingLevel *pSkeletalTrackingLevel) override;
127
128 EVRInputError
129 GetSkeletalBoneData(VRActionHandle_t action,
130 EVRSkeletalTransformSpace eTransformSpace,
131 EVRSkeletalMotionRange eMotionRange,
132 VRBoneTransform_t *pTransformArray,
133 uint32_t unTransformArrayCount) override;
134
135 EVRInputError
136 GetSkeletalSummaryData(VRActionHandle_t action,
137 EVRSummaryType eSummaryType,
138 VRSkeletalSummaryData_t *pSkeletalSummaryData) override;
139
140 EVRInputError
141 GetSkeletalBoneDataCompressed(VRActionHandle_t action,
142 EVRSkeletalMotionRange eMotionRange,
143 void *pvCompressedData,
144 uint32_t unCompressedSize,
145 uint32_t *punRequiredCompressedSize) override;
146
147 EVRInputError
148 DecompressSkeletalBoneData(const void *pvCompressedBuffer,
149 uint32_t unCompressedBufferSize,
150 EVRSkeletalTransformSpace eTransformSpace,
151 VRBoneTransform_t *pTransformArray,
152 uint32_t unTransformArrayCount) override;
153
154 EVRInputError
155 TriggerHapticVibrationAction(VRActionHandle_t action,
156 float fStartSecondsFromNow,
157 float fDurationSeconds,
158 float fFrequency,
159 float fAmplitude,
160 VRInputValueHandle_t ulRestrictToDevice) override;
161
162 EVRInputError
163 GetActionOrigins(VRActionSetHandle_t actionSetHandle,
164 VRActionHandle_t digitalActionHandle,
165 VRInputValueHandle_t *originsOut,
166 uint32_t originOutCount) override;
167
168 EVRInputError
169 GetOriginLocalizedName(VRInputValueHandle_t origin,
170 char *pchNameArray,
171 uint32_t unNameArraySize,
172 int32_t unStringSectionsToInclude) override;
173
174 EVRInputError
175 GetOriginTrackedDeviceInfo(VRInputValueHandle_t origin,
176 InputOriginInfo_t *pOriginInfo,
177 uint32_t unOriginInfoSize) override;
178
179 EVRInputError
180 GetActionBindingInfo(VRActionHandle_t action,
181 InputBindingInfo_t *pOriginInfo,
182 uint32_t unBindingInfoSize,
183 uint32_t unBindingInfoCount,
184 uint32_t *punReturnedBindingInfoCount) override;
185
186 EVRInputError
187 ShowActionOrigins(VRActionSetHandle_t actionSetHandle, VRActionHandle_t ulActionHandle) override;
188
189 EVRInputError
190 ShowBindingsForActionSet(VRActiveActionSet_t *pSets,
191 uint32_t unSizeOfVRSelectedActionSet_t,
192 uint32_t unSetCount,
193 VRInputValueHandle_t originToHighlight) override;
194
195 EVRInputError
196 GetComponentStateForBinding(const char *pchRenderModelName,
197 const char *pchComponentName,
198 const InputBindingInfo_t *pOriginInfo,
199 uint32_t unBindingInfoSize,
200 uint32_t unBindingInfoCount,
201 vr::RenderModel_ComponentState_t *pComponentState) override;
202
203 bool
204 IsUsingLegacyInput() override;
205
206 EVRInputError
207 OpenBindingUI(const char *pchAppKey,
208 VRActionSetHandle_t ulActionSetHandle,
209 VRInputValueHandle_t ulDeviceHandle,
210 bool bShowOnDesktop) override;
211
212 EVRInputError
213 GetBindingVariant(vr::VRInputValueHandle_t ulDevicePath,
214 char *pchVariantArray,
215 uint32_t unVariantArraySize) override;
216};
217
218} // namespace xrt::state_trackers::openvr
Implementation of the latest IVRClientCore interface version.
Definition XRTVRClientCore.hpp:152
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15