node-gpuinfo 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +336 -0
- package/binding.gyp +69 -0
- package/build/Release/gpu.exp +0 -0
- package/build/Release/gpu.lib +0 -0
- package/build/Release/gpu.node +0 -0
- package/build/Release/gpu.pdb +0 -0
- package/build/binding.sln +19 -0
- package/build/gpu.vcxproj +175 -0
- package/build/gpu.vcxproj.filters +169 -0
- package/example.js +69 -0
- package/index.js +33 -0
- package/package.json +68 -0
- package/src/binding.cpp +201 -0
- package/src/gpu_info.c +130 -0
- package/src/gpu_info.h +86 -0
- package/src/includes/adlx/ADLX.h +367 -0
- package/src/includes/adlx/ADLXDefines.h +1345 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
- package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
- package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
- package/src/includes/adlx/ADLXStructures.h +206 -0
- package/src/includes/adlx/ADLXVersion.h +18 -0
- package/src/includes/adlx/I3DSettings.h +3476 -0
- package/src/includes/adlx/I3DSettings1.h +292 -0
- package/src/includes/adlx/I3DSettings2.h +317 -0
- package/src/includes/adlx/IApplications.h +397 -0
- package/src/includes/adlx/IChangedEvent.h +71 -0
- package/src/includes/adlx/ICollections.h +325 -0
- package/src/includes/adlx/IDesktops.h +918 -0
- package/src/includes/adlx/IDisplay3DLUT.h +663 -0
- package/src/includes/adlx/IDisplayGamma.h +683 -0
- package/src/includes/adlx/IDisplayGamut.h +760 -0
- package/src/includes/adlx/IDisplaySettings.h +3476 -0
- package/src/includes/adlx/IDisplays.h +2676 -0
- package/src/includes/adlx/IDisplays1.h +191 -0
- package/src/includes/adlx/IDisplays2.h +188 -0
- package/src/includes/adlx/IDisplays3.h +256 -0
- package/src/includes/adlx/IGPUAutoTuning.h +460 -0
- package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
- package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
- package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
- package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
- package/src/includes/adlx/IGPUPresetTuning.h +469 -0
- package/src/includes/adlx/IGPUTuning.h +1239 -0
- package/src/includes/adlx/IGPUTuning1.h +197 -0
- package/src/includes/adlx/II2C.h +198 -0
- package/src/includes/adlx/ILog.h +72 -0
- package/src/includes/adlx/IMultiMedia.h +578 -0
- package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
- package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
- package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
- package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
- package/src/includes/adlx/IPowerTuning.h +473 -0
- package/src/includes/adlx/IPowerTuning1.h +515 -0
- package/src/includes/adlx/ISmartAccessMemory.h +114 -0
- package/src/includes/adlx/ISystem.h +1557 -0
- package/src/includes/adlx/ISystem1.h +237 -0
- package/src/includes/adlx/ISystem2.h +643 -0
- package/src/linux/amd_linux.c +269 -0
- package/src/linux/intel_linux.c +20 -0
- package/src/linux/nvidia_linux.c +257 -0
- package/src/macos/amd_mac.c +131 -0
- package/src/macos/intel_mac.c +131 -0
- package/src/macos/nvidia_mac.c +21 -0
- package/src/vendor/amd.c +37 -0
- package/src/vendor/intel.c +37 -0
- package/src/vendor/nvidia.c +37 -0
- package/src/windows/amd_windows.c +468 -0
- package/src/windows/intel_windows.c +157 -0
- package/src/windows/nvidia_windows.c +252 -0
|
@@ -0,0 +1,578 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright (c) 2023 - 2025 Advanced Micro Devices, Inc. All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
//-------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
#ifndef ADLX_MULTIMEDIA_H
|
|
7
|
+
#define ADLX_MULTIMEDIA_H
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include "ADLXStructures.h"
|
|
11
|
+
#include "IChangedEvent.h"
|
|
12
|
+
|
|
13
|
+
#pragma region IADLXVideoUpscale
|
|
14
|
+
#if defined (__cplusplus)
|
|
15
|
+
namespace adlx
|
|
16
|
+
{
|
|
17
|
+
class ADLX_NO_VTABLE IADLXVideoUpscale : public IADLXInterface
|
|
18
|
+
{
|
|
19
|
+
public:
|
|
20
|
+
ADLX_DECLARE_IID(L"IADLXVideoUpscale")
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
*@page DOX_IADLXVideoUpscale_IsSupported IsSupported
|
|
24
|
+
*@ENG_START_DOX @brief Checks if video upscale is supported on a GPU. @ENG_END_DOX
|
|
25
|
+
*
|
|
26
|
+
*@syntax
|
|
27
|
+
*@codeStart
|
|
28
|
+
* @ref ADLX_RESULT IsSupported (adlx_bool* supported)
|
|
29
|
+
*@codeEnd
|
|
30
|
+
*
|
|
31
|
+
*@params
|
|
32
|
+
* @paramrow{1.,[out],supported,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of video upscale is returned. The variable is __true__ if video upscale is supported. The variable is __false__ if video upscale is not supported. @ENG_END_DOX}
|
|
33
|
+
*
|
|
34
|
+
*@retvalues
|
|
35
|
+
*@ENG_START_DOX If the state of video upscale is successfully returned, __ADLX_OK__ is returned.<br>
|
|
36
|
+
* If the state of video upscale is not successfully returned, an error code is returned.<br>
|
|
37
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
38
|
+
*
|
|
39
|
+
*@addinfo
|
|
40
|
+
*@ENG_START_DOX
|
|
41
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
42
|
+
*@ENG_END_DOX
|
|
43
|
+
*
|
|
44
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
45
|
+
*
|
|
46
|
+
*/
|
|
47
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
*@page DOX_IADLXVideoUpscale_IsEnabled IsEnabled
|
|
51
|
+
*@ENG_START_DOX @brief Checks if video upscale is enabled on a GPU. @ENG_END_DOX
|
|
52
|
+
*
|
|
53
|
+
*@syntax
|
|
54
|
+
*@codeStart
|
|
55
|
+
* @ref ADLX_RESULT IsEnabled (adlx_bool* enabled)
|
|
56
|
+
*@codeEnd
|
|
57
|
+
*
|
|
58
|
+
*@params
|
|
59
|
+
* @paramrow{1.,[out],enabled,adlx_bool*,@ENG_START_DOX The pointer to a variable where the state of video upscale is returned. The variable is __true__ if video upscale is enabled. The variable is __false__ if video upscale is not enabled. @ENG_END_DOX}
|
|
60
|
+
*
|
|
61
|
+
*@retvalues
|
|
62
|
+
*@ENG_START_DOX If the state of video upscale is successfully returned, __ADLX_OK__ is returned.<br>
|
|
63
|
+
* If the state of video upscale is not successfully returned, an error code is returned.<br>
|
|
64
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
65
|
+
*
|
|
66
|
+
* @addinfo
|
|
67
|
+
*@ENG_START_DOX
|
|
68
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
69
|
+
*@ENG_END_DOX
|
|
70
|
+
*
|
|
71
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
74
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsEnabled (adlx_bool* isEnabled) = 0;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
*@page DOX_IADLXVideoUpscale_GetSharpnessRange GetSharpnessRange
|
|
78
|
+
*@ENG_START_DOX @brief Gets the maximum sharpness, minimum sharpness, and step sharpness of video upscale on a GPU. @ENG_END_DOX
|
|
79
|
+
*
|
|
80
|
+
*@syntax
|
|
81
|
+
*@codeStart
|
|
82
|
+
* @ref ADLX_RESULT GetSharpnessRange (@ref ADLX_IntRange* range)
|
|
83
|
+
*@codeEnd
|
|
84
|
+
*
|
|
85
|
+
*@params
|
|
86
|
+
* @paramrow{1.,[out],range,@ref ADLX_IntRange*,@ENG_START_DOX The pointer to a variable where the sharpness range of video upscale is returned. @ENG_END_DOX}
|
|
87
|
+
*
|
|
88
|
+
*@retvalues
|
|
89
|
+
*@ENG_START_DOX If the sharpness range is successfully returned, __ADLX_OK__ is returned.<br>
|
|
90
|
+
* If the sharpness range is not successfully returned, an error code is returned.<br>
|
|
91
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
92
|
+
*
|
|
93
|
+
*@detaileddesc
|
|
94
|
+
*@ENG_START_DOX @details The maximum sharpness, minimum sharpness, and step sharpness of video upscale are read only. @ENG_END_DOX
|
|
95
|
+
*
|
|
96
|
+
* @addinfo
|
|
97
|
+
*@ENG_START_DOX
|
|
98
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
99
|
+
*@ENG_END_DOX
|
|
100
|
+
*
|
|
101
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
102
|
+
*
|
|
103
|
+
*/
|
|
104
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetSharpnessRange(ADLX_IntRange* range) = 0;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
*@page DOX_IADLXVideoUpscale_GetSharpness GetSharpness
|
|
108
|
+
*@ENG_START_DOX @brief Gets the current minimum sharpness of video upscale on a GPU. @ENG_END_DOX
|
|
109
|
+
*
|
|
110
|
+
*@syntax
|
|
111
|
+
*@codeStart
|
|
112
|
+
* @ref ADLX_RESULT GetSharpness (adlx_int* currentMinRes)
|
|
113
|
+
*@codeEnd
|
|
114
|
+
*
|
|
115
|
+
*@params
|
|
116
|
+
* @paramrow{1.,[out],currentMinRes,adlx_int*,@ENG_START_DOX The pointer to a variable where the current minimum sharpness of video upscale is returned. @ENG_END_DOX}
|
|
117
|
+
*
|
|
118
|
+
*@retvalues
|
|
119
|
+
*@ENG_START_DOX If the current minimum sharpness is successfully returned, __ADLX_OK__ is returned.<br>
|
|
120
|
+
* If the current minimum sharpness is not successfully returned, an error code is returned.<br>
|
|
121
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
122
|
+
*
|
|
123
|
+
*@addinfo
|
|
124
|
+
*@ENG_START_DOX
|
|
125
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
126
|
+
*@ENG_END_DOX
|
|
127
|
+
*
|
|
128
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
129
|
+
*
|
|
130
|
+
*/
|
|
131
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetSharpness(adlx_int* currentMinRes) = 0;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
*@page DOX_IADLXVideoUpscale_SetEnabled SetEnabled
|
|
135
|
+
*@ENG_START_DOX @brief Sets video upscale to enabled or disabled on a GPU. @ENG_END_DOX
|
|
136
|
+
*
|
|
137
|
+
*@syntax
|
|
138
|
+
*@codeStart
|
|
139
|
+
* @ref ADLX_RESULT SetEnabled (adlx_bool enable)
|
|
140
|
+
*@codeEnd
|
|
141
|
+
*
|
|
142
|
+
*@params
|
|
143
|
+
* @paramrow{1.,[in],enable,adlx_bool,@ENG_START_DOX The new video upscale state. Set __true__ to enable video upscale. Set __false__ to disable video upscale. @ENG_END_DOX}
|
|
144
|
+
*
|
|
145
|
+
*@retvalues
|
|
146
|
+
*@ENG_START_DOX If the state of video upscale is successfully set, __ADLX_OK__ is returned.<br>
|
|
147
|
+
* If the state of video upscale is not successfully set, an error code is returned.<br>
|
|
148
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
149
|
+
*
|
|
150
|
+
* @addinfo
|
|
151
|
+
*@ENG_START_DOX
|
|
152
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
153
|
+
*@ENG_END_DOX
|
|
154
|
+
*
|
|
155
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
156
|
+
*
|
|
157
|
+
*/
|
|
158
|
+
virtual ADLX_RESULT ADLX_STD_CALL SetEnabled(adlx_bool enable) = 0;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
*@page DOX_IADLXVideoUpscale_SetSharpness SetSharpness
|
|
162
|
+
*@ENG_START_DOX @brief Sets the minimum sharpness of video upscale on a GPU. @ENG_END_DOX
|
|
163
|
+
*
|
|
164
|
+
*@syntax
|
|
165
|
+
*@codeStart
|
|
166
|
+
* @ref ADLX_RESULT SetSharpness (adlx_int minRes)
|
|
167
|
+
*@codeEnd
|
|
168
|
+
*
|
|
169
|
+
*@params
|
|
170
|
+
* @paramrow{1.,[in],minRes,adlx_int,@ENG_START_DOX The new minimum sharpness of video upscale. @ENG_END_DOX}
|
|
171
|
+
*
|
|
172
|
+
*@retvalues
|
|
173
|
+
*@ENG_START_DOX If the minimum sharpness is successfully set, __ADLX_OK__ is returned.<br>
|
|
174
|
+
* If the minimum sharpness is not successfully set, an error code is returned.<br>
|
|
175
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
176
|
+
*
|
|
177
|
+
* @addinfo
|
|
178
|
+
*@ENG_START_DOX
|
|
179
|
+
*Video upscale improves video playback quality by applying sharpening on the upscaled video.
|
|
180
|
+
*@ENG_END_DOX
|
|
181
|
+
*
|
|
182
|
+
*@copydoc IADLXVideoUpscale_REQ_TABLE
|
|
183
|
+
*
|
|
184
|
+
*/
|
|
185
|
+
virtual ADLX_RESULT ADLX_STD_CALL SetSharpness(adlx_int minSharp) = 0;
|
|
186
|
+
|
|
187
|
+
}; //IADLXVideoUpscale
|
|
188
|
+
//----------------------------------------------------------------------------------------------
|
|
189
|
+
typedef IADLXInterfacePtr_T<IADLXVideoUpscale> IADLXVideoUpscalePtr;
|
|
190
|
+
} //namespace adlx
|
|
191
|
+
#else //__cplusplus
|
|
192
|
+
ADLX_DECLARE_IID(IADLXVideoUpscale, L"IADLXVideoUpscale")
|
|
193
|
+
typedef struct IADLXVideoUpscale IADLXVideoUpscale;
|
|
194
|
+
typedef struct IADLXVideoUpscaleVtbl
|
|
195
|
+
{
|
|
196
|
+
//IADLXInterface
|
|
197
|
+
adlx_long(ADLX_STD_CALL* Acquire)(IADLXVideoUpscale* pThis);
|
|
198
|
+
adlx_long(ADLX_STD_CALL* Release)(IADLXVideoUpscale* pThis);
|
|
199
|
+
ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXVideoUpscale* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
200
|
+
|
|
201
|
+
//IADLXVideoUpscale
|
|
202
|
+
ADLX_RESULT(ADLX_STD_CALL* IsSupported) (IADLXVideoUpscale* pThis, adlx_bool* supported);
|
|
203
|
+
ADLX_RESULT(ADLX_STD_CALL* IsEnabled) (IADLXVideoUpscale* pThis, adlx_bool* isEnabled);
|
|
204
|
+
ADLX_RESULT(ADLX_STD_CALL* GetSharpnessRange) (IADLXVideoUpscale* pThis, ADLX_IntRange* range);
|
|
205
|
+
ADLX_RESULT(ADLX_STD_CALL* GetSharpness) (IADLXVideoUpscale* pThis, adlx_int* currentMinRes);
|
|
206
|
+
ADLX_RESULT(ADLX_STD_CALL* SetEnabled) (IADLXVideoUpscale* pThis, adlx_bool enable);
|
|
207
|
+
ADLX_RESULT(ADLX_STD_CALL* SetSharpness) (IADLXVideoUpscale* pThis, adlx_int minSharp);
|
|
208
|
+
|
|
209
|
+
}IADLXVideoUpscaleVtbl;
|
|
210
|
+
|
|
211
|
+
struct IADLXVideoUpscale { const IADLXVideoUpscaleVtbl* pVtbl; };
|
|
212
|
+
#endif //__cplusplus
|
|
213
|
+
#pragma endregion IADLXVideoUpscale
|
|
214
|
+
|
|
215
|
+
#pragma region IADLXVideoSuperResolution
|
|
216
|
+
#if defined (__cplusplus)
|
|
217
|
+
namespace adlx
|
|
218
|
+
{
|
|
219
|
+
class ADLX_NO_VTABLE IADLXVideoSuperResolution : public IADLXInterface
|
|
220
|
+
{
|
|
221
|
+
public:
|
|
222
|
+
ADLX_DECLARE_IID(L"IADLXVideoSuperResolution")
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsSupported(adlx_bool* supported) = 0;
|
|
226
|
+
virtual ADLX_RESULT ADLX_STD_CALL IsEnabled(adlx_bool* isEnabled) = 0;
|
|
227
|
+
virtual ADLX_RESULT ADLX_STD_CALL SetEnabled(adlx_bool enable) = 0;
|
|
228
|
+
|
|
229
|
+
}; //IADLXVideoSuperResolution
|
|
230
|
+
//----------------------------------------------------------------------------------------------
|
|
231
|
+
typedef IADLXInterfacePtr_T<IADLXVideoSuperResolution> IADLXVideoSuperResolutionPtr;
|
|
232
|
+
} //namespace adlx
|
|
233
|
+
#else //__cplusplus
|
|
234
|
+
ADLX_DECLARE_IID(IADLXVideoSuperResolution, L"IADLXVideoSuperResolution")
|
|
235
|
+
typedef struct IADLXVideoSuperResolution IADLXVideoSuperResolution;
|
|
236
|
+
typedef struct IADLXVideoSuperResolutionVtbl
|
|
237
|
+
{
|
|
238
|
+
//IADLXInterface
|
|
239
|
+
adlx_long(ADLX_STD_CALL* Acquire)(IADLXVideoSuperResolution* pThis);
|
|
240
|
+
adlx_long(ADLX_STD_CALL* Release)(IADLXVideoSuperResolution* pThis);
|
|
241
|
+
ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXVideoSuperResolution* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
242
|
+
|
|
243
|
+
//IADLXVideoSuperResolution
|
|
244
|
+
ADLX_RESULT(ADLX_STD_CALL* IsSupported) (IADLXVideoSuperResolution* pThis, adlx_bool* supported);
|
|
245
|
+
ADLX_RESULT(ADLX_STD_CALL* IsEnabled) (IADLXVideoSuperResolution* pThis, adlx_bool* isEnabled);
|
|
246
|
+
ADLX_RESULT(ADLX_STD_CALL* SetEnabled) (IADLXVideoSuperResolution* pThis, adlx_bool enable);
|
|
247
|
+
|
|
248
|
+
}IADLXVideoSuperResolutionVtbl;
|
|
249
|
+
|
|
250
|
+
struct IADLXVideoSuperResolution { const IADLXVideoSuperResolutionVtbl* pVtbl; };
|
|
251
|
+
#endif //__cplusplus
|
|
252
|
+
#pragma endregion IADLXVideoSuperResolution
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
#pragma region IADLXMultimediaChangedEvent
|
|
256
|
+
#if defined (__cplusplus)
|
|
257
|
+
namespace adlx
|
|
258
|
+
{
|
|
259
|
+
class ADLX_NO_VTABLE IADLXGPU;
|
|
260
|
+
|
|
261
|
+
class ADLX_NO_VTABLE IADLXMultimediaChangedEvent : public IADLXChangedEvent
|
|
262
|
+
{
|
|
263
|
+
public:
|
|
264
|
+
ADLX_DECLARE_IID(L"IADLXMultimediaChangedEvent")
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
*@page DOX_IADLXMultimediaChangedEvent_GetGPU GetGPU
|
|
268
|
+
*@ENG_START_DOX @brief Gets the reference-counted GPU interface on which multimedia settings are changed. @ENG_END_DOX
|
|
269
|
+
*
|
|
270
|
+
*@syntax
|
|
271
|
+
*@codeStart
|
|
272
|
+
* @ref ADLX_RESULT GetGPU (@ref DOX_IADLXGPU **ppGPU)
|
|
273
|
+
*@codeEnd
|
|
274
|
+
*
|
|
275
|
+
*@params
|
|
276
|
+
*@paramrow{1.,[out] ,ppGPU,@ref DOX_IADLXGPU** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppGPU__ to __nullptr__. @ENG_END_DOX}
|
|
277
|
+
*
|
|
278
|
+
*
|
|
279
|
+
*@retvalues
|
|
280
|
+
*@ENG_START_DOX If the GPU interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
281
|
+
* If the GPU interface is not successfully returned, an error code is returned.<br>
|
|
282
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
283
|
+
*
|
|
284
|
+
*@detaileddesc
|
|
285
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
286
|
+
*
|
|
287
|
+
*@addinfo
|
|
288
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. <br>
|
|
289
|
+
* __Note:__ @ref DOX_IADLXMultimediaChangedEvent_GetGPU returns the reference counted GPU used by all the methods in this interface to check if there are any changes in multimedia settings.
|
|
290
|
+
@ENG_END_DOX
|
|
291
|
+
*
|
|
292
|
+
*
|
|
293
|
+
*@copydoc IADLXMultimediaChangedEvent_REQ_TABLE
|
|
294
|
+
*
|
|
295
|
+
*/
|
|
296
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetGPU(IADLXGPU** ppGPU) = 0;
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
*@page DOX_IADLXMultimediaChangedEvent_IsVideoUpscaleChanged IsVideoUpscaleChanged
|
|
300
|
+
*@ENG_START_DOX @brief Checks for changes to the video upscale settings. @ENG_END_DOX
|
|
301
|
+
*
|
|
302
|
+
*@syntax
|
|
303
|
+
*@codeStart
|
|
304
|
+
* adlx_bool IsVideoUpscaleChanged ()
|
|
305
|
+
*@codeEnd
|
|
306
|
+
*
|
|
307
|
+
*@params
|
|
308
|
+
*N/A
|
|
309
|
+
*
|
|
310
|
+
*@retvalues
|
|
311
|
+
*@ENG_START_DOX If there are any changes to the video upscale settings, __true__ is returned.<br>
|
|
312
|
+
* If there are no changes to the video upscale settings, __false__ is returned.<br> @ENG_END_DOX
|
|
313
|
+
*
|
|
314
|
+
*@addinfo
|
|
315
|
+
*@ENG_START_DOX
|
|
316
|
+
* __Note:__ To obtain the GPU, use @ref DOX_IADLXMultimediaChangedEvent_GetGPU.
|
|
317
|
+
* @ENG_END_DOX
|
|
318
|
+
*
|
|
319
|
+
*@copydoc IADLXMultimediaChangedEvent_REQ_TABLE
|
|
320
|
+
*
|
|
321
|
+
*/
|
|
322
|
+
virtual adlx_bool ADLX_STD_CALL IsVideoUpscaleChanged() = 0;
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
virtual adlx_bool ADLX_STD_CALL IsVideoSuperResolutionChanged() = 0;
|
|
326
|
+
|
|
327
|
+
}; //IADLXMultimediaChangedEvent
|
|
328
|
+
//----------------------------------------------------------------------------------------------
|
|
329
|
+
typedef IADLXInterfacePtr_T<IADLXMultimediaChangedEvent> IADLXMultimediaChangedEventPtr;
|
|
330
|
+
} //namespace adlx
|
|
331
|
+
#else //__cplusplus
|
|
332
|
+
ADLX_DECLARE_IID(IADLXMultimediaChangedEvent, L"IADLXMultimediaChangedEvent")
|
|
333
|
+
typedef struct IADLXMultimediaChangedEvent IADLXMultimediaChangedEvent;
|
|
334
|
+
typedef struct IADLXMultimediaChangedEventVtbl
|
|
335
|
+
{
|
|
336
|
+
//IADLXInterface
|
|
337
|
+
adlx_long(ADLX_STD_CALL* Acquire)(IADLXMultimediaChangedEvent* pThis);
|
|
338
|
+
adlx_long(ADLX_STD_CALL* Release)(IADLXMultimediaChangedEvent* pThis);
|
|
339
|
+
ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXMultimediaChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
340
|
+
|
|
341
|
+
//IADLXChangedEvent
|
|
342
|
+
ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXMultimediaChangedEvent* pThis);
|
|
343
|
+
|
|
344
|
+
//IADLXMultimediaChangedEvent interface
|
|
345
|
+
ADLX_RESULT(ADLX_STD_CALL* GetGPU)(IADLXMultimediaChangedEvent* pThis, IADLXGPU** ppGPU);
|
|
346
|
+
adlx_bool (ADLX_STD_CALL* IsVideoUpscaleChanged)(IADLXMultimediaChangedEvent* pThis);
|
|
347
|
+
adlx_bool (ADLX_STD_CALL* IsVideoSuperResolutionChanged)(IADLXMultimediaChangedEvent* pThis);
|
|
348
|
+
|
|
349
|
+
}IADLXMultimediaChangedEventVtbl;
|
|
350
|
+
struct IADLXMultimediaChangedEvent { const IADLXMultimediaChangedEventVtbl* pVtbl; };
|
|
351
|
+
#endif //__cplusplus
|
|
352
|
+
#pragma endregion IADLXMultimediaChangedEvent
|
|
353
|
+
|
|
354
|
+
#pragma region IADLXMultimediaChangedEventListener
|
|
355
|
+
#if defined (__cplusplus)
|
|
356
|
+
namespace adlx
|
|
357
|
+
{
|
|
358
|
+
class ADLX_NO_VTABLE IADLXMultimediaChangedEventListener
|
|
359
|
+
{
|
|
360
|
+
public:
|
|
361
|
+
/**
|
|
362
|
+
*@page DOX_IADLXMultimediaChangedEventListener_OnMultimediaChanged OnMultimediaChanged
|
|
363
|
+
*@ENG_START_DOX @brief __OnMultimediaChanged__ is called by ADLX when multimedia settings change. @ENG_END_DOX
|
|
364
|
+
*
|
|
365
|
+
*@syntax
|
|
366
|
+
*@codeStart
|
|
367
|
+
* adlx_bool OnMultimediaChanged (@ref DOX_IADLXMultimediaChangedEvent* pMultimediaChangedEvent)
|
|
368
|
+
*@codeEnd
|
|
369
|
+
*
|
|
370
|
+
*@params
|
|
371
|
+
*@paramrow{1.,[in] ,pMultimediaChangedEvent,@ref DOX_IADLXMultimediaChangedEvent* ,@ENG_START_DOX The pointer to a multimedia settings change event. @ENG_END_DOX}
|
|
372
|
+
*
|
|
373
|
+
*@retvalues
|
|
374
|
+
*@ENG_START_DOX If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
|
|
375
|
+
* If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
|
|
376
|
+
*
|
|
377
|
+
*@detaileddesc
|
|
378
|
+
*@ENG_START_DOX Once the application registers to the notifications with @ref DOX_IADLXMultimediaChangedHandling_AddMultimediaEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXMultimediaChangedHandling_RemoveMultimediaEventListener.
|
|
379
|
+
* The method should return quickly to not block the execution path in ADLX. If the method requires a long processing of the event notification, the application must hold onto a reference to the multimedia settings change event with @ref DOX_IADLXInterface_Acquire and make it available on an asynchronous thread and return immediately. When the asynchronous thread is done processing it must discard the multimedia settings change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
|
|
380
|
+
*
|
|
381
|
+
*@copydoc IADLXMultimediaChangedEventListener_REQ_TABLE
|
|
382
|
+
*
|
|
383
|
+
*/
|
|
384
|
+
virtual adlx_bool ADLX_STD_CALL OnMultimediaChanged(IADLXMultimediaChangedEvent* pMultimediaChangedEvent) = 0;
|
|
385
|
+
}; //IADLXMultimediaChangedEventListener
|
|
386
|
+
} //namespace adlx
|
|
387
|
+
#else //__cplusplus
|
|
388
|
+
typedef struct IADLXMultimediaChangedEventListener IADLXMultimediaChangedEventListener;
|
|
389
|
+
typedef struct IADLXMultimediaChangedEventListenerVtbl
|
|
390
|
+
{
|
|
391
|
+
adlx_bool(ADLX_STD_CALL* OnMultimediaChanged)(IADLXMultimediaChangedEventListener* pThis, IADLXMultimediaChangedEvent* pMultimediaChangedEvent);
|
|
392
|
+
} IADLXMultimediaChangedEventListenerVtbl;
|
|
393
|
+
struct IADLXMultimediaChangedEventListener { const IADLXMultimediaChangedEventListenerVtbl* pVtbl; };
|
|
394
|
+
#endif //__cplusplus
|
|
395
|
+
#pragma endregion IADLXMultimediaChangedEventListener
|
|
396
|
+
|
|
397
|
+
#pragma region IADLXMultimediaChangedHandling
|
|
398
|
+
#if defined (__cplusplus)
|
|
399
|
+
namespace adlx
|
|
400
|
+
{
|
|
401
|
+
class ADLX_NO_VTABLE IADLXMultimediaChangedHandling : public IADLXInterface
|
|
402
|
+
{
|
|
403
|
+
public:
|
|
404
|
+
ADLX_DECLARE_IID(L"IADLXMultimediaChangedHandling")
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
*@page DOX_IADLXMultimediaChangedHandling_AddMultimediaEventListener AddMultimediaEventListener
|
|
408
|
+
*@ENG_START_DOX @brief Registers an event listener for notifications whenever multimedia settings are changed. @ENG_END_DOX
|
|
409
|
+
*
|
|
410
|
+
*@syntax
|
|
411
|
+
*@codeStart
|
|
412
|
+
* @ref ADLX_RESULT AddMultimediaEventListener (@ref DOX_IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener)
|
|
413
|
+
*@codeEnd
|
|
414
|
+
*
|
|
415
|
+
*@params
|
|
416
|
+
*@paramrow{1.,[in] ,pMultimediaChangedEventListener,@ref DOX_IADLXMultimediaChangedEventListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving multimedia settings change notifications. @ENG_END_DOX}
|
|
417
|
+
*
|
|
418
|
+
*@retvalues
|
|
419
|
+
*@ENG_START_DOX If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
|
|
420
|
+
* If the event listener is not successfully registered, an error code is returned.<br>
|
|
421
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
422
|
+
*
|
|
423
|
+
*@detaileddesc
|
|
424
|
+
*@ENG_START_DOX Once the event listener is successfully registered, ADLX calls the @ref DOX_IADLXMultimediaChangedEventListener_OnMultimediaChanged listener method whenever multimedia settings are changed.<br>
|
|
425
|
+
* The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXMultimediaChangedHandling_RemoveMultimediaEventListener.<br> @ENG_END_DOX
|
|
426
|
+
*
|
|
427
|
+
*@copydoc IADLXMultimediaChangedHandling_REQ_TABLE
|
|
428
|
+
*
|
|
429
|
+
*/
|
|
430
|
+
virtual ADLX_RESULT ADLX_STD_CALL AddMultimediaEventListener(IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener) = 0;
|
|
431
|
+
|
|
432
|
+
/**
|
|
433
|
+
*@page DOX_IADLXMultimediaChangedHandling_RemoveMultimediaEventListener RemoveMultimediaEventListener
|
|
434
|
+
*@ENG_START_DOX @brief Unregisters an event listener from the multimedia settings event list. @ENG_END_DOX
|
|
435
|
+
*
|
|
436
|
+
*@syntax
|
|
437
|
+
*@codeStart
|
|
438
|
+
* @ref ADLX_RESULT RemoveMultimediaEventListener (@ref DOX_IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener)
|
|
439
|
+
*@codeEnd
|
|
440
|
+
*
|
|
441
|
+
*@params
|
|
442
|
+
*@paramrow{1.,[in] ,pMultimediaChangedEventListener,@ref DOX_IADLXMultimediaChangedEventListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving multimedia settings change notifications. @ENG_END_DOX}
|
|
443
|
+
*
|
|
444
|
+
*@retvalues
|
|
445
|
+
*@ENG_START_DOX If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
|
|
446
|
+
* If the event listener is not successfully unregistered, an error code is returned.<br>
|
|
447
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
448
|
+
*
|
|
449
|
+
*@detaileddesc
|
|
450
|
+
*@ENG_START_DOX Once the event listener is successfully unregistered, ADLX will no longer call the @ref DOX_IADLXMultimediaChangedEventListener_OnMultimediaChanged listener method when multimedia settings are changed.
|
|
451
|
+
* The application can discard the event listener instance. @ENG_END_DOX
|
|
452
|
+
*
|
|
453
|
+
*@copydoc IADLXMultimediaChangedHandling_REQ_TABLE
|
|
454
|
+
*
|
|
455
|
+
*/
|
|
456
|
+
virtual ADLX_RESULT ADLX_STD_CALL RemoveMultimediaEventListener(IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener) = 0;
|
|
457
|
+
}; //IADLXMultimediaChangedHandling
|
|
458
|
+
//----------------------------------------------------------------------------------------------
|
|
459
|
+
typedef IADLXInterfacePtr_T<IADLXMultimediaChangedHandling> IADLXMultimediaChangedHandlingPtr;
|
|
460
|
+
} //namespace adlx
|
|
461
|
+
#else //__cplusplus
|
|
462
|
+
ADLX_DECLARE_IID(IADLXMultimediaChangedHandling, L"IADLXMultimediaChangedHandling")
|
|
463
|
+
typedef struct IADLXMultimediaChangedHandling IADLXMultimediaChangedHandling;
|
|
464
|
+
typedef struct IADLXMultimediaChangedHandlingVtbl
|
|
465
|
+
{
|
|
466
|
+
//IADLXInterface
|
|
467
|
+
adlx_long(ADLX_STD_CALL* Acquire)(IADLXMultimediaChangedHandling* pThis);
|
|
468
|
+
adlx_long(ADLX_STD_CALL* Release)(IADLXMultimediaChangedHandling* pThis);
|
|
469
|
+
ADLX_RESULT(ADLX_STD_CALL* QueryInterface)(IADLXMultimediaChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
470
|
+
|
|
471
|
+
//IADLXMultimediaChangedHandling
|
|
472
|
+
ADLX_RESULT(ADLX_STD_CALL* AddMultimediaEventListener)(IADLXMultimediaChangedHandling* pThis, IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener);
|
|
473
|
+
ADLX_RESULT(ADLX_STD_CALL* RemoveMultimediaEventListener)(IADLXMultimediaChangedHandling* pThis, IADLXMultimediaChangedEventListener* pMultimediaChangedEventListener);
|
|
474
|
+
} IADLXMultimediaChangedHandlingVtbl;
|
|
475
|
+
struct IADLXMultimediaChangedHandling { const IADLXMultimediaChangedHandlingVtbl* pVtbl; };
|
|
476
|
+
#endif //__cplusplus
|
|
477
|
+
#pragma endregion IADLXMultimediaChangedHandling
|
|
478
|
+
|
|
479
|
+
#pragma region IADLXMultimediaServices
|
|
480
|
+
#if defined (__cplusplus)
|
|
481
|
+
namespace adlx
|
|
482
|
+
{
|
|
483
|
+
class ADLX_NO_VTABLE IADLXGPU;
|
|
484
|
+
|
|
485
|
+
class ADLX_NO_VTABLE IADLXMultimediaServices : public IADLXInterface
|
|
486
|
+
{
|
|
487
|
+
public:
|
|
488
|
+
ADLX_DECLARE_IID(L"IADLXMultimediaServices")
|
|
489
|
+
|
|
490
|
+
/**
|
|
491
|
+
*@page DOX_IADLXMultimediaServices_GetMultimediaChangedHandling GetMultimediaChangedHandling
|
|
492
|
+
*@ENG_START_DOX @brief Gets the reference counted interface that allows registering and unregistering for notifications when multimedia settings change. @ENG_END_DOX
|
|
493
|
+
*
|
|
494
|
+
*@syntax
|
|
495
|
+
*@codeStart
|
|
496
|
+
* @ref ADLX_RESULT GetMultimediaChangedHandling (@ref DOX_IADLXMultimediaChangedHandling** ppMultimediaChangedHandling)
|
|
497
|
+
*@codeEnd
|
|
498
|
+
*
|
|
499
|
+
*@params
|
|
500
|
+
*@paramrow{1.,[out] ,ppMultimediaChangedHandling,@ref DOX_IADLXMultimediaChangedHandling** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppMultimediaChangedHandling__ to __nullptr__. @ENG_END_DOX}
|
|
501
|
+
*
|
|
502
|
+
*@retvalues
|
|
503
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
504
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
505
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
506
|
+
*
|
|
507
|
+
*@detaileddesc
|
|
508
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
509
|
+
*
|
|
510
|
+
*@addinfo
|
|
511
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
512
|
+
*
|
|
513
|
+
*@copydoc IADLXMultimediaServices_REQ_TABLE
|
|
514
|
+
*
|
|
515
|
+
*/
|
|
516
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetMultimediaChangedHandling(IADLXMultimediaChangedHandling** ppMultimediaChangedHandling) = 0;
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
*@page DOX_IADLXMultimediaServices_GetVideoUpscale GetVideoUpscale
|
|
520
|
+
*@ENG_START_DOX @brief Gets the reference-counted video upscale interface of a GPU. @ENG_END_DOX
|
|
521
|
+
*
|
|
522
|
+
*@syntax
|
|
523
|
+
*@codeStart
|
|
524
|
+
* @ref ADLX_RESULT GetVideoUpscale (@ref DOX_IADLXGPU* pGPU, @ref DOX_IADLXVideoUpscale** ppVideoupscale)
|
|
525
|
+
*@codeEnd
|
|
526
|
+
*
|
|
527
|
+
*@params
|
|
528
|
+
*@paramrow{1.,[in] ,pGPU,@ref DOX_IADLXGPU* ,@ENG_START_DOX The pointer to the GPU interface. @ENG_END_DOX}
|
|
529
|
+
*@paramrow{2.,[out] ,ppVideoupscale,@ref DOX_IADLXVideoUpscale** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned\, the method sets the dereferenced address __*ppVideoupscale__ to __nullptr__. @ENG_END_DOX}
|
|
530
|
+
*
|
|
531
|
+
*@retvalues
|
|
532
|
+
*@ENG_START_DOX If the interface is successfully returned, __ADLX_OK__ is returned.<br>
|
|
533
|
+
* If the interface is not successfully returned, an error code is returned.<br>
|
|
534
|
+
* Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
|
|
535
|
+
*
|
|
536
|
+
*@detaileddesc
|
|
537
|
+
*@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
|
|
538
|
+
*
|
|
539
|
+
*@addinfo
|
|
540
|
+
*@ENG_START_DOX In C++, when using ADLX interfaces as smart pointers, there is no need to call @ref DOX_IADLXInterface_Release because smart pointers call it in their internal implementation. @ENG_END_DOX
|
|
541
|
+
*
|
|
542
|
+
*@copydoc IADLXMultimediaServices_REQ_TABLE
|
|
543
|
+
*
|
|
544
|
+
*/
|
|
545
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetVideoUpscale(IADLXGPU* pGPU, IADLXVideoUpscale** ppVideoupscale) = 0;
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
virtual ADLX_RESULT ADLX_STD_CALL GetVideoSuperResolution(IADLXGPU* pGPU, IADLXVideoSuperResolution** ppVideoSuperResolution) = 0;
|
|
549
|
+
|
|
550
|
+
}; //IADLXPowerTuningServices
|
|
551
|
+
//----------------------------------------------------------------------------------------------
|
|
552
|
+
typedef IADLXInterfacePtr_T<IADLXMultimediaServices> IADLXMultimediaServicesPtr;
|
|
553
|
+
} //namespace adlx
|
|
554
|
+
#else //__cplusplus
|
|
555
|
+
ADLX_DECLARE_IID (IADLXMultimediaServices, L"IADLXMultimediaServices")
|
|
556
|
+
typedef struct IADLXMultimediaServices IADLXMultimediaServices;
|
|
557
|
+
|
|
558
|
+
typedef struct IADLXMultimediaServicesVtbl
|
|
559
|
+
{
|
|
560
|
+
//IADLXInterface
|
|
561
|
+
adlx_long (ADLX_STD_CALL *Acquire)(IADLXMultimediaServices* pThis);
|
|
562
|
+
adlx_long (ADLX_STD_CALL *Release)(IADLXMultimediaServices* pThis);
|
|
563
|
+
ADLX_RESULT (ADLX_STD_CALL *QueryInterface)(IADLXMultimediaServices* pThis, const wchar_t* interfaceId, void** ppInterface);
|
|
564
|
+
|
|
565
|
+
//IADLXMultimediaServices
|
|
566
|
+
ADLX_RESULT(ADLX_STD_CALL* GetMultimediaChangedHandling)(IADLXMultimediaServices* pThis, IADLXMultimediaChangedHandling** ppMultimediaChangedHandling);
|
|
567
|
+
ADLX_RESULT(ADLX_STD_CALL* GetVideoUpscale)(IADLXMultimediaServices* pThis, IADLXGPU* pGPU, IADLXVideoUpscale** ppVideoUpscale);
|
|
568
|
+
ADLX_RESULT(ADLX_STD_CALL* GetVideoSuperResolution)(IADLXMultimediaServices* pThis, IADLXGPU* pGPU, IADLXVideoSuperResolution** ppVideoSuperResolution);
|
|
569
|
+
|
|
570
|
+
}IADLXMultimediaServicesVtbl;
|
|
571
|
+
|
|
572
|
+
struct IADLXMultimediaServices { const IADLXMultimediaServicesVtbl *pVtbl; };
|
|
573
|
+
|
|
574
|
+
#endif //__cplusplus
|
|
575
|
+
#pragma endregion IADLXMultimediaServices
|
|
576
|
+
|
|
577
|
+
|
|
578
|
+
#endif //ADLX_MULTIMEDIA_H
|