Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRInput_004.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 004.
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_005.hpp"
20
21
22namespace xrt::state_trackers::openvr {
23
24using namespace vr;
25
26class XRTVRInput_004 : public XRTVRInput_005, public vr::IVRInput_004
27{
28public:
29 // @todo Remove when clang-format is updated in CI
30 // clang-format off
32 // clang-format on
33
34 FnTable_IVRInput_004();
35
36 ForwardDeclareBase_IVRInput(XRTVRInput_005);
37
38 Forward_IVRInput_SetActionManifestPath();
39 Forward_IVRInput_GetActionSetHandle();
40 Forward_IVRInput_GetActionHandle();
41 Forward_IVRInput_GetInputSourceHandle();
42 Forward_IVRInput_UpdateActionState();
43 Forward_IVRInput_GetDigitalActionData_011();
44 Forward_IVRInput_GetAnalogActionData_011();
45 Forward_IVRInput_GetPoseActionData_005();
46
47 EVRInputError
48 GetSkeletalActionData(VRActionHandle_t action,
49 InputSkeletalActionData_t *pActionData,
50 uint32_t unActionDataSize,
51 VRInputValueHandle_t ulRestrictToDevice) override
52 {
53 openvr_logger logger;
54 OPENVR_LOGGER_INIT(logger);
55
57 "GetSkeletalActionData(action=%llu, pActionData=%p, "
58 "unActionDataSize=%llu, ulRestrictToDevice=%llu) -> VRInputError_None",
59 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
60 static_cast<const void *>(pActionData),
61 static_cast<unsigned long long>(unActionDataSize),
62 static_cast<unsigned long long>(ulRestrictToDevice));
63 }
64
65 EVRInputError
66 GetSkeletalBoneData(VRActionHandle_t action,
67 EVRSkeletalTransformSpace eTransformSpace,
68 EVRSkeletalMotionRange eMotionRange,
69 VR_ARRAY_COUNT(unTransformArrayCount) VRBoneTransform_t *pTransformArray,
70 uint32_t unTransformArrayCount,
71 VRInputValueHandle_t ulRestrictToDevice) override
72 {
73 openvr_logger logger;
74 OPENVR_LOGGER_INIT(logger);
75
77 logger,
78 "GetSkeletalBoneData(action=%llu, eTransformSpace=?, eMotionRange=%d, "
79 "pTransformArray=%p, unTransformArrayCount=%llu, ulRestrictToDevice=%llu) -> VRInputError_None",
80 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
81 static_cast<int>(eMotionRange), static_cast<const void *>(pTransformArray),
82 static_cast<unsigned long long>(unTransformArrayCount),
83 static_cast<unsigned long long>(ulRestrictToDevice));
84 }
85
86 EVRInputError
87 GetSkeletalBoneDataCompressed(VRActionHandle_t action,
88 EVRSkeletalTransformSpace eTransformSpace,
89 EVRSkeletalMotionRange eMotionRange,
90 VR_OUT_BUFFER_COUNT(unCompressedSize) void *pvCompressedData,
91 uint32_t unCompressedSize,
92 uint32_t *punRequiredCompressedSize,
93 VRInputValueHandle_t ulRestrictToDevice) override
94 {
95 openvr_logger logger;
96 OPENVR_LOGGER_INIT(logger);
97
99 logger,
100 "GetSkeletalBoneDataCompressed(action=%llu, eTransformSpace=?, "
101 "eMotionRange=%d, pvCompressedData=%p, unCompressedSize=%llu, "
102 "punRequiredCompressedSize=%p, ulRestrictToDevice=%llu) -> VRInputError_None",
103 EVRInputError::VRInputError_None, static_cast<unsigned long long>(action),
104 static_cast<int>(eMotionRange), static_cast<const void *>(pvCompressedData),
105 static_cast<unsigned long long>(unCompressedSize),
106 static_cast<const void *>(punRequiredCompressedSize),
107 static_cast<unsigned long long>(ulRestrictToDevice));
108 }
109
110 EVRInputError
111 DecompressSkeletalBoneData(void *pvCompressedBuffer,
112 uint32_t unCompressedBufferSize,
113 EVRSkeletalTransformSpace *peTransformSpace,
114 VR_ARRAY_COUNT(unTransformArrayCount) VRBoneTransform_t *pTransformArray,
115 uint32_t unTransformArrayCount) override
116 {
117 openvr_logger logger;
118 OPENVR_LOGGER_INIT(logger);
119
121 logger,
122 "DecompressSkeletalBoneData(pvCompressedBuffer=%p, unCompressedBufferSize=%llu, "
123 "peTransformSpace=%p, pTransformArray=%p, unTransformArrayCount=%llu) -> VRInputError_None",
124 EVRInputError::VRInputError_None, static_cast<const void *>(pvCompressedBuffer),
125 static_cast<unsigned long long>(unCompressedBufferSize),
126 static_cast<const void *>(peTransformSpace), static_cast<const void *>(pTransformArray),
127 static_cast<unsigned long long>(unTransformArrayCount));
128 }
129
130 Forward_IVRInput_TriggerHapticVibrationAction_011();
131 Forward_IVRInput_GetActionOrigins();
132
133 EVRInputError
134 GetOriginLocalizedName(VRInputValueHandle_t origin,
135 VR_OUT_STRING() char *pchNameArray,
136 uint32_t unNameArraySize) override
137 {
138 openvr_logger logger;
139 OPENVR_LOGGER_INIT(logger);
140
142 logger,
143 "GetOriginLocalizedName(origin=%llu, pchNameArray=%p, unNameArraySize=%llu) -> VRInputError_None",
144 EVRInputError::VRInputError_None, static_cast<unsigned long long>(origin),
145 static_cast<const void *>(pchNameArray), static_cast<unsigned long long>(unNameArraySize));
146 }
147
148 Forward_IVRInput_GetOriginTrackedDeviceInfo();
149 Forward_IVRInput_ShowActionOrigins();
150 Forward_IVRInput_ShowBindingsForActionSet();
151};
152
153}; // namespace xrt::state_trackers::openvr
Implementation of the latest IVRInput_011 interface version.
Implementation of the IVRInput interface version 005.
Definition XRTVRClientCore.hpp:152
Definition XRTVRInput_004.hpp:27
Definition XRTVRInput_005.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