Monado OpenXR Runtime
Loading...
Searching...
No Matches
XRTVRApplications.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 IVRApplications_008 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
19namespace xrt::state_trackers::openvr {
20
21using namespace vr;
22
23class XRTVRApplications_008 : public vr::IVRApplications_008
24{
25private:
27
28public:
30
31 virtual ~XRTVRApplications_008() = default;
32
33 FnTable_IVRApplications_008();
34
35 EVRApplicationError
36 AddApplicationManifest(const char *pchApplicationManifestFullPath, bool bTemporary) override;
37
38 EVRApplicationError
39 RemoveApplicationManifest(const char *pchApplicationManifestFullPath) override;
40
41 bool
42 IsApplicationInstalled(const char *pchAppKey) override;
43
44 uint32_t
45 GetApplicationCount() override;
46
47 EVRApplicationError
48 GetApplicationKeyByIndex(uint32_t unApplicationIndex,
49 char *pchAppKeyBuffer,
50 uint32_t unAppKeyBufferLen) override;
51
52 EVRApplicationError
53 GetApplicationKeyByProcessId(uint32_t unProcessId, char *pchAppKeyBuffer, uint32_t unAppKeyBufferLen) override;
54
55 EVRApplicationError
56 LaunchApplication(const char *pchAppKey) override;
57
58 EVRApplicationError
59 LaunchTemplateApplication(const char *pchTemplateAppKey,
60 const char *pchNewAppKey,
61 const AppOverrideKeys_t *pKeys,
62 uint32_t unKeys) override;
63
64 vr::EVRApplicationError
65 LaunchApplicationFromMimeType(const char *pchMimeType, const char *pchArgs) override;
66
67 EVRApplicationError
68 LaunchDashboardOverlay(const char *pchAppKey) override;
69
70 bool
71 CancelApplicationLaunch(const char *pchAppKey) override;
72
73 EVRApplicationError
74 IdentifyApplication(uint32_t unProcessId, const char *pchAppKey) override;
75
76 uint32_t
77 GetApplicationProcessId(const char *pchAppKey) override;
78
79 const char *
80 GetApplicationsErrorNameFromEnum(EVRApplicationError error) override;
81
82 uint32_t
83 GetApplicationPropertyString(const char *pchAppKey,
84 EVRApplicationProperty eProperty,
85 char *pchPropertyValueBuffer,
86 uint32_t unPropertyValueBufferLen,
87 EVRApplicationError *peError) override;
88
89 bool
90 GetApplicationPropertyBool(const char *pchAppKey,
91 EVRApplicationProperty eProperty,
92 EVRApplicationError *peError) override;
93
94 uint64_t
95 GetApplicationPropertyUint64(const char *pchAppKey,
96 EVRApplicationProperty eProperty,
97 EVRApplicationError *peError) override;
98
99 EVRApplicationError
100 SetApplicationAutoLaunch(const char *pchAppKey, bool bAutoLaunch) override;
101
102 bool
103 GetApplicationAutoLaunch(const char *pchAppKey) override;
104
105 EVRApplicationError
106 SetDefaultApplicationForMimeType(const char *pchAppKey, const char *pchMimeType) override;
107
108 bool
109 GetDefaultApplicationForMimeType(const char *pchMimeType,
110 char *pchAppKeyBuffer,
111 uint32_t unAppKeyBufferLen) override;
112
113 bool
114 GetApplicationSupportedMimeTypes(const char *pchAppKey,
115 char *pchMimeTypesBuffer,
116 uint32_t unMimeTypesBuffer) override;
117
118 uint32_t
119 GetApplicationsThatSupportMimeType(const char *pchMimeType,
120 char *pchAppKeysThatSupportBuffer,
121 uint32_t unAppKeysThatSupportBuffer) override;
122
123 uint32_t
124 GetApplicationLaunchArguments(uint32_t unHandle, char *pchArgs, uint32_t unArgs) override;
125
126 EVRApplicationError
127 GetStartingApplication(char *pchAppKeyBuffer, uint32_t unAppKeyBufferLen) override;
128
129 EVRSceneApplicationState
130 GetSceneApplicationState() override;
131
132 EVRApplicationError
133 PerformApplicationPrelaunchCheck(const char *pchAppKey) override;
134
135 const char *
136 GetSceneApplicationStateNameFromEnum(EVRSceneApplicationState state) override;
137
138 EVRApplicationError
139 LaunchInternalProcess(const char *pchBinaryPath,
140 const char *pchArguments,
141 const char *pchWorkingDirectory) override;
142
143 EVRApplicationError
144 RegisterSubprocess(uint32_t nPid) override;
145
146 uint32_t
147 GetCurrentSceneProcessId() override;
148};
149
150} // namespace xrt::state_trackers::openvr
Implementation of the latest IVRClientCore interface version.
Definition XRTVRApplications.hpp:24
Definition XRTVRClientCore.hpp:152
Definitions missing from C++ header, present in C.
Definition blockqueue.hpp:15