Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRInput_003.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 IVRInput interface version 003.
6 *
7 * @author Beyley Cardellio <ep1cm1n10n123@gmail.com>
8 * @ingroup openvr_interfaces
9 */
10
11#pragma once
12
14
15#include "openvr_interfaces_unified.h"
16#include "openvr_forward_macros.h"
17
19#include "XRTVRInput_004.hpp"
20
21
22namespace xrt::state_trackers::openvr {
23
24using namespace vr;
25
26class XRTVRInput_003 : public XRTVRInput_004, public vr::IVRInput_003
27{
28public:
29 // @todo Remove when clang-format is updated in CI
30 // clang-format off
32 // clang-format on
33
34 FnTable_IVRInput_003();
35
36 ForwardDeclareBase_IVRInput(XRTVRInput_004);
37
38 Forward_IVRInput_SetActionManifestPath();
39 Forward_IVRInput_GetActionSetHandle();
40 Forward_IVRInput_GetActionHandle();
41 Forward_IVRInput_GetInputSourceHandle();
42 Forward_IVRInput_UpdateActionState();
43
44 EVRInputError
45 GetDigitalActionData(VRActionHandle_t action,
46 InputDigitalActionData_t *pActionData,
47 uint32_t unActionDataSize) override
48 {
49 openvr_logger logger;
50 OPENVR_LOGGER_INIT(logger);
51
53 logger,
54 "GetDigitalActionData(action=%llu, pActionData=%p, unActionDataSize=%llu) -> VRInputError_None",
55 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
56 static_cast<const void *>(pActionData), static_cast<unsigned long long>(unActionDataSize));
57 }
58
59 EVRInputError
60 GetAnalogActionData(VRActionHandle_t action,
61 InputAnalogActionData_t *pActionData,
62 uint32_t unActionDataSize) override
63 {
64 openvr_logger logger;
65 OPENVR_LOGGER_INIT(logger);
66
68 logger,
69 "GetAnalogActionData(action=%llu, pActionData=%p, unActionDataSize=%llu) -> VRInputError_None",
70 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
71 static_cast<const void *>(pActionData), static_cast<unsigned long long>(unActionDataSize));
72 }
73
74 EVRInputError
75 GetPoseActionData(VRActionHandle_t action,
76 ETrackingUniverseOrigin eOrigin,
77 float fPredictedSecondsFromNow,
78 InputPoseActionData_t *pActionData,
79 uint32_t unActionDataSize) override
80 {
81 openvr_logger logger;
82 OPENVR_LOGGER_INIT(logger);
83
85 "GetPoseActionData(action=%llu, eOrigin=%d, fPredictedSecondsFromNow=%f, "
86 "pActionData=%p, unActionDataSize=%llu) -> VRInputError_None",
87 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
88 static_cast<int>(eOrigin), fPredictedSecondsFromNow,
89 static_cast<const void *>(pActionData),
90 static_cast<unsigned long long>(unActionDataSize));
91 }
92
93 EVRInputError
94 GetSkeletalActionData(VRActionHandle_t action,
95 EVRSkeletalTransformSpace eBoneParent,
96 float fPredictedSecondsFromNow,
97 InputSkeletonActionData_t *pActionData,
98 uint32_t unActionDataSize,
99 VR_ARRAY_COUNT(unTransformArrayCount) VRBoneTransform_t *pTransformArray,
100 uint32_t unTransformArrayCount) override
101 {
102 openvr_logger logger;
103 OPENVR_LOGGER_INIT(logger);
104
106 logger,
107 "GetSkeletalActionData(action=%llu, eBoneParent=?, fPredictedSecondsFromNow=%f, pActionData=%p, "
108 "unActionDataSize=%llu, pTransformArray=%p, unTransformArrayCount=%llu) -> VRInputError_None",
109 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action), fPredictedSecondsFromNow,
110 static_cast<const void *>(pActionData), static_cast<unsigned long long>(unActionDataSize),
111 static_cast<const void *>(pTransformArray), static_cast<unsigned long long>(unTransformArrayCount));
112 }
113
114 EVRInputError
115 GetSkeletalActionDataCompressed(VRActionHandle_t action,
116 EVRSkeletalTransformSpace eBoneParent,
117 float fPredictedSecondsFromNow,
118 VR_OUT_BUFFER_COUNT(unCompressedSize) void *pvCompressedData,
119 uint32_t unCompressedSize,
120 uint32_t *punRequiredCompressedSize) override
121 {
122 openvr_logger logger;
123 OPENVR_LOGGER_INIT(logger);
124
126 logger,
127 "GetSkeletalActionDataCompressed(action=%llu, eBoneParent=?, fPredictedSecondsFromNow=%f, "
128 "pvCompressedData=%p, unCompressedSize=%llu, punRequiredCompressedSize=%p) -> VRInputError_None",
129 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action), fPredictedSecondsFromNow,
130 static_cast<const void *>(pvCompressedData), static_cast<unsigned long long>(unCompressedSize),
131 static_cast<const void *>(punRequiredCompressedSize));
132 }
133
134 EVRInputError
135 UncompressSkeletalActionData(void *pvCompressedBuffer,
136 uint32_t unCompressedBufferSize,
137 EVRSkeletalTransformSpace *peBoneParent,
138 VR_ARRAY_COUNT(unTransformArrayCount) VRBoneTransform_t *pTransformArray,
139 uint32_t unTransformArrayCount) override
140 {
141 openvr_logger logger;
142 OPENVR_LOGGER_INIT(logger);
143
145 logger,
146 "UncompressSkeletalActionData(pvCompressedBuffer=%p, unCompressedBufferSize=%llu, peBoneParent=%p, "
147 "pTransformArray=%p, unTransformArrayCount=%llu) -> VRInputError_None",
148 EVRInputError::VRInputError_None, static_cast<const void *>(pvCompressedBuffer),
149 static_cast<unsigned long long>(unCompressedBufferSize), static_cast<const void *>(peBoneParent),
150 static_cast<const void *>(pTransformArray), static_cast<unsigned long long>(unTransformArrayCount));
151 }
152
153 EVRInputError
154 TriggerHapticVibrationAction(VRActionHandle_t action,
155 float fStartSecondsFromNow,
156 float fDurationSeconds,
157 float fFrequency,
158 float fAmplitude) override
159 {
160 openvr_logger logger;
161 OPENVR_LOGGER_INIT(logger);
162
164 "TriggerHapticVibrationAction(action=%llu, fStartSecondsFromNow=%f, "
165 "fDurationSeconds=%f, fFrequency=%f, fAmplitude=%f) -> VRInputError_None",
166 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
167 fStartSecondsFromNow, fDurationSeconds, fFrequency, fAmplitude);
168 }
169
170 Forward_IVRInput_GetActionOrigins();
171 Forward_IVRInput_GetOriginLocalizedName_004();
172 Forward_IVRInput_GetOriginTrackedDeviceInfo();
173 Forward_IVRInput_ShowActionOrigins();
174 Forward_IVRInput_ShowBindingsForActionSet();
175};
176
177}; // namespace xrt::state_trackers::openvr
Implementation of the latest IVRInput_011 interface version.
Implementation of the IVRInput interface version 004.
Definition XRTVRClientCore.hpp:152
Definition XRTVRInput_003.hpp:27
Definition XRTVRInput_004.hpp:27
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15
Logging functions.
#define OPENVR_LOG_UNIMPLEMENTED_RET(logger, fmt, ret,...)
Specialized macro for logging an unimplemented function and returning a value.
Definition openvr_logger.hpp:57
Definition openvr_logger.hpp:30