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.
Files changed (71) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +336 -0
  3. package/binding.gyp +69 -0
  4. package/build/Release/gpu.exp +0 -0
  5. package/build/Release/gpu.lib +0 -0
  6. package/build/Release/gpu.node +0 -0
  7. package/build/Release/gpu.pdb +0 -0
  8. package/build/binding.sln +19 -0
  9. package/build/gpu.vcxproj +175 -0
  10. package/build/gpu.vcxproj.filters +169 -0
  11. package/example.js +69 -0
  12. package/index.js +33 -0
  13. package/package.json +68 -0
  14. package/src/binding.cpp +201 -0
  15. package/src/gpu_info.c +130 -0
  16. package/src/gpu_info.h +86 -0
  17. package/src/includes/adlx/ADLX.h +367 -0
  18. package/src/includes/adlx/ADLXDefines.h +1345 -0
  19. package/src/includes/adlx/ADLXHelper/ADLXHelper.c +175 -0
  20. package/src/includes/adlx/ADLXHelper/ADLXHelper.h +245 -0
  21. package/src/includes/adlx/ADLXHelper/WinAPIS.c +64 -0
  22. package/src/includes/adlx/ADLXStructures.h +206 -0
  23. package/src/includes/adlx/ADLXVersion.h +18 -0
  24. package/src/includes/adlx/I3DSettings.h +3476 -0
  25. package/src/includes/adlx/I3DSettings1.h +292 -0
  26. package/src/includes/adlx/I3DSettings2.h +317 -0
  27. package/src/includes/adlx/IApplications.h +397 -0
  28. package/src/includes/adlx/IChangedEvent.h +71 -0
  29. package/src/includes/adlx/ICollections.h +325 -0
  30. package/src/includes/adlx/IDesktops.h +918 -0
  31. package/src/includes/adlx/IDisplay3DLUT.h +663 -0
  32. package/src/includes/adlx/IDisplayGamma.h +683 -0
  33. package/src/includes/adlx/IDisplayGamut.h +760 -0
  34. package/src/includes/adlx/IDisplaySettings.h +3476 -0
  35. package/src/includes/adlx/IDisplays.h +2676 -0
  36. package/src/includes/adlx/IDisplays1.h +191 -0
  37. package/src/includes/adlx/IDisplays2.h +188 -0
  38. package/src/includes/adlx/IDisplays3.h +256 -0
  39. package/src/includes/adlx/IGPUAutoTuning.h +460 -0
  40. package/src/includes/adlx/IGPUManualFanTuning.h +1007 -0
  41. package/src/includes/adlx/IGPUManualGFXTuning.h +607 -0
  42. package/src/includes/adlx/IGPUManualPowerTuning.h +340 -0
  43. package/src/includes/adlx/IGPUManualVRAMTuning.h +576 -0
  44. package/src/includes/adlx/IGPUPresetTuning.h +469 -0
  45. package/src/includes/adlx/IGPUTuning.h +1239 -0
  46. package/src/includes/adlx/IGPUTuning1.h +197 -0
  47. package/src/includes/adlx/II2C.h +198 -0
  48. package/src/includes/adlx/ILog.h +72 -0
  49. package/src/includes/adlx/IMultiMedia.h +578 -0
  50. package/src/includes/adlx/IPerformanceMonitoring.h +2520 -0
  51. package/src/includes/adlx/IPerformanceMonitoring1.h +134 -0
  52. package/src/includes/adlx/IPerformanceMonitoring2.h +341 -0
  53. package/src/includes/adlx/IPerformanceMonitoring3.h +199 -0
  54. package/src/includes/adlx/IPowerTuning.h +473 -0
  55. package/src/includes/adlx/IPowerTuning1.h +515 -0
  56. package/src/includes/adlx/ISmartAccessMemory.h +114 -0
  57. package/src/includes/adlx/ISystem.h +1557 -0
  58. package/src/includes/adlx/ISystem1.h +237 -0
  59. package/src/includes/adlx/ISystem2.h +643 -0
  60. package/src/linux/amd_linux.c +269 -0
  61. package/src/linux/intel_linux.c +20 -0
  62. package/src/linux/nvidia_linux.c +257 -0
  63. package/src/macos/amd_mac.c +131 -0
  64. package/src/macos/intel_mac.c +131 -0
  65. package/src/macos/nvidia_mac.c +21 -0
  66. package/src/vendor/amd.c +37 -0
  67. package/src/vendor/intel.c +37 -0
  68. package/src/vendor/nvidia.c +37 -0
  69. package/src/windows/amd_windows.c +468 -0
  70. package/src/windows/intel_windows.c +157 -0
  71. package/src/windows/nvidia_windows.c +252 -0
@@ -0,0 +1,2676 @@
1
+ //
2
+ // Copyright (c) 2021 - 2025 Advanced Micro Devices, Inc. All rights reserved.
3
+ //
4
+ //-------------------------------------------------------------------------------------------------
5
+
6
+ #ifndef ADLX_IDISPLAYS_H
7
+ #define ADLX_IDISPLAYS_H
8
+ #pragma once
9
+
10
+ #include "ADLXStructures.h"
11
+ #include "ICollections.h"
12
+ #include "IChangedEvent.h"
13
+
14
+ //-------------------------------------------------------------------------------------------------
15
+ //IDisplays.h - Interfaces for ADLX Display Information functionality
16
+
17
+ //Display interface
18
+ #pragma region IADLXDisplay
19
+ #if defined (__cplusplus)
20
+ namespace adlx
21
+ {
22
+ class ADLX_NO_VTABLE IADLXGPU;
23
+ class ADLX_NO_VTABLE IADLXDisplayGamut;
24
+ class ADLX_NO_VTABLE IADLXDisplayGamma;
25
+ class ADLX_NO_VTABLE IADLXDisplay3DLUT;
26
+ class ADLX_NO_VTABLE IADLXDisplayFreeSync;
27
+ class ADLX_NO_VTABLE IADLXDisplayVSR;
28
+ class ADLX_NO_VTABLE IADLXDisplayGPUScaling;
29
+ class ADLX_NO_VTABLE IADLXDisplayScalingMode;
30
+ class ADLX_NO_VTABLE IADLXDisplayIntegerScaling;
31
+ class ADLX_NO_VTABLE IADLXDisplayColorDepth;
32
+ class ADLX_NO_VTABLE IADLXDisplayPixelFormat;
33
+ class ADLX_NO_VTABLE IADLXDisplayCustomColor;
34
+ class ADLX_NO_VTABLE IADLXDisplayHDCP;
35
+ class ADLX_NO_VTABLE IADLXDisplayCustomResolution;
36
+ class ADLX_NO_VTABLE IADLXDisplayVariBright;
37
+ class ADLX_NO_VTABLE IADLXDisplay : public IADLXInterface
38
+ {
39
+ public:
40
+ ADLX_DECLARE_IID (L"IADLXDisplay")
41
+
42
+ /**
43
+ * @page DOX_IADLXDisplay_ManufacturerID ManufacturerID
44
+ * @ENG_START_DOX
45
+ * @brief Gets the manufacturer id of a display.
46
+ * @ENG_END_DOX
47
+ *
48
+ * @syntax
49
+ * @codeStart
50
+ * @ref ADLX_RESULT ManufacturerID (adlx_uint* manufacturerID)
51
+ * @codeEnd
52
+ *
53
+ * @params
54
+ * @paramrow{1.,[out] ,manufacturerID,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the manufacturer id is returned. A valid id is greater than zero. @ENG_END_DOX}
55
+ *
56
+ * @retvalues
57
+ * @ENG_START_DOX
58
+ * If the manufacturer id is successfully returned, __ADLX_OK__ is returned. <br>
59
+ * If the manufacturer id is not successfully returned, an error code is returned. <br>
60
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
61
+ * @ENG_END_DOX
62
+ *
63
+ * @detaileddesc
64
+ * @ENG_START_DOX
65
+ * @details The manufacturer id is a predetermined value programmed into the display at the time of manufacturing. A valid manufacturer id is an integer greater than zero. <br>
66
+ * If zero is returned this means the display manufacturer id is invalid.
67
+ * @ENG_END_DOX
68
+ *
69
+ *
70
+ * @copydoc IADLXDisplay_REQ_TABLE
71
+ *
72
+ */
73
+ virtual ADLX_RESULT ADLX_STD_CALL ManufacturerID (adlx_uint* manufacturerID) const = 0;
74
+
75
+ /**
76
+ * @page DOX_IADLXDisplay_DisplayType DisplayType
77
+ * @ENG_START_DOX
78
+ * @brief Gets the type of a display.
79
+ * @ENG_END_DOX
80
+ *
81
+ * @syntax
82
+ * @codeStart
83
+ * @ref ADLX_RESULT DisplayType (@ref ADLX_DISPLAY_TYPE* displayType)
84
+ * @codeEnd
85
+ *
86
+ * @params
87
+ * @paramrow{1.,[out] ,displayType,@ref ADLX_DISPLAY_TYPE* ,@ENG_START_DOX The pointer to a variable where the display type is returned. @ENG_END_DOX}
88
+ *
89
+ * @retvalues
90
+ * @ENG_START_DOX
91
+ * If the type of this display is successfully returned, __ADLX_OK__ is returned. <br>
92
+ * If the type of this display is not successfully returned, an error code is returned. <br>
93
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
94
+
95
+ * @ENG_END_DOX
96
+ *
97
+ * @detaileddesc
98
+ * @ENG_START_DOX
99
+ * @details The display type can be used to discover if the display is a TV, a Digital Flat Panel, or any other kind of display.
100
+ * @ENG_END_DOX
101
+ *
102
+ * @copydoc IADLXDisplay_REQ_TABLE
103
+ *
104
+ */
105
+ virtual ADLX_RESULT ADLX_STD_CALL DisplayType (ADLX_DISPLAY_TYPE* displayType) const = 0;
106
+
107
+ /**
108
+ * @page DOX_IADLXDisplay_ConnectorType ConnectorType
109
+ * @ENG_START_DOX
110
+ * @brief Gets the connector type of a display.
111
+ * @ENG_END_DOX
112
+ *
113
+ * @syntax
114
+ * @codeStart
115
+ * @ref ADLX_RESULT ConnectorType (@ref ADLX_DISPLAY_CONNECTOR_TYPE* connectType)
116
+ * @codeEnd
117
+ *
118
+ * @params
119
+ * @paramrow{1.,[out] ,connectType,@ref ADLX_DISPLAY_CONNECTOR_TYPE* ,@ENG_START_DOX The pointer to a variable where the connector type is returned. @ENG_END_DOX}
120
+ *
121
+ * @retvalues
122
+ * @ENG_START_DOX
123
+ * If the connector type is successfully returned, __ADLX_OK__ is returned. <br>
124
+ * If the connector type is not successfully returned, an error code is returned. <br>
125
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
126
+ * @ENG_END_DOX
127
+ *
128
+ * @detaileddesc
129
+ * @ENG_START_DOX
130
+ * @details The connector type can be used to discover if the display is connected to the GPU using HDMI, DisplayPort or any other kind of display interface.
131
+ * @ENG_END_DOX
132
+ *
133
+ * @copydoc IADLXDisplay_REQ_TABLE
134
+ *
135
+ */
136
+ virtual ADLX_RESULT ADLX_STD_CALL ConnectorType (ADLX_DISPLAY_CONNECTOR_TYPE* connectType) const = 0;
137
+
138
+ /**
139
+ * @page DOX_IADLXDisplay_Name Name
140
+ * @ENG_START_DOX
141
+ * @brief Gets the name of a display.
142
+ * @ENG_END_DOX
143
+ *
144
+ * @syntax
145
+ * @codeStart
146
+ * @ref ADLX_RESULT Name (const char** displayName)
147
+ * @codeEnd
148
+ *
149
+ * @params
150
+ * @paramrow{1.,[out] ,displayName,const char** ,@ENG_START_DOX The pointer to a zero-terminated string where the display name is returned. @ENG_END_DOX}
151
+ *
152
+ * @retvalues
153
+ * @ENG_START_DOX
154
+ * If the name of this display is successfully returned, __ADLX_OK__ is returned. <br>
155
+ * If the name of this display is not successfully returned, an error code is returned. <br>
156
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
157
+ * @ENG_END_DOX
158
+ *
159
+ * @detaileddesc
160
+ * @ENG_START_DOX
161
+ * @details The display name is a predetermined value programmed into the display at the time of manufacturing.
162
+ * @ENG_END_DOX
163
+ *
164
+ * @addinfo
165
+ * @ENG_START_DOX
166
+ * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXDisplay interface. If the application uses the display name beyond the lifetime of the IADLXDisplay @ref DOX_IADLXDisplay interface, the application must make a copy of the display name.
167
+ * @ENG_END_DOX
168
+ *
169
+ * @copydoc IADLXDisplay_REQ_TABLE
170
+ *
171
+ */
172
+ virtual ADLX_RESULT ADLX_STD_CALL Name (const char** displayName) const = 0;
173
+
174
+ /**
175
+ * @page DOX_IADLXDisplay_EDID EDID
176
+ * @ENG_START_DOX
177
+ * @brief Gets the virtual EDID (Extended Display Identification Data) of a display.
178
+ * @ENG_END_DOX
179
+ *
180
+ * @syntax
181
+ * @codeStart
182
+ * @ref ADLX_RESULT EDID (const char** edid)
183
+ * @codeEnd
184
+ *
185
+ * @params
186
+ * @paramrow{1.,[out] ,edid,const char** ,@ENG_START_DOX The pointer to a zero-terminated buffer where the display EDID data is returned. @ENG_END_DOX}
187
+ *
188
+ * @retvalues
189
+ * @ENG_START_DOX
190
+ * If the virtual EDID is successfully returned, __ADLX_OK__ is returned. <br>
191
+ * If the virtual EDID is not successfully returned, an error code is returned. <br>
192
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
193
+ * @ENG_END_DOX
194
+ *
195
+ * @detaileddesc
196
+ * @ENG_START_DOX
197
+ * @details EDID is a standardized metadata programmed into the display device by the manufacturer and is used for interoperability by video sources to discover the capabilities and information about the display device. VESA (Video Electronics Standards Association) defines the standard for the EDID data.
198
+ * @ENG_END_DOX
199
+ *
200
+ * @addinfo
201
+ * @ENG_START_DOX
202
+ * The returned memory buffer is valid within the lifetime of the @ref DOX_IADLXDisplay interface. If the application uses the EDID beyond the lifetime of the IADLXDisplay @ref DOX_IADLXDisplay interface, the application must make a copy of the EDID.
203
+ * @ENG_END_DOX
204
+ *
205
+ * @copydoc IADLXDisplay_REQ_TABLE
206
+ *
207
+ */
208
+ virtual ADLX_RESULT ADLX_STD_CALL EDID (const char** edid) const = 0;
209
+
210
+ /**
211
+ * @page DOX_IADLXDisplay_NativeResolution NativeResolution
212
+ * @ENG_START_DOX
213
+ * @brief Gets the native resolution of a display.
214
+ * @ENG_END_DOX
215
+ *
216
+ * @syntax
217
+ * @codeStart
218
+ * @ref ADLX_RESULT NativeResolution (adlx_int* maxHResolution, adlx_int* maxVResolution)
219
+ * @codeEnd
220
+ *
221
+ * @params
222
+ * @paramrow{1.,[out] ,maxHResolution,adlx_int* ,@ENG_START_DOX The pointer to a variable where the horizontal resolution of the display is returned. @ENG_END_DOX}
223
+ * @paramrow{2.,[out] ,maxVResolution,adlx_int* ,@ENG_START_DOX The pointer to a variable where the vertical resolution of the display is returned. @ENG_END_DOX}
224
+ *
225
+ * @retvalues
226
+ * @ENG_START_DOX
227
+ * If the native resolution is successfully returned, __ADLX_OK__ is returned. <br>
228
+ * If the resolution is not successfully returned, an error code is returned. <br>
229
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
230
+ * @ENG_END_DOX
231
+ *
232
+ * @detaileddesc
233
+ * @ENG_START_DOX
234
+ * @details The native resolution of the display is shown in the Windows Advanced display settings as Active signal resolution.
235
+ * @ENG_END_DOX
236
+ *
237
+ * @copydoc IADLXDisplay_REQ_TABLE
238
+ *
239
+ */
240
+ virtual ADLX_RESULT ADLX_STD_CALL NativeResolution (adlx_int* maxHResolution, adlx_int* maxVResolution) const = 0;
241
+
242
+ /**
243
+ * @page DOX_IADLXDisplay_RefreshRate RefreshRate
244
+ * @ENG_START_DOX
245
+ * @brief Gets the refresh rate of a display.
246
+ * @ENG_END_DOX
247
+ *
248
+ * @syntax
249
+ * @codeStart
250
+ * @ref ADLX_RESULT RefreshRate (adlx_double* refreshRate)
251
+ * @codeEnd
252
+ *
253
+ * @params
254
+ * @paramrow{1.,[out] ,refreshRate,adlx_double* ,@ENG_START_DOX The pointer to a variable where the refresh rate of the display (in Hz) is returned. @ENG_END_DOX}
255
+ *
256
+ * @retvalues
257
+ * @ENG_START_DOX
258
+ * If the refresh rate is successfully returned, __ADLX_OK__ is returned. <br>
259
+ * If the refresh rate is not successfully returned, an error code is returned. <br>
260
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
261
+ * @ENG_END_DOX
262
+ *
263
+ * @detaileddesc
264
+ * @ENG_START_DOX
265
+ * @details The refresh rate returns the number of times per second the display shows a new image.
266
+ * @ENG_END_DOX
267
+ *
268
+ * @copydoc IADLXDisplay_REQ_TABLE
269
+ *
270
+ */
271
+ virtual ADLX_RESULT ADLX_STD_CALL RefreshRate (adlx_double* refreshRate) const = 0;
272
+
273
+ /**
274
+ * @page DOX_IADLXDisplay_PixelClock PixelClock
275
+ * @ENG_START_DOX
276
+ * @brief Gets the pixel clock of a display.
277
+ * @ENG_END_DOX
278
+ *
279
+ * @syntax
280
+ * @codeStart
281
+ * @ref ADLX_RESULT PixelClock (adlx_uint* pixelClock)
282
+ * @codeEnd
283
+ *
284
+ * @params
285
+ * @paramrow{1.,[out] ,pixelClock,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the pixel clock of the display (in KHz) is returned. @ENG_END_DOX}
286
+ *
287
+ * @retvalues
288
+ * @ENG_START_DOX
289
+ * If the pixel clock is successfully returned, __ADLX_OK__ is returned. <br>
290
+ * If the pixel clock is not successfully returned, an error code is returned. <br>
291
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
292
+ * @ENG_END_DOX
293
+ *
294
+ * @detaileddesc
295
+ * @ENG_START_DOX
296
+ * @details The pixel clock rate is the speed at which pixels are transmitted over a video signal such as HDMI or DVI, to fit a full frame of pixels in one refresh cycle.
297
+ * @ENG_END_DOX
298
+ *
299
+ * @copydoc IADLXDisplay_REQ_TABLE
300
+ *
301
+ */
302
+ virtual ADLX_RESULT ADLX_STD_CALL PixelClock (adlx_uint* pixelClock) const = 0;
303
+
304
+ /**
305
+ * @page DOX_IADLXDisplay_ScanType ScanType
306
+ * @ENG_START_DOX
307
+ * @brief Gets the scan type of a display.
308
+ * @ENG_END_DOX
309
+ *
310
+ * @syntax
311
+ * @codeStart
312
+ * @ref ADLX_RESULT ScanType (@ref ADLX_DISPLAY_SCAN_TYPE* scanType)
313
+ * @codeEnd
314
+ *
315
+ * @params
316
+ * @paramrow{1.,[out] ,scanType,@ref ADLX_DISPLAY_SCAN_TYPE* ,@ENG_START_DOX The pointer to a variable where the scan type of the display is returned. @ENG_END_DOX}
317
+ *
318
+ * @retvalues
319
+ * @ENG_START_DOX
320
+ * If the scan type is successfully returned, __ADLX_OK__ is returned. <br>
321
+ * If the scan type is not successfully returned, an error code is returned. <br>
322
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
323
+ * @ENG_END_DOX
324
+ *
325
+ * @detaileddesc
326
+ * @ENG_START_DOX
327
+ * @details The scan type can be progressive or interlaced.
328
+ * @ENG_END_DOX
329
+ *
330
+ * @copydoc IADLXDisplay_REQ_TABLE
331
+ *
332
+ */
333
+ virtual ADLX_RESULT ADLX_STD_CALL ScanType (ADLX_DISPLAY_SCAN_TYPE* scanType) const = 0;
334
+
335
+ /**
336
+ *@page DOX_IADLXDisplay_GetGPU GetGPU
337
+ *@ENG_START_DOX @brief Gets the reference counted GPU interface of a display. @ENG_END_DOX
338
+ *
339
+ *@syntax
340
+ *@codeStart
341
+ * @ref ADLX_RESULT GetGPU (@ref DOX_IADLXGPU** ppGPU)
342
+ *@codeEnd
343
+ *
344
+ *@params
345
+ *@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}
346
+ *
347
+ *@retvalues
348
+ *@ENG_START_DOX
349
+ * If the reference counted GPU interface is successfully returned, __ADLX_OK__ is returned. <br>
350
+ * If the reference counted GPU interface is not successfully returned, an error code is returned. <br>
351
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
352
+ *
353
+ *@detaileddesc
354
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
355
+ *
356
+ *@addinfo
357
+ *@ENG_START_DOX
358
+ *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
359
+ *
360
+ *@copydoc IADLXDisplay_REQ_TABLE
361
+ *
362
+ */
363
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPU (IADLXGPU** ppGPU) = 0;
364
+
365
+ /**
366
+ * @page DOX_IADLXDisplay_UniqueId UniqueId
367
+ * @ENG_START_DOX@brief Gets the unique id of a Display.@ENG_END_DOX
368
+ * @syntax
369
+ * @codeStart
370
+ * @ref ADLX_RESULT UniqueId(adlx_size* uniqueId)
371
+ * @codeEnd
372
+ *
373
+ * @params
374
+ * @paramrow{1.,[out],uniqueId,adlx_size*,@ENG_START_DOX The pointer to a variable where the unique id of the Display is returned. @ENG_END_DOX}
375
+ *
376
+ * @retvalues
377
+ * @ENG_START_DOX
378
+ * If the unique id is successfully returned, __ADLX_OK__ is returned.<br>
379
+ * If the unique id is not successfully returned, an error code is returned.<br>
380
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
381
+ * @ENG_END_DOX
382
+ *
383
+ * @copydoc IADLXDisplay_REQ_TABLE
384
+ *
385
+ */
386
+ virtual ADLX_RESULT ADLX_STD_CALL UniqueId(adlx_size* uniqueId) = 0;
387
+ }; //IADLXDisplay
388
+ //----------------------------------------------------------------------------------------------
389
+ typedef IADLXInterfacePtr_T<IADLXDisplay> IADLXDisplayPtr;
390
+ } //namespace adlx
391
+ #else //__cplusplus
392
+ ADLX_DECLARE_IID (IADLXDisplay, L"IADLXDisplay")
393
+ typedef struct IADLXDisplayGamut IADLXDisplayGamut;
394
+ typedef struct IADLXDisplayGamma IADLXDisplayGamma;
395
+ typedef struct IADLXDisplay3DLUT IADLXDisplay3DLUT;
396
+ typedef struct IADLXGPU IADLXGPU;
397
+
398
+ typedef struct IADLXDisplay IADLXDisplay;
399
+
400
+ typedef struct IADLXDisplayVtbl
401
+ {
402
+ //IADLXInterface
403
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplay* pThis );
404
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplay* pThis );
405
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplay* pThis, const wchar_t* interfaceId, void** ppInterface );
406
+
407
+ //IADLXDisplay
408
+ ADLX_RESULT (ADLX_STD_CALL* ManufacturerID)( IADLXDisplay* pThis, adlx_uint* manufacturerID );
409
+ ADLX_RESULT (ADLX_STD_CALL* DisplayType)( IADLXDisplay* pThis, ADLX_DISPLAY_TYPE* displayType );
410
+ ADLX_RESULT (ADLX_STD_CALL* ConnectorType)( IADLXDisplay* pThis, ADLX_DISPLAY_CONNECTOR_TYPE* connectType );
411
+ ADLX_RESULT (ADLX_STD_CALL* Name)( IADLXDisplay* pThis, const char** displayName );
412
+ ADLX_RESULT (ADLX_STD_CALL* EDID)( IADLXDisplay* pThis, const char** edid );
413
+ ADLX_RESULT (ADLX_STD_CALL* NativeResolution)( IADLXDisplay* pThis, adlx_int* maxHResolution, adlx_int* maxVResolution );
414
+ ADLX_RESULT (ADLX_STD_CALL* RefreshRate)( IADLXDisplay* pThis, adlx_double* refreshRate );
415
+ ADLX_RESULT (ADLX_STD_CALL* PixelClock)( IADLXDisplay* pThis, adlx_uint* pixelClock );
416
+ ADLX_RESULT (ADLX_STD_CALL* ScanType)( IADLXDisplay* pThis, ADLX_DISPLAY_SCAN_TYPE* scanType );
417
+ ADLX_RESULT (ADLX_STD_CALL* GetGPU)( IADLXDisplay* pThis, IADLXGPU** ppGPU );
418
+ ADLX_RESULT (ADLX_STD_CALL* UniqueId)( IADLXDisplay* pThis, adlx_size* uniqueId );
419
+ }IADLXDisplayVtbl;
420
+
421
+ struct IADLXDisplay { const IADLXDisplayVtbl* pVtbl; };
422
+ #endif //__cplusplus
423
+ #pragma endregion IADLXDisplay
424
+
425
+ //Display list interface
426
+ #pragma region IADLXDisplayList
427
+ #if defined (__cplusplus)
428
+ namespace adlx
429
+ {
430
+ class ADLX_NO_VTABLE IADLXDisplayList : public IADLXList
431
+ {
432
+ public:
433
+ ADLX_DECLARE_IID (L"IADLXDisplayList")
434
+ //Lists must declare the type of items it holds - what was passed as ADLX_DECLARE_IID() in that interface
435
+ ADLX_DECLARE_ITEM_IID (IADLXDisplay::IID ())
436
+
437
+ /**
438
+ * @page DOX_IADLXDisplayList_At At
439
+ * @ENG_START_DOX
440
+ * @brief Returns the reference counted interface at the requested location.
441
+ * @ENG_END_DOX
442
+ *
443
+ * @syntax
444
+ * @codeStart
445
+ * @ref ADLX_RESULT At (const adlx_uint location, @ref DOX_IADLXDisplay** ppItem)
446
+ * @codeEnd
447
+ *
448
+ * @params
449
+ * @paramrow{1.,[in] ,location,const adlx_uint ,@ENG_START_DOX The location of the requested interface. @ENG_END_DOX}
450
+ * @paramrow{2.,[out] ,ppItem,@ref DOX_IADLXDisplay** ,@ENG_START_DOX The address of a pointer to the returned interface. If the interface is not successfully returned then the method sets the dereferenced address __*ppItem__ to __nullptr__. @ENG_END_DOX}
451
+ *
452
+ * @retvalues
453
+ * @ENG_START_DOX
454
+ * If the location is within the list bounds, __ADLX_OK__ is returned.<br>
455
+ * If the location is not within the list bounds, an error code is returned.<br>
456
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br>
457
+ * @ENG_END_DOX
458
+ *
459
+ * @detaileddesc
460
+ * @ENG_START_DOX
461
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
462
+ * @ENG_END_DOX
463
+ *
464
+ * @addinfo
465
+ * @ENG_START_DOX
466
+ * 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.
467
+ * @ENG_END_DOX
468
+ *
469
+ * @copydoc IADLXDisplayList_REQ_TABLE
470
+ *
471
+ */
472
+ virtual ADLX_RESULT ADLX_STD_CALL At (const adlx_uint location, IADLXDisplay** ppItem) = 0;
473
+
474
+ /**
475
+ *@page DOX_IADLXDisplayList_Add_Back Add_Back
476
+ *@ENG_START_DOX @brief Adds an interface to the end of a list. @ENG_END_DOX
477
+ *
478
+ *@syntax
479
+ *@codeStart
480
+ * @ref ADLX_RESULT Add_Back (@ref DOX_IADLXDisplay* pItem)
481
+ *@codeEnd
482
+ *
483
+ *@params
484
+ *@paramrow{1.,[in] ,pItem,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the interface to be added to the list. @ENG_END_DOX}
485
+ *
486
+ *@retvalues
487
+ *@ENG_START_DOX
488
+ * If the interface is added successfully to the end of the list, __ADLX_OK__ is returned.<br>
489
+ * If the interface is not added to the end of the list, an error code is returned.<br>
490
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
491
+ *
492
+ *@detaileddesc
493
+ *@ENG_START_DOX @details @ENG_END_DOX
494
+ *
495
+ *@copydoc IADLXDisplayList_REQ_TABLE
496
+ *
497
+ */
498
+ virtual ADLX_RESULT ADLX_STD_CALL Add_Back (IADLXDisplay* pItem) = 0;
499
+ }; //IADLXDisplayList
500
+ //----------------------------------------------------------------------------------------------
501
+ typedef IADLXInterfacePtr_T<IADLXDisplayList> IADLXDisplayListPtr;
502
+ } //namespace adlx
503
+ #else //__cplusplus
504
+ ADLX_DECLARE_IID (IADLXDisplayList, L"IADLXDisplayList")
505
+ ADLX_DECLARE_ITEM_IID (IADLXDisplay, IID_IADLXDisplay ())
506
+
507
+ typedef struct IADLXDisplayList IADLXDisplayList;
508
+
509
+ typedef struct IADLXDisplayListVtbl
510
+ {
511
+ //IADLXInterface
512
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayList* pThis );
513
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayList* pThis );
514
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayList* pThis, const wchar_t* interfaceId, void** ppInterface );
515
+
516
+ //IADLXList
517
+ adlx_uint (ADLX_STD_CALL* Size)( IADLXDisplayList* pThis );
518
+ adlx_bool (ADLX_STD_CALL* Empty)( IADLXDisplayList* pThis );
519
+ adlx_uint (ADLX_STD_CALL* Begin)( IADLXDisplayList* pThis );
520
+ adlx_uint (ADLX_STD_CALL* End)( IADLXDisplayList* pThis );
521
+ ADLX_RESULT (ADLX_STD_CALL* At)( IADLXDisplayList* pThis, const adlx_uint location, IADLXInterface** ppItem );
522
+ ADLX_RESULT (ADLX_STD_CALL* Clear)( IADLXDisplayList* pThis );
523
+ ADLX_RESULT (ADLX_STD_CALL* Remove_Back)( IADLXDisplayList* pThis );
524
+ ADLX_RESULT (ADLX_STD_CALL* Add_Back)( IADLXDisplayList* pThis, IADLXInterface* pItem );
525
+
526
+ //IADLXDisplayList
527
+ ADLX_RESULT (ADLX_STD_CALL* At_DisplayList)( IADLXDisplayList* pThis, const adlx_uint location, IADLXDisplay** ppItem );
528
+ ADLX_RESULT (ADLX_STD_CALL* Add_Back_DisplayList)( IADLXDisplayList* pThis, IADLXDisplay* pItem );
529
+
530
+ }IADLXDisplayListVtbl;
531
+
532
+ struct IADLXDisplayList { const IADLXDisplayListVtbl* pVtbl; };
533
+ #endif //__cplusplus
534
+ #pragma endregion IADLXDisplayList
535
+
536
+ //Display List changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayListEventListener()
537
+ #pragma region IADLXDisplayListChangedListener
538
+ #if defined (__cplusplus)
539
+ namespace adlx
540
+ {
541
+ class ADLX_NO_VTABLE IADLXDisplayListChangedListener
542
+ {
543
+ public:
544
+ /**
545
+ *@page DOX_IADLXDisplayListChangedListener_OnDisplayListChanged OnDisplayListChanged
546
+ *@ENG_START_DOX @brief The __OnDisplayListChanged__ method is called by ADLX when the display list changes. @ENG_END_DOX
547
+ *
548
+ *@syntax
549
+ *@codeStart
550
+ * adlx_bool OnDisplayListChanged (@ref DOX_IADLXDisplayList* pNewDisplay)
551
+ *@codeEnd
552
+ *
553
+ *@params
554
+ *@paramrow{1.,[out] ,pNewDisplay,@ref DOX_IADLXDisplayList* ,@ENG_START_DOX The pointer to the new display list. @ENG_END_DOX}
555
+ *
556
+ *
557
+ *@retvalues
558
+ *@ENG_START_DOX
559
+ * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
560
+ * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
561
+ *
562
+ *@detaileddesc
563
+ *@ENG_START_DOX
564
+ * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayListEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener.<br>
565
+ * 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 new display list 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 new display list with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
566
+ *
567
+ *
568
+ *@copydoc IADLXDisplayListChangedListener_REQ_TABLE
569
+ *
570
+ */
571
+ virtual adlx_bool ADLX_STD_CALL OnDisplayListChanged (IADLXDisplayList* pNewDisplay) = 0;
572
+ }; //IADLXDisplayListChangedListener
573
+ } //namespace adlx
574
+ #else //__cplusplus
575
+ typedef struct IADLXDisplayListChangedListener IADLXDisplayListChangedListener;
576
+
577
+ typedef struct IADLXDisplayListChangedListenerVtbl
578
+ {
579
+ // IDisplayEventListener interface
580
+ adlx_bool (ADLX_STD_CALL* OnDisplayListChanged)( IADLXDisplayListChangedListener* pThis, IADLXDisplayList* pNewDisplay );
581
+
582
+ } IADLXDisplayListChangedListenerVtbl;
583
+
584
+ struct IADLXDisplayListChangedListener { const IADLXDisplayListChangedListenerVtbl* pVtbl; };
585
+ #endif //__cplusplus
586
+ #pragma endregion IADLXDisplayListChangedListener
587
+
588
+ //Interface with information on gamut changes on a display. ADLX passes this to application that registered for Gamut changed event in the IADLXDisplayGamutChangedListener::OnDisplayGamutChanged()
589
+ #pragma region IADLXDisplayGamutChangedEvent
590
+ #if defined (__cplusplus)
591
+ namespace adlx
592
+ {
593
+ class ADLX_NO_VTABLE IADLXDisplayGamutChangedEvent : public IADLXChangedEvent
594
+ {
595
+ public:
596
+ ADLX_DECLARE_IID (L"IADLXDisplayGamutChangedEvent")
597
+
598
+ /**
599
+ *@page DOX_IADLXDisplayGamutChangedEvent_GetDisplay GetDisplay
600
+ *@ENG_START_DOX @brief Gets the reference counted display interface on which the gamut setting is changed. @ENG_END_DOX
601
+ *
602
+ *@syntax
603
+ *@codeStart
604
+ * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay)
605
+ *@codeEnd
606
+ *
607
+ *@params
608
+ *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
609
+ *
610
+ *
611
+ *@retvalues
612
+ *@ENG_START_DOX
613
+ * If the display interface is successfully returned, __ADLX_OK__ is returned.<br>
614
+ * If the display inferface is not successfully returned, an error code is returned.<br>
615
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
616
+ *
617
+ *@detaileddesc
618
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
619
+ *
620
+ *@addinfo
621
+ *@ENG_START_DOX
622
+ * 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>
623
+ * __Note:__ @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes.
624
+ *@ENG_END_DOX
625
+ *
626
+ *
627
+ *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE
628
+ *
629
+ */
630
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0;
631
+
632
+ /**
633
+ *@page DOX_IADLXDisplayGamutChangedEvent_IsWhitePointChanged IsWhitePointChanged
634
+ *@ENG_START_DOX @brief Checks if the white point of the display gamut is changed. @ENG_END_DOX
635
+ *
636
+ *@syntax
637
+ *@codeStart
638
+ * adlx_bool IsWhitePointChanged ()
639
+ *@codeEnd
640
+ *
641
+ *@params
642
+ *N/A
643
+ *
644
+ *
645
+ *@retvalues
646
+ *@ENG_START_DOX
647
+ * If the white point is changed, __true__ is returned.<br>
648
+ * If the white point is not changed, __false__ is returned.<br> @ENG_END_DOX
649
+ *
650
+ *@addinfo
651
+ *@ENG_START_DOX
652
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay.
653
+ *@ENG_END_DOX
654
+ *
655
+ *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE
656
+ *
657
+ */
658
+ virtual adlx_bool ADLX_STD_CALL IsWhitePointChanged () = 0;
659
+
660
+ /**
661
+ *@page DOX_IADLXDisplayGamutChangedEvent_IsColorSpaceChanged IsColorSpaceChanged
662
+ *@ENG_START_DOX @brief Checks if the color space of the display gamut is changed. @ENG_END_DOX
663
+ *
664
+ *@syntax
665
+ *@codeStart
666
+ * adlx_bool IsColorSpaceChanged ()
667
+ *@codeEnd
668
+ *
669
+ *@params
670
+ *N/A
671
+ *
672
+ *
673
+ *@retvalues
674
+ *@ENG_START_DOX
675
+ * If the color space is changed, __true__ is returned.<br>
676
+ * If the color space is not changed, __false__ is returned.<br> @ENG_END_DOX
677
+ *
678
+ *@addinfo
679
+ *@ENG_START_DOX
680
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGamutChangedEvent_GetDisplay.
681
+ *@ENG_END_DOX
682
+ *
683
+ *@copydoc IADLXDisplayGamutChangedEvent_REQ_TABLE
684
+ *
685
+ */
686
+ virtual adlx_bool ADLX_STD_CALL IsColorSpaceChanged () = 0;
687
+ }; //IADLXDisplayGamutChangedEvent
688
+ //----------------------------------------------------------------------------------------------
689
+ typedef IADLXInterfacePtr_T<IADLXDisplayGamutChangedEvent> IADLXDisplayGamutChangedEventPtr;
690
+ } //namespace adlx
691
+ #else //__cplusplus
692
+ ADLX_DECLARE_IID (IADLXDisplayGamutChangedEvent, L"IADLXDisplayGamutChangedEvent")
693
+ typedef struct IADLXDisplayGamutChangedEvent IADLXDisplayGamutChangedEvent;
694
+
695
+ typedef struct IADLXDisplayGamutChangedEventVtbl
696
+ {
697
+ //IADLXInterface
698
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayGamutChangedEvent* pThis );
699
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayGamutChangedEvent* pThis );
700
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayGamutChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface );
701
+
702
+ //IADLXChangedEvent
703
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplayGamutChangedEvent* pThis);
704
+
705
+ // IADLXDisplayGamutChangedEvent interface
706
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplayGamutChangedEvent* pThis, IADLXDisplay** ppDisplay );
707
+ adlx_bool (ADLX_STD_CALL* IsWhitePointChanged)( IADLXDisplayGamutChangedEvent* pThis );
708
+ adlx_bool (ADLX_STD_CALL* IsColorSpaceChanged)( IADLXDisplayGamutChangedEvent* pThis );
709
+
710
+ } IADLXDisplayGamutChangedEventVtbl;
711
+
712
+ struct IADLXDisplayGamutChangedEvent { const IADLXDisplayGamutChangedEventVtbl* pVtbl; };
713
+ #endif //__cplusplus
714
+ #pragma endregion IADLXDisplayGamutChangedEvent
715
+
716
+ //Display Gamut changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayGamutEventListener()
717
+ #pragma region IADLXDisplayGamutChangedListener
718
+ #if defined (__cplusplus)
719
+ namespace adlx
720
+ {
721
+ class ADLX_NO_VTABLE IADLXDisplayGamutChangedListener
722
+ {
723
+ public:
724
+ /**
725
+ *@page DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged OnDisplayGamutChanged
726
+ *@ENG_START_DOX @brief The __OnDisplayGamutChanged__ method is called by ADLX when the display gamut changes. @ENG_END_DOX
727
+ *
728
+ *@syntax
729
+ *@codeStart
730
+ * adlx_bool OnDisplayGamutChanged (@ref DOX_IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent)
731
+ *@codeEnd
732
+ *
733
+ *@params
734
+ *@paramrow{1.,[in] ,pDisplayGamutChangedEvent,@ref DOX_IADLXDisplayGamutChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX}
735
+ *
736
+ *
737
+ *@retvalues
738
+ *@ENG_START_DOX
739
+ * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
740
+ * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
741
+ *
742
+ *@detaileddesc
743
+ *@ENG_START_DOX
744
+ * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayGamutEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener.<br>
745
+ * 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 gamut 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 gamut change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
746
+ *
747
+ *
748
+ *@copydoc IADLXDisplayGamutChangedListener_REQ_TABLE
749
+ *
750
+ */
751
+ virtual adlx_bool ADLX_STD_CALL OnDisplayGamutChanged (IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent) = 0;
752
+ }; //IADLXDisplayGamutChangedListener
753
+ } //namespace adlx
754
+ #else //__cplusplus
755
+ typedef struct IADLXDisplayGamutChangedListener IADLXDisplayGamutChangedListener;
756
+
757
+ typedef struct IADLXDisplayGamutChangedListenerVtbl
758
+ {
759
+ // IADLXDisplayGamutChangedListener interface
760
+ adlx_bool (ADLX_STD_CALL* OnDisplayGamutChanged)( IADLXDisplayGamutChangedListener* pThis, IADLXDisplayGamutChangedEvent* pDisplayGamutChangedEvent );
761
+
762
+ } IADLXDisplayGamutChangedListenerVtbl;
763
+
764
+ struct IADLXDisplayGamutChangedListener { const IADLXDisplayGamutChangedListenerVtbl* pVtbl; };
765
+ #endif //__cplusplus
766
+ #pragma endregion IADLXDisplayGamutChangedListener
767
+
768
+ //Interface with information on gamma changes on a display. ADLX passes this to application that registered for Gamma changed event in the IADLXDisplayGammaChangedListener::OnDisplayGammaChanged()
769
+ #pragma region IADLXDisplayGammaChangedEvent
770
+ #if defined (__cplusplus)
771
+ namespace adlx
772
+ {
773
+ class ADLX_NO_VTABLE IADLXDisplayGammaChangedEvent : public IADLXChangedEvent
774
+ {
775
+ public:
776
+ ADLX_DECLARE_IID (L"IADLXDisplayGammaChangedEvent")
777
+
778
+ /**
779
+ *@page DOX_IADLXDisplayGammaChangedEvent_GetDisplay GetDisplay
780
+ *@ENG_START_DOX @brief Gets the reference counted display interface on which the gamma setting is changed. @ENG_END_DOX
781
+ *
782
+ *@syntax
783
+ *@codeStart
784
+ * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay)
785
+ *@codeEnd
786
+ *
787
+ *@params
788
+ *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
789
+ *
790
+ *
791
+ *@retvalues
792
+ *@ENG_START_DOX
793
+ * If the display interface is successfully returned, __ADLX_OK__ is returned.<br>
794
+ * If the display inferface is not successfully returned, an error code is returned.<br>
795
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
796
+ *
797
+ *@detaileddesc
798
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
799
+ *
800
+ *@addinfo
801
+ *@ENG_START_DOX
802
+ * 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>
803
+ * __Note:__ @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes.
804
+ *@ENG_END_DOX
805
+ *
806
+ *
807
+ *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE
808
+ *
809
+ */
810
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0;
811
+
812
+ /**
813
+ *@page DOX_IADLXDisplayGammaChangedEvent_IsGammaRampChanged IsGammaRampChanged
814
+ *@ENG_START_DOX @brief Checks if the gamma ramp of a display is changed. @ENG_END_DOX
815
+ *
816
+ *@syntax
817
+ *@codeStart
818
+ * adlx_bool IsGammaRampChanged ()
819
+ *@codeEnd
820
+ *
821
+ *@params
822
+ *N/A
823
+ *
824
+ *
825
+ *@retvalues
826
+ *@ENG_START_DOX
827
+ * If the gamma ramp is changed, __true__ is returned.<br>
828
+ * If the gamma ramp is not changed, __false__ is returned.<br> @ENG_END_DOX
829
+ *
830
+ *@addinfo
831
+ *@ENG_START_DOX
832
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay.
833
+ *@ENG_END_DOX
834
+ *
835
+ *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE
836
+ *
837
+ */
838
+ virtual adlx_bool ADLX_STD_CALL IsGammaRampChanged () = 0;
839
+
840
+ /**
841
+ *@page DOX_IADLXDisplayGammaChangedEvent_IsGammaCoefficientChanged IsGammaCoefficientChanged
842
+ *@ENG_START_DOX @brief Checks if the gamma coefficient of a display is changed. @ENG_END_DOX
843
+ *
844
+ *@syntax
845
+ *@codeStart
846
+ * adlx_bool IsGammaCoefficientChanged ()
847
+ *@codeEnd
848
+ *
849
+ *@params
850
+ *N/A
851
+ *
852
+ *
853
+ *@retvalues
854
+ *@ENG_START_DOX
855
+ * If the gamma coefficient is changed, __true__ is returned.<br>
856
+ * If the gamma coefficient is not changed, __false__ is returned.<br> @ENG_END_DOX
857
+ *
858
+ *
859
+ *@addinfo
860
+ *@ENG_START_DOX
861
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay.
862
+ *@ENG_END_DOX
863
+ *
864
+ *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE
865
+ *
866
+ */
867
+ virtual adlx_bool ADLX_STD_CALL IsGammaCoefficientChanged () = 0;
868
+
869
+ /**
870
+ *@page DOX_IADLXDisplayGammaChangedEvent_IsReGammaChanged IsReGammaChanged
871
+ *@ENG_START_DOX @brief Checks if the re-gamma of a display is changed. @ENG_END_DOX
872
+ *
873
+ *@syntax
874
+ *@codeStart
875
+ * adlx_bool IsReGammaChanged ()
876
+ *@codeEnd
877
+ *
878
+ *@params
879
+ *N/A
880
+ *
881
+ *
882
+ *@retvalues
883
+ *@ENG_START_DOX
884
+ * If the re-gamma is changed, __true__ is returned.<br>
885
+ * If the re-gamma is not changed, __false__ is returned.<br> @ENG_END_DOX
886
+ *
887
+ *
888
+ *@addinfo
889
+ *@ENG_START_DOX
890
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay.
891
+ *@ENG_END_DOX
892
+ *
893
+ *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE
894
+ *
895
+ */
896
+ virtual adlx_bool ADLX_STD_CALL IsReGammaChanged () = 0;
897
+
898
+ /**
899
+ *@page DOX_IADLXDisplayGammaChangedEvent_IsDeGammaChanged IsDeGammaChanged
900
+ *@ENG_START_DOX @brief Checks if the de-gamma of a display is changed. @ENG_END_DOX
901
+ *
902
+ *@syntax
903
+ *@codeStart
904
+ * adlx_bool IsDeGammaChanged ()
905
+ *@codeEnd
906
+ *
907
+ *@params
908
+ *N/A
909
+ *
910
+ *
911
+ *@retvalues
912
+ *@ENG_START_DOX
913
+ * If the de-gamma is changed, __true__ is returned.<br>
914
+ * If the de-gamma is not changed, __false__ is returned.<br> @ENG_END_DOX
915
+ *
916
+ *@addinfo
917
+ *@ENG_START_DOX
918
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplayGammaChangedEvent_GetDisplay.
919
+ *@ENG_END_DOX
920
+ *
921
+ *@copydoc IADLXDisplayGammaChangedEvent_REQ_TABLE
922
+ *
923
+ */
924
+ virtual adlx_bool ADLX_STD_CALL IsDeGammaChanged () = 0;
925
+ }; //IADLXDisplayGammaChangedEvent
926
+ //----------------------------------------------------------------------------------------------
927
+ typedef IADLXInterfacePtr_T<IADLXDisplayGammaChangedEvent> IADLXDisplayGammaChangedEventPtr;
928
+ } //namespace adlx
929
+ #else //__cplusplus
930
+ ADLX_DECLARE_IID (IADLXDisplayGammaChangedEvent, L"IADLXDisplayGammaChangedEvent")
931
+ typedef struct IADLXDisplayGammaChangedEvent IADLXDisplayGammaChangedEvent;
932
+
933
+ typedef struct IADLXDisplayGammaChangedEventVtbl
934
+ {
935
+ //IADLXInterface
936
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayGammaChangedEvent* pThis );
937
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayGammaChangedEvent* pThis );
938
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayGammaChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface );
939
+
940
+ //IADLXChangedEvent
941
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplayGammaChangedEvent* pThis);
942
+
943
+ // IADLXDisplayGammaChangedEvent interface
944
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplayGammaChangedEvent* pThis, IADLXDisplay** ppDisplay );
945
+ adlx_bool (ADLX_STD_CALL* IsGammaRampChanged)( IADLXDisplayGammaChangedEvent* pThis );
946
+ adlx_bool (ADLX_STD_CALL* IsGammaCoefficientChanged)( IADLXDisplayGammaChangedEvent* pThis );
947
+ adlx_bool (ADLX_STD_CALL* IsReGammaChanged)( IADLXDisplayGammaChangedEvent* pThis );
948
+ adlx_bool (ADLX_STD_CALL* IsDeGammaChanged)( IADLXDisplayGammaChangedEvent* pThis );
949
+
950
+ } IADLXDisplayGammaChangedEventVtbl;
951
+
952
+ struct IADLXDisplayGammaChangedEvent { const IADLXDisplayGammaChangedEventVtbl* pVtbl; };
953
+ #endif //__cplusplus
954
+ #pragma endregion IADLXDisplayGammaChangedEvent
955
+
956
+ //Display Gamma changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplayGammaEventListener()
957
+ #pragma region IADLXDisplayGammaChangedListener
958
+ #if defined (__cplusplus)
959
+ namespace adlx
960
+ {
961
+ class ADLX_NO_VTABLE IADLXDisplayGammaChangedListener
962
+ {
963
+ public:
964
+ /**
965
+ *@page DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged OnDisplayGammaChanged
966
+ *@ENG_START_DOX @brief The __OnDisplayGammaChanged__ method is called by ADLX when the display gamma changes. @ENG_END_DOX
967
+ *
968
+ *@syntax
969
+ *@codeStart
970
+ * adlx_bool OnDisplayGammaChanged (@ref DOX_IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent)
971
+ *@codeEnd
972
+ *
973
+ *@params
974
+ *@paramrow{1.,[in] ,pDisplayGammaChangedEvent,@ref DOX_IADLXDisplayGammaChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX}
975
+ *
976
+ *
977
+ *@retvalues
978
+ *@ENG_START_DOX
979
+ * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
980
+ * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
981
+ *
982
+ *@detaileddesc
983
+ *@ENG_START_DOX
984
+ * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplayGammaEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener.<br>
985
+ * 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 gamma 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 gamma change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
986
+ *
987
+ *
988
+ *@copydoc IADLXDisplayGammaChangedListener_REQ_TABLE
989
+ *
990
+ */
991
+ virtual adlx_bool ADLX_STD_CALL OnDisplayGammaChanged (IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent) = 0;
992
+ }; //IADLXDisplayGammaChangedListener
993
+ } //namespace adlx
994
+ #else //__cplusplus
995
+ typedef struct IADLXDisplayGammaChangedListener IADLXDisplayGammaChangedListener;
996
+
997
+ typedef struct IADLXDisplayGammaChangedListenerVtbl
998
+ {
999
+ // IADLXDisplayGammaChangedListener interface
1000
+ adlx_bool (ADLX_STD_CALL* OnDisplayGammaChanged)( IADLXDisplayGammaChangedListener* pThis, IADLXDisplayGammaChangedEvent* pDisplayGammaChangedEvent );
1001
+
1002
+ } IADLXDisplayGammaChangedListenerVtbl;
1003
+
1004
+ struct IADLXDisplayGammaChangedListener { const IADLXDisplayGammaChangedListenerVtbl* pVtbl; };
1005
+ #endif //__cplusplus
1006
+ #pragma endregion IADLXDisplayGammaChangedListener
1007
+
1008
+ //Interface with information on 3D LUT changes on a display. ADLX passes this to application that registered for 3D LUT changed event in the IADLXDisplay3DLUTChangedListener::OnDisplay3DLUTChanged()
1009
+ #pragma region IADLXDisplay3DLUTChangedEvent
1010
+ #if defined (__cplusplus)
1011
+ namespace adlx
1012
+ {
1013
+ class ADLX_NO_VTABLE IADLXDisplay3DLUTChangedEvent : public IADLXChangedEvent
1014
+ {
1015
+ public:
1016
+ ADLX_DECLARE_IID (L"IADLXDisplay3DLUTChangedEvent")
1017
+
1018
+ /**
1019
+ *@page DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay GetDisplay
1020
+ *@ENG_START_DOX @brief Gets the reference counted display interface on which the 3D LUT is changed. @ENG_END_DOX
1021
+ *
1022
+ *@syntax
1023
+ *@codeStart
1024
+ * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay** ppDisplay)
1025
+ *@codeEnd
1026
+ *
1027
+ *@params
1028
+ *@paramrow{1.,[in] ,ppDisplay,@ref DOX_IADLXDisplay** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
1029
+ *
1030
+ *
1031
+ *@retvalues
1032
+ *@ENG_START_DOX
1033
+ * If the display interface is successfully returned, __ADLX_OK__ is returned.<br>
1034
+ * If the display inferface is not successfully returned, an error code is returned.<br>
1035
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1036
+ *
1037
+ *@detaileddesc
1038
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
1039
+ *
1040
+ *@addinfo
1041
+ *@ENG_START_DOX
1042
+ * 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>
1043
+ * __Note:__ @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes.
1044
+ *@ENG_END_DOX
1045
+ *
1046
+ *
1047
+ *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE
1048
+ *
1049
+ */
1050
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0;
1051
+ /**
1052
+ *@page DOX_IADLXDisplay3DLUTChangedEvent_IsSCEChanged IsSCEChanged
1053
+ *@ENG_START_DOX @brief Checks if the color enhancement of a display is changed. @ENG_END_DOX
1054
+ *
1055
+ *@syntax
1056
+ *@codeStart
1057
+ * adlx_bool IsSCEChanged ()
1058
+ *@codeEnd
1059
+ *
1060
+ *@params
1061
+ *N/A
1062
+ *
1063
+ *
1064
+ *@retvalues
1065
+ *@ENG_START_DOX
1066
+ * If the color enhancement is changed, __true__ is returned.<br>
1067
+ * If the color enhancement is not changed, __false__ is returned.<br> @ENG_END_DOX
1068
+ *
1069
+ *
1070
+ *@addinfo
1071
+ *@ENG_START_DOX
1072
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay.
1073
+ *@ENG_END_DOX
1074
+ *
1075
+ *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE
1076
+ *
1077
+ */
1078
+ virtual adlx_bool ADLX_STD_CALL IsSCEChanged() = 0;
1079
+ /**
1080
+ *@page DOX_IADLXDisplay3DLUTChangedEvent_IsCustom3DLUTChanged IsCustom3DLUTChanged
1081
+ *@ENG_START_DOX @brief Checks if the custom 3D LUT for panel calibration of a display is changed. @ENG_END_DOX
1082
+ *
1083
+ *@syntax
1084
+ *@codeStart
1085
+ * adlx_bool IsCustom3DLUTChanged ()
1086
+ *@codeEnd
1087
+ *
1088
+ *@params
1089
+ *N/A
1090
+ *
1091
+ *
1092
+ *@retvalues
1093
+ *@ENG_START_DOX
1094
+ * If the custom 3D LUT is changed, __true__ is returned.<br>
1095
+ * If the custom 3D LUT is not changed, __false__ is returned.<br> @ENG_END_DOX
1096
+ *
1097
+ *@addinfo
1098
+ *@ENG_START_DOX
1099
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplay3DLUTChangedEvent_GetDisplay.
1100
+ *@ENG_END_DOX
1101
+ *
1102
+ *@copydoc IADLXDisplay3DLUTChangedEvent_REQ_TABLE
1103
+ *
1104
+ */
1105
+ virtual adlx_bool ADLX_STD_CALL IsCustom3DLUTChanged() = 0;
1106
+ }; //IADLXDisplay3DLUTChangedEvent
1107
+ //----------------------------------------------------------------------------------------------
1108
+ typedef IADLXInterfacePtr_T<IADLXDisplay3DLUTChangedEvent> IADLXDisplay3DLUTChangedEventPtr;
1109
+ } //namespace adlx
1110
+ #else //__cplusplus
1111
+ ADLX_DECLARE_IID (IADLXDisplay3DLUTChangedEvent, L"IADLXDisplay3DLUTChangedEvent")
1112
+ typedef struct IADLXDisplay3DLUTChangedEvent IADLXDisplay3DLUTChangedEvent;
1113
+
1114
+ typedef struct IADLXDisplay3DLUTChangedEventVtbl
1115
+ {
1116
+ //IADLXInterface
1117
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplay3DLUTChangedEvent* pThis );
1118
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplay3DLUTChangedEvent* pThis );
1119
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplay3DLUTChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface );
1120
+
1121
+ //IADLXChangedEvent
1122
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplay3DLUTChangedEvent* pThis);
1123
+
1124
+ // IADLXDisplay3DLUTChangedEvent interface
1125
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplay)( IADLXDisplay3DLUTChangedEvent* pThis, IADLXDisplay** ppDisplay );
1126
+ adlx_bool (ADLX_STD_CALL* IsSCEChanged)( IADLXDisplay3DLUTChangedEvent* pThis );
1127
+ adlx_bool (ADLX_STD_CALL* IsCustom3DLUTChanged)( IADLXDisplay3DLUTChangedEvent* pThis );
1128
+ } IADLXDisplay3DLUTChangedEventVtbl;
1129
+
1130
+ struct IADLXDisplay3DLUTChangedEvent { const IADLXDisplay3DLUTChangedEventVtbl* pVtbl; };
1131
+ #endif //__cplusplus
1132
+ #pragma endregion IADLXDisplay3DLUTChangedEvent
1133
+
1134
+ //Display 3D LUT changed listener interface. To be implemented in application and passed in IADLXDisplayChangedHandling::AddDisplay3DLUTEventListener()
1135
+ #pragma region IADLXDisplay3DLUTChangedListener
1136
+ #if defined (__cplusplus)
1137
+ namespace adlx
1138
+ {
1139
+ class ADLX_NO_VTABLE IADLXDisplay3DLUTChangedListener
1140
+ {
1141
+ public:
1142
+ /**
1143
+ *@page DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged OnDisplay3DLUTChanged
1144
+ *@ENG_START_DOX @brief The __OnDisplay3DLUTChanged__ method is called by ADLX when the display 3D LUT changes. @ENG_END_DOX
1145
+ *
1146
+ *@syntax
1147
+ *@codeStart
1148
+ * adlx_bool OnDisplay3DLUTChanged (@ref DOX_IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent)
1149
+ *@codeEnd
1150
+ *
1151
+ *@params
1152
+ *@paramrow{1.,[in] ,pDisplay3DLUTChangedEvent,@ref DOX_IADLXDisplay3DLUTChangedEvent* ,@ENG_START_DOX The pointer to the event. @ENG_END_DOX}
1153
+ *
1154
+ *
1155
+ *@retvalues
1156
+ *@ENG_START_DOX
1157
+ * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
1158
+ * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
1159
+ *
1160
+ *@detaileddesc
1161
+ *@ENG_START_DOX
1162
+ * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplay3DLUTEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener.<br>
1163
+ * 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 3D LUT 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 3D LUT change event with @ref DOX_IADLXInterface_Release.<br> @ENG_END_DOX
1164
+ *
1165
+ *
1166
+ *@copydoc IADLXDisplay3DLUTChangedListener_REQ_TABLE
1167
+ *
1168
+ */
1169
+ virtual adlx_bool ADLX_STD_CALL OnDisplay3DLUTChanged (IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent) = 0;
1170
+ }; //IADLXDisplay3DLUTChangedListener
1171
+ } //namespace adlx
1172
+ #else //__cplusplus
1173
+ typedef struct IADLXDisplay3DLUTChangedListener IADLXDisplay3DLUTChangedListener;
1174
+
1175
+ typedef struct IADLXDisplay3DLUTChangedListenerVtbl
1176
+ {
1177
+ // IADLXDisplayGammaChangedListener interface
1178
+ adlx_bool (ADLX_STD_CALL* OnDisplay3DLUTChanged)( IADLXDisplay3DLUTChangedListener* pThis, IADLXDisplay3DLUTChangedEvent* pDisplay3DLUTChangedEvent );
1179
+
1180
+ } IADLXDisplay3DLUTChangedListenerVtbl;
1181
+
1182
+ struct IADLXDisplay3DLUTChangedListener { const IADLXDisplay3DLUTChangedListenerVtbl* pVtbl; };
1183
+ #endif //__cplusplus
1184
+ #pragma endregion IADLXDisplay3DLUTChangedListener
1185
+
1186
+ #pragma region IADLXDisplaySettingsChangedEvent
1187
+ #if defined (__cplusplus)
1188
+ namespace adlx
1189
+ {
1190
+ class ADLX_NO_VTABLE IADLXDisplay;
1191
+
1192
+ class ADLX_NO_VTABLE IADLXDisplaySettingsChangedEvent : public IADLXChangedEvent
1193
+ {
1194
+ public:
1195
+ ADLX_DECLARE_IID (L"IADLXDisplaySettingsChangedEvent")
1196
+
1197
+ /**
1198
+ *@page DOX_IADLXDisplaySettingsChangedEvent_GetDisplay GetDisplay
1199
+ *@ENG_START_DOX @brief Gets the reference counted display interface on which settings are changed. @ENG_END_DOX
1200
+ *
1201
+ *@syntax
1202
+ *@codeStart
1203
+ * @ref ADLX_RESULT GetDisplay (@ref DOX_IADLXDisplay **ppDisplay)
1204
+ *@codeEnd
1205
+ *
1206
+ *@params
1207
+ *@paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplay**, @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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
1208
+ *
1209
+ *
1210
+ *@retvalues
1211
+ *@ENG_START_DOX
1212
+ * If the display interface is successfully returned, __ADLX_OK__ is returned.<br>
1213
+ * If the display interface is not successfully returned, an error code is returned.<br>
1214
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1215
+ *
1216
+ *@detaileddesc
1217
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
1218
+ *
1219
+ *@addinfo
1220
+ *@ENG_START_DOX
1221
+ * 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>
1222
+ * __Note:__ @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay returns the reference counted display used by all the methods in this interface to check if there are any changes.
1223
+ * @ENG_END_DOX
1224
+ *
1225
+ *
1226
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1227
+ *
1228
+ */
1229
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplay (IADLXDisplay** ppDisplay) = 0;
1230
+
1231
+ /**
1232
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsFreeSyncChanged IsFreeSyncChanged
1233
+ *@ENG_START_DOX @brief Checks if the AMD FreeSync™ settings of the display are changed. @ENG_END_DOX
1234
+ *
1235
+ *@syntax
1236
+ *@codeStart
1237
+ * adlx_bool IsFreeSyncChanged ()
1238
+ *@codeEnd
1239
+ *
1240
+ *@params
1241
+ *N/A
1242
+ *
1243
+ *@retvalues
1244
+ *@ENG_START_DOX
1245
+ * If the AMD FreeSync settings are changed, __true__ is returned.<br>
1246
+ * If the AMD FreeSync settings are not changed, __false__ is returned. @ENG_END_DOX
1247
+ *
1248
+ *@addinfo
1249
+ *@ENG_START_DOX
1250
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1251
+ * @ENG_END_DOX
1252
+ *
1253
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1254
+ *
1255
+ */
1256
+ virtual adlx_bool ADLX_STD_CALL IsFreeSyncChanged () = 0;
1257
+
1258
+ /**
1259
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsVSRChanged IsVSRChanged
1260
+ *@ENG_START_DOX @brief Checks if the AMD Virtual Super Resolution settings of the display are changed. @ENG_END_DOX
1261
+ *
1262
+ *@syntax
1263
+ *@codeStart
1264
+ * adlx_bool IsVSRChanged ()
1265
+ *@codeEnd
1266
+ *
1267
+ *@params
1268
+ *N/A
1269
+ *
1270
+ *@retvalues
1271
+ *@ENG_START_DOX
1272
+ * If the Virtual Super Resolution settings are changed, __true__ is returned. <br>
1273
+ * If the Virtual Super Resolution settings are not changed, __false__ is returned. @ENG_END_DOX
1274
+ *
1275
+ *@addinfo
1276
+ *@ENG_START_DOX
1277
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1278
+ * @ENG_END_DOX
1279
+ *
1280
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1281
+ *
1282
+ */
1283
+ virtual adlx_bool ADLX_STD_CALL IsVSRChanged () = 0;
1284
+
1285
+ /**
1286
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsGPUScalingChanged IsGPUScalingChanged
1287
+ *@ENG_START_DOX @brief Checks if the GPU scaling settings of the display are changed. @ENG_END_DOX
1288
+ *
1289
+ *@syntax
1290
+ *@codeStart
1291
+ * adlx_bool IsGPUScalingChanged ()
1292
+ *@codeEnd
1293
+ *
1294
+ *@params
1295
+ *N/A
1296
+ *
1297
+ *@retvalues
1298
+ *@ENG_START_DOX
1299
+ * If the GPU scaling settings are changed, __true__ is returned. <br>
1300
+ * If the GPU scaling settings are not changed, __false__ is returned. @ENG_END_DOX
1301
+ *
1302
+ *
1303
+ *@addinfo
1304
+ *@ENG_START_DOX
1305
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1306
+ * @ENG_END_DOX
1307
+ *
1308
+ *
1309
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1310
+ *
1311
+ */
1312
+ virtual adlx_bool ADLX_STD_CALL IsGPUScalingChanged () = 0;
1313
+
1314
+ /**
1315
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsScalingModeChanged IsScalingModeChanged
1316
+ *@ENG_START_DOX @brief Checks if the scaling mode settings of the display are changed. @ENG_END_DOX
1317
+ *
1318
+ *@syntax
1319
+ *@codeStart
1320
+ * adlx_bool IsScalingModeChanged ()
1321
+ *@codeEnd
1322
+ *
1323
+ *@params
1324
+ *N/A
1325
+ *
1326
+ *@retvalues
1327
+ *@ENG_START_DOX
1328
+ * If the scaling mode settings are changed, __true__ is returned.<br>
1329
+ * If the scaling mode settings are not changed, __false__ is returned. @ENG_END_DOX
1330
+ *
1331
+ *@addinfo
1332
+ *@ENG_START_DOX
1333
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1334
+ * @ENG_END_DOX
1335
+ *
1336
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1337
+ *
1338
+ */
1339
+ virtual adlx_bool ADLX_STD_CALL IsScalingModeChanged () = 0;
1340
+
1341
+ /**
1342
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsIntegerScalingChanged IsIntegerScalingChanged
1343
+ *@ENG_START_DOX @brief Checks if the Integer Display Scaling settings of the display are changed. @ENG_END_DOX
1344
+ *
1345
+ *@syntax
1346
+ *@codeStart
1347
+ * adlx_bool IsIntegerScalingChanged ()
1348
+ *@codeEnd
1349
+ *
1350
+ *@params
1351
+ *N/A
1352
+ *
1353
+ *@retvalues
1354
+ *@ENG_START_DOX
1355
+ * If the Integer Display Scaling settings are changed, __true__ is returned. <br>
1356
+ * If the Integer Display Scaling settings are not changed, __false__ is returned. @ENG_END_DOX
1357
+ *
1358
+ *
1359
+ *@addinfo
1360
+ *@ENG_START_DOX
1361
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1362
+ *@ENG_END_DOX
1363
+ *
1364
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1365
+ *
1366
+ */
1367
+ virtual adlx_bool ADLX_STD_CALL IsIntegerScalingChanged () = 0;
1368
+
1369
+ /**
1370
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsColorDepthChanged IsColorDepthChanged
1371
+ *@ENG_START_DOX @brief Checks if the color format settings of the display are changed. @ENG_END_DOX
1372
+ *
1373
+ *@syntax
1374
+ *@codeStart
1375
+ * adlx_bool IsColorDepthChanged ()
1376
+ *@codeEnd
1377
+ *
1378
+ *@params
1379
+ *N/A
1380
+ *
1381
+ *@retvalues
1382
+ *@ENG_START_DOX
1383
+ * If the color format settings are changed, __true__ is returned. <br>
1384
+ * If the color format settings are not changed, __false__ is returned. @ENG_END_DOX
1385
+ *
1386
+ *
1387
+ *@addinfo
1388
+ *@ENG_START_DOX
1389
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1390
+ *@ENG_END_DOX
1391
+ *
1392
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1393
+ *
1394
+ */
1395
+ virtual adlx_bool ADLX_STD_CALL IsColorDepthChanged () = 0;
1396
+
1397
+ /**
1398
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsPixelFormatChanged IsPixelFormatChanged
1399
+ *@ENG_START_DOX @brief Checks if the pixel format settings of the display are changed. @ENG_END_DOX
1400
+ *
1401
+ *@syntax
1402
+ *@codeStart
1403
+ * adlx_bool IsPixelFormatChanged ()
1404
+ *@codeEnd
1405
+ *
1406
+ *@params
1407
+ *N/A
1408
+ *
1409
+ *@retvalues
1410
+ *@ENG_START_DOX
1411
+ * If the pixel format settings are changed, __true__ is returned.<br>
1412
+ * If the pixel format settings are not changed, __false__ is returned. @ENG_END_DOX
1413
+ *
1414
+ *
1415
+ *@addinfo
1416
+ *@ENG_START_DOX
1417
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1418
+ *@ENG_END_DOX
1419
+ *
1420
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1421
+ *
1422
+ */
1423
+ virtual adlx_bool ADLX_STD_CALL IsPixelFormatChanged () = 0;
1424
+
1425
+ /**
1426
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsHDCPChanged IsHDCPChanged
1427
+ *@ENG_START_DOX @brief Checks if the HDCP settings of the display are changed. @ENG_END_DOX
1428
+ *
1429
+ *@syntax
1430
+ *@codeStart
1431
+ * adlx_bool IsHDCPChanged ()
1432
+ *@codeEnd
1433
+ *
1434
+ *@params
1435
+ *N/A
1436
+ *
1437
+ *@retvalues
1438
+ *@ENG_START_DOX
1439
+ * If the HDCP settings are changed, __true__ is returned. <br>
1440
+ * If the HDCP settings are not changed, __false__ is returned. @ENG_END_DOX
1441
+ *
1442
+ *@addinfo
1443
+ *@ENG_START_DOX
1444
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1445
+ *@ENG_END_DOX
1446
+ *
1447
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1448
+ *
1449
+ */
1450
+ virtual adlx_bool ADLX_STD_CALL IsHDCPChanged () = 0;
1451
+
1452
+ /**
1453
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorHueChanged IsCustomColorHueChanged
1454
+ *@ENG_START_DOX @brief Checks if the hue settings of the display are changed. @ENG_END_DOX
1455
+ *
1456
+ *@syntax
1457
+ *@codeStart
1458
+ * adlx_bool IsCustomColorHueChanged ()
1459
+ *@codeEnd
1460
+ *
1461
+ *@params
1462
+ *N/A
1463
+ *
1464
+ *@retvalues
1465
+ *@ENG_START_DOX
1466
+ * If the hue settings are changed, __true__ is returned. <br>
1467
+ * If the hue settings are not changed, __false__ is returned. @ENG_END_DOX
1468
+ *
1469
+ *
1470
+ *@addinfo
1471
+ *@ENG_START_DOX
1472
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1473
+ *@ENG_END_DOX
1474
+ *
1475
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1476
+ *
1477
+ */
1478
+ virtual adlx_bool ADLX_STD_CALL IsCustomColorHueChanged () = 0;
1479
+
1480
+ /**
1481
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorSaturationChanged IsCustomColorSaturationChanged
1482
+ *@ENG_START_DOX @brief Checks if the saturation settings of the display are changed. @ENG_END_DOX
1483
+ *
1484
+ *@syntax
1485
+ *@codeStart
1486
+ * adlx_bool IsCustomColorSaturationChanged ()
1487
+ *@codeEnd
1488
+ *
1489
+ *@params
1490
+ *N/A
1491
+ *
1492
+ *@retvalues
1493
+ *@ENG_START_DOX
1494
+ * If the saturation settings are changed, __true__ is returned. <br>
1495
+ * If the saturation settings are not changed, __false__ is returned. @ENG_END_DOX
1496
+ *
1497
+ *
1498
+ *@addinfo
1499
+ *@ENG_START_DOX
1500
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1501
+ *@ENG_END_DOX
1502
+ *
1503
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1504
+ *
1505
+ */
1506
+ virtual adlx_bool ADLX_STD_CALL IsCustomColorSaturationChanged () = 0;
1507
+
1508
+ /**
1509
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorBrightnessChanged IsCustomColorBrightnessChanged
1510
+ *@ENG_START_DOX @brief Checks if the brightness settings of the display are changed. @ENG_END_DOX
1511
+ *
1512
+ *@syntax
1513
+ *@codeStart
1514
+ * adlx_bool IsCustomColorBrightnessChanged ()
1515
+ *@codeEnd
1516
+ *
1517
+ *@params
1518
+ *N/A
1519
+ *
1520
+ *@retvalues
1521
+ *@ENG_START_DOX
1522
+ * If the brightness settings are changed, __true__ is returned. <br>
1523
+ * If the brightness settings are not changed, __false__ is returned. @ENG_END_DOX
1524
+ *
1525
+ *@addinfo
1526
+ *@ENG_START_DOX
1527
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1528
+ *@ENG_END_DOX
1529
+ *
1530
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1531
+ *
1532
+ */
1533
+ virtual adlx_bool ADLX_STD_CALL IsCustomColorBrightnessChanged () = 0;
1534
+
1535
+ /**
1536
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorTemperatureChanged IsCustomColorTemperatureChanged
1537
+ *@ENG_START_DOX @brief Checks if the color temperature settings of the display are changed. @ENG_END_DOX
1538
+ *
1539
+ *@syntax
1540
+ *@codeStart
1541
+ * adlx_bool IsCustomColorTemperatureChanged ()
1542
+ *@codeEnd
1543
+ *
1544
+ *@params
1545
+ *N/A
1546
+ *
1547
+ *@retvalues
1548
+ *@ENG_START_DOX
1549
+ * If the color temperature settings are changed, __true__ is returned. <br>
1550
+ * If the color temperature settings are not changed, __false__ is returned. @ENG_END_DOX
1551
+ *
1552
+ *
1553
+ *@addinfo
1554
+ *@ENG_START_DOX
1555
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1556
+ *@ENG_END_DOX
1557
+ *
1558
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1559
+ *
1560
+ */
1561
+ virtual adlx_bool ADLX_STD_CALL IsCustomColorTemperatureChanged () = 0;
1562
+
1563
+ /**
1564
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomColorContrastChanged IsCustomColorContrastChanged
1565
+ *@ENG_START_DOX @brief Checks if the color contrast settings of the display are changed. @ENG_END_DOX
1566
+ *
1567
+ *@syntax
1568
+ *@codeStart
1569
+ * adlx_bool IsCustomColorContrastChanged ()
1570
+ *@codeEnd
1571
+ *
1572
+ *@params
1573
+ *N/A
1574
+ *
1575
+ *@retvalues
1576
+ *@ENG_START_DOX
1577
+ * If the color contrast settings are changed, __true__ is returned. <br>
1578
+ * If the color contrast settings are not changed, __false__ is returned. @ENG_END_DOX
1579
+ *
1580
+ *
1581
+ *@addinfo
1582
+ *@ENG_START_DOX
1583
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1584
+ *@ENG_END_DOX
1585
+ *
1586
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1587
+ *
1588
+ */
1589
+ virtual adlx_bool ADLX_STD_CALL IsCustomColorContrastChanged () = 0;
1590
+
1591
+ /**
1592
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsCustomResolutionChanged IsCustomResolutionChanged
1593
+ *@ENG_START_DOX @brief Checks if the resolution settings of the display are changed. @ENG_END_DOX
1594
+ *
1595
+ *@syntax
1596
+ *@codeStart
1597
+ * adlx_bool IsCustomResolutionChanged ()
1598
+ *@codeEnd
1599
+ *
1600
+ *@params
1601
+ *N/A
1602
+ *
1603
+ *@retvalues
1604
+ *@ENG_START_DOX
1605
+ * If the custom resolution settings are changed, __true__ is returned. <br>
1606
+ * If the custom resolution settings are not changed, __false__ is returned. @ENG_END_DOX
1607
+ *
1608
+ *
1609
+ *@addinfo
1610
+ *@ENG_START_DOX
1611
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1612
+ *@ENG_END_DOX
1613
+ *
1614
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1615
+ *
1616
+ */
1617
+ virtual adlx_bool ADLX_STD_CALL IsCustomResolutionChanged () = 0;
1618
+ /**
1619
+ *@page DOX_IADLXDisplaySettingsChangedEvent_IsVariBrightChanged IsVariBrightChanged
1620
+ *@ENG_START_DOX @brief Checks if the Vari-Bright settings of the display are changed. @ENG_END_DOX
1621
+ *
1622
+ *@syntax
1623
+ *@codeStart
1624
+ * adlx_bool IsVariBrightChanged ()
1625
+ *@codeEnd
1626
+ *
1627
+ *@params
1628
+ *N/A
1629
+ *
1630
+ *@retvalues
1631
+ *@ENG_START_DOX
1632
+ * If the Vari-Bright settings are changed, __true__ is returned. <br>
1633
+ * If the Vari-Bright settings are not changed, __false__ is returned. @ENG_END_DOX
1634
+ *
1635
+ *
1636
+ *@addinfo
1637
+ *@ENG_START_DOX
1638
+ * __Note:__ To obtain the display, use @ref DOX_IADLXDisplaySettingsChangedEvent_GetDisplay.
1639
+ *@ENG_END_DOX
1640
+ *
1641
+ *@copydoc IADLXDisplaySettingsChangedEvent_REQ_TABLE
1642
+ *
1643
+ */
1644
+ virtual adlx_bool ADLX_STD_CALL IsVariBrightChanged () = 0;
1645
+ }; //IADLXDisplaySettingsChangedEvent
1646
+ //----------------------------------------------------------------------------------------------
1647
+ typedef IADLXInterfacePtr_T<IADLXDisplaySettingsChangedEvent> IADLXDisplaySettingsChangedEventPtr;
1648
+ } //namespace adlx
1649
+ #else //__cplusplus
1650
+ ADLX_DECLARE_IID (IADLXDisplaySettingsChangedEvent, L"IADLXDisplaySettingsChangedEvent")
1651
+ typedef struct IADLXDisplaySettingsChangedEvent IADLXDisplaySettingsChangedEvent;
1652
+
1653
+ typedef struct IADLXDisplaySettingsChangedEventVtbl
1654
+ {
1655
+ //IADLXInterface
1656
+ adlx_long (ADLX_STD_CALL* Acquire)(IADLXDisplaySettingsChangedEvent* pThis);
1657
+ adlx_long (ADLX_STD_CALL* Release)(IADLXDisplaySettingsChangedEvent* pThis);
1658
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)(IADLXDisplaySettingsChangedEvent* pThis, const wchar_t* interfaceId, void** ppInterface);
1659
+
1660
+ //IADLXChangedEvent
1661
+ ADLX_SYNC_ORIGIN(ADLX_STD_CALL* GetOrigin)(IADLXDisplaySettingsChangedEvent* pThis);
1662
+
1663
+ // IADLXDisplaySettingsChangedEvent interface
1664
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplay)(IADLXDisplaySettingsChangedEvent* pThis, IADLXDisplay** ppDisplay);
1665
+ adlx_bool (ADLX_STD_CALL* IsFreeSyncChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1666
+ adlx_bool (ADLX_STD_CALL* IsVSRChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1667
+ adlx_bool (ADLX_STD_CALL* IsGPUScalingChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1668
+ adlx_bool (ADLX_STD_CALL* IsScalingModeChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1669
+ adlx_bool (ADLX_STD_CALL* IsIntegerScalingChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1670
+ adlx_bool (ADLX_STD_CALL* IsColorDepthChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1671
+ adlx_bool (ADLX_STD_CALL* IsPixelFormatChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1672
+ adlx_bool (ADLX_STD_CALL* IsHDCPChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1673
+ adlx_bool (ADLX_STD_CALL* IsCustomColorHueChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1674
+ adlx_bool (ADLX_STD_CALL* IsCustomColorSaturationChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1675
+ adlx_bool (ADLX_STD_CALL* IsCustomColorBrightnessChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1676
+ adlx_bool (ADLX_STD_CALL* IsCustomColorTemperatureChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1677
+ adlx_bool (ADLX_STD_CALL* IsCustomColorContrastChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1678
+ adlx_bool (ADLX_STD_CALL* IsCustomResolutionChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1679
+ adlx_bool (ADLX_STD_CALL* IsVariBrightChanged)(IADLXDisplaySettingsChangedEvent* pThis);
1680
+
1681
+ } IADLXDisplaySettingsChangedEventVtbl;
1682
+
1683
+ struct IADLXDisplaySettingsChangedEvent { const IADLXDisplaySettingsChangedEventVtbl* pVtbl; };
1684
+ #endif //__cplusplus
1685
+ #pragma endregion IADLXDisplaySettingsChangedEvent
1686
+
1687
+ #pragma region IADLXDisplaySettingsChangedListener
1688
+ #if defined (__cplusplus)
1689
+ namespace adlx
1690
+ {
1691
+ class ADLX_NO_VTABLE IADLXDisplaySettingsChangedListener
1692
+ {
1693
+ public:
1694
+ /**
1695
+ *@page DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged OnDisplaySettingsChanged
1696
+ *@ENG_START_DOX @brief The __OnDisplaySettingsChanged__ method is called by ADLX when the display settings change. @ENG_END_DOX
1697
+ *
1698
+ *@syntax
1699
+ *@codeStart
1700
+ * adlx_bool OnDisplaySettingsChanged (@ref DOX_IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent)
1701
+ *@codeEnd
1702
+ *
1703
+ *@params
1704
+ *@paramrow{1.,[in],pDisplaySettingChangedEvent,@ref DOX_IADLXDisplaySettingsChangedEvent* ,@ENG_START_DOX The pointer to the display settings change event. @ENG_END_DOX}
1705
+ *
1706
+ *
1707
+ *@retvalues
1708
+ *@ENG_START_DOX
1709
+ * If the application requires ADLX to continue notifying the next listener, __true__ must be returned.<br>
1710
+ * If the application requires ADLX to stop notifying the next listener, __false__ must be returned.<br> @ENG_END_DOX
1711
+ *
1712
+ *@detaileddesc
1713
+ *@ENG_START_DOX
1714
+ * Once the application registers to the notifications with @ref DOX_IADLXDisplayChangedHandling_AddDisplaySettingsEventListener, ADLX will call this method until the application unregisters from the notifications with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener.
1715
+ * 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 display 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 display settings change event with @ref DOX_IADLXInterface_Release. @ENG_END_DOX
1716
+ *
1717
+ *
1718
+ *@copydoc IADLXDisplaySettingsChangedListener_REQ_TABLE
1719
+ *
1720
+ */
1721
+ virtual adlx_bool ADLX_STD_CALL OnDisplaySettingsChanged (IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent) = 0;
1722
+ }; //IADLXDisplaySettingsChangedListener
1723
+ } //namespace adlx
1724
+ #else //__cplusplus
1725
+ typedef struct IADLXDisplaySettingsChangedListener IADLXDisplaySettingsChangedListener;
1726
+
1727
+ typedef struct IADLXDisplaySettingsChangedListenerVtbl
1728
+ {
1729
+ // IADLXDisplaySettingsChangedListener interface
1730
+ adlx_bool (ADLX_STD_CALL* OnDisplaySettingsChanged)(IADLXDisplaySettingsChangedListener* pThis, IADLXDisplaySettingsChangedEvent* pDisplaySettingChangedEvent);
1731
+
1732
+ } IADLXDisplaySettingsChangedListenerVtbl;
1733
+
1734
+ struct IADLXDisplaySettingsChangedListener { const IADLXDisplaySettingsChangedListenerVtbl* pVtbl; };
1735
+ #endif //__cplusplus
1736
+ #pragma endregion IADLXDisplaySettingsChangedListener
1737
+
1738
+
1739
+ //Interface that allows registration to display-related events: Display List changed, Display Gamut changed, Display Gamma changed and Display 3D LUT changed
1740
+ #pragma region IADLXDisplayChangedHandling
1741
+ #if defined (__cplusplus)
1742
+ namespace adlx
1743
+ {
1744
+ class ADLX_NO_VTABLE IADLXDisplayChangedHandling : public IADLXInterface
1745
+ {
1746
+ public:
1747
+ ADLX_DECLARE_IID (L"IADLXDisplayChangedHandling")
1748
+
1749
+ /**
1750
+ *@page DOX_IADLXDisplayChangedHandling_AddDisplayListEventListener AddDisplayListEventListener
1751
+ *@ENG_START_DOX @brief Registers an event listener for notifications when the display list changes. @ENG_END_DOX
1752
+ *
1753
+ *@syntax
1754
+ *@codeStart
1755
+ * @ref ADLX_RESULT AddDisplayListEventListener (@ref DOX_IADLXDisplayListChangedListener* pDisplayListChangedListener);
1756
+ *@codeEnd
1757
+ *
1758
+ *@params
1759
+ *@paramrow{1.,[in] ,pDisplayListChangedListener,@ref DOX_IADLXDisplayListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display list change notifications. @ENG_END_DOX}
1760
+ *
1761
+ *
1762
+ *@retvalues
1763
+ *@ENG_START_DOX
1764
+ * If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
1765
+ * If the event listener is not successfully registered, an error code is returned.<br>
1766
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1767
+ *
1768
+ *@detaileddesc
1769
+ *@ENG_START_DOX
1770
+ * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayListChangedListener_OnDisplayListChanged method of the listener when the display list changes.
1771
+ * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener. @ENG_END_DOX
1772
+ *
1773
+ *
1774
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1775
+ *
1776
+ */
1777
+ virtual ADLX_RESULT ADLX_STD_CALL AddDisplayListEventListener (IADLXDisplayListChangedListener* pDisplayListChangedListener) = 0;
1778
+
1779
+ /**
1780
+ *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayListEventListener RemoveDisplayListEventListener
1781
+ *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display list changes. @ENG_END_DOX
1782
+ *
1783
+ *@syntax
1784
+ *@codeStart
1785
+ * @ref ADLX_RESULT RemoveDisplayListEventListener (@ref DOX_IADLXDisplayListChangedListener* pDisplayListChangedListener)
1786
+ *@codeEnd
1787
+ *
1788
+ *@params
1789
+ *@paramrow{1.,[in] ,pDisplayListChangedListener,@ref DOX_IADLXDisplayListChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display list change notifications. @ENG_END_DOX}
1790
+ *
1791
+ *
1792
+ *@retvalues
1793
+ *@ENG_START_DOX
1794
+ * If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
1795
+ * If the event listener is not successfully unregistered, an error code is returned.<br>
1796
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1797
+ *
1798
+ *@detaileddesc
1799
+ *@ENG_START_DOX
1800
+ * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayListChangedListener_OnDisplayListChanged method of the listener when the display list changes. The application can discard the event listener instance. @ENG_END_DOX
1801
+ *
1802
+ *
1803
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1804
+ *
1805
+ */
1806
+ virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayListEventListener (IADLXDisplayListChangedListener* pDisplayListChangedListener) = 0;
1807
+
1808
+ /**
1809
+ *@page DOX_IADLXDisplayChangedHandling_AddDisplayGamutEventListener AddDisplayGamutEventListener
1810
+ *@ENG_START_DOX @brief Registers an event listener for notifications when the display gamut changes. @ENG_END_DOX
1811
+ *
1812
+ *@syntax
1813
+ *@codeStart
1814
+ * @ref ADLX_RESULT AddDisplayGamutEventListener (@ref DOX_IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener)
1815
+ *@codeEnd
1816
+ *
1817
+ *@params
1818
+ *@paramrow{1.,[in] ,pDisplayGamutChangedListener,@ref DOX_IADLXDisplayGamutChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display gamut change notifications. @ENG_END_DOX}
1819
+ *
1820
+ *
1821
+ *@retvalues
1822
+ *@ENG_START_DOX
1823
+ * If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
1824
+ * If the event listener is not successfully registered, an error code is returned.<br>
1825
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1826
+ *
1827
+ *@detaileddesc
1828
+ *@ENG_START_DOX
1829
+ * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged method of the listener when the display gamut changes.
1830
+ * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener. @ENG_END_DOX
1831
+ *
1832
+ *
1833
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1834
+ *
1835
+ */
1836
+ virtual ADLX_RESULT ADLX_STD_CALL AddDisplayGamutEventListener (IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) = 0;
1837
+
1838
+ /**
1839
+ *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayGamutEventListener RemoveDisplayGamutEventListener
1840
+ *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display gamut changes. @ENG_END_DOX
1841
+ *
1842
+ *@syntax
1843
+ *@codeStart
1844
+ * @ref ADLX_RESULT RemoveDisplayGamutEventListener (@ref DOX_IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener)
1845
+ *@codeEnd
1846
+ *
1847
+ *@params
1848
+ *@paramrow{1.,[in] ,pDisplayGamutChangedListener,@ref DOX_IADLXDisplayGamutChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display gamut change notifications. @ENG_END_DOX}
1849
+ *
1850
+ *
1851
+ *@retvalues
1852
+ *@ENG_START_DOX
1853
+ * If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
1854
+ * If the event listener is not successfully unregistered, an error code is returned.<br>
1855
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1856
+ *
1857
+ *@detaileddesc
1858
+ *@ENG_START_DOX
1859
+ * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayGamutChangedListener_OnDisplayGamutChanged method of the listener when the display gamut changes. The application can discard the event listener instance. @ENG_END_DOX
1860
+ *
1861
+ *
1862
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1863
+ *
1864
+ */
1865
+ virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayGamutEventListener (IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener) = 0;
1866
+
1867
+ /**
1868
+ *@page DOX_IADLXDisplayChangedHandling_AddDisplayGammaEventListener AddDisplayGammaEventListener
1869
+ *@ENG_START_DOX @brief Registers an event listener for notifications when the display gamma changes. @ENG_END_DOX
1870
+ *
1871
+ *@syntax
1872
+ *@codeStart
1873
+ * @ref ADLX_RESULT AddDisplayGammaEventListener (@ref DOX_IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener)
1874
+ *@codeEnd
1875
+ *
1876
+ *@params
1877
+ *@paramrow{1.,[in] ,pDisplayGammaChangedListener,@ref DOX_IADLXDisplayGammaChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display gamma change notifications. @ENG_END_DOX}
1878
+ *
1879
+ *
1880
+ *@retvalues
1881
+ *@ENG_START_DOX
1882
+ * If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
1883
+ * If the event listener is not successfully registered, an error code is returned.<br>
1884
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1885
+ *
1886
+ *@detaileddesc
1887
+ *@ENG_START_DOX
1888
+ * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged method of the listener when the display gamma changes.
1889
+ * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener. @ENG_END_DOX
1890
+ *
1891
+ *
1892
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1893
+ *
1894
+ */
1895
+ virtual ADLX_RESULT ADLX_STD_CALL AddDisplayGammaEventListener (IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) = 0;
1896
+
1897
+ /**
1898
+ *@page DOX_IADLXDisplayChangedHandling_RemoveDisplayGammaEventListener RemoveDisplayGammaEventListener
1899
+ *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display gamma changes. @ENG_END_DOX
1900
+ *
1901
+ *@syntax
1902
+ *@codeStart
1903
+ * @ref ADLX_RESULT RemoveDisplayGammaEventListener (@ref DOX_IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener)
1904
+ *@codeEnd
1905
+ *
1906
+ *@params
1907
+ *@paramrow{1.,[in] ,pDisplayGammaChangedListener,@ref DOX_IADLXDisplayGammaChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display gamma change notifications. @ENG_END_DOX}
1908
+ *
1909
+ *
1910
+ *@retvalues
1911
+ *@ENG_START_DOX
1912
+ * If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
1913
+ * If the event listener is not successfully unregistered, an error code is returned.<br>
1914
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1915
+ *
1916
+ *@detaileddesc
1917
+ *@ENG_START_DOX
1918
+ * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplayGammaChangedListener_OnDisplayGammaChanged method of the listener when the display gamma changes. The application can discard the event listener instance. @ENG_END_DOX
1919
+ *
1920
+ *
1921
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1922
+ *
1923
+ */
1924
+ virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplayGammaEventListener (IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener) = 0;
1925
+
1926
+ /**
1927
+ *@page DOX_IADLXDisplayChangedHandling_AddDisplay3DLUTEventListener AddDisplay3DLUTEventListener
1928
+ *@ENG_START_DOX @brief Registers an event listener for notifications when the display 3D LUT changes. @ENG_END_DOX
1929
+ *
1930
+ *@syntax
1931
+ *@codeStart
1932
+ * @ref ADLX_RESULT AddDisplay3DLUTEventListener (@ref DOX_IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener)
1933
+ *@codeEnd
1934
+ *
1935
+ *@params
1936
+ *@paramrow{1.,[in] ,pDisplay3DLUTChangedListener,@ref DOX_IADLXDisplay3DLUTChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to register for receiving the display 3D LUT change notifications. @ENG_END_DOX}
1937
+ *
1938
+ *
1939
+ *@retvalues
1940
+ *@ENG_START_DOX
1941
+ * If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
1942
+ * If the event listener is not successfully registered, an error code is returned.<br>
1943
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1944
+ *
1945
+ *@detaileddesc
1946
+ *@ENG_START_DOX
1947
+ * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged method of the listener when the display 3D LUT changes.
1948
+ * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener. @ENG_END_DOX
1949
+ *
1950
+ *
1951
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1952
+ *
1953
+ */
1954
+ virtual ADLX_RESULT ADLX_STD_CALL AddDisplay3DLUTEventListener (IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) = 0;
1955
+
1956
+ /**
1957
+ *@page DOX_IADLXDisplayChangedHandling_RemoveDisplay3DLUTEventListener RemoveDisplay3DLUTEventListener
1958
+ *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display 3D LUT changes. @ENG_END_DOX
1959
+ *
1960
+ *@syntax
1961
+ *@codeStart
1962
+ * @ref ADLX_RESULT RemoveDisplay3DLUTEventListener (@ref DOX_IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener)
1963
+ *@codeEnd
1964
+ *
1965
+ *@params
1966
+ *@paramrow{1.,[in] ,pDisplay3DLUTChangedListener,@ref DOX_IADLXDisplay3DLUTChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving the display 3D LUT change notifications. @ENG_END_DOX}
1967
+ *
1968
+ *
1969
+ *@retvalues
1970
+ *@ENG_START_DOX
1971
+ * If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
1972
+ * If the event listener is not successfully unregistered, an error code is returned.<br>
1973
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
1974
+ *
1975
+ *@detaileddesc
1976
+ *@ENG_START_DOX
1977
+ * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplay3DLUTChangedListener_OnDisplay3DLUTChanged method of the listener when the display 3D LUT changes. The application can discard the event listener instance. @ENG_END_DOX
1978
+ *
1979
+ *
1980
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
1981
+ *
1982
+ */
1983
+ virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplay3DLUTEventListener (IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener) = 0;
1984
+ /**
1985
+ *@page DOX_IADLXDisplayChangedHandling_AddDisplaySettingsEventListener AddDisplaySettingsEventListener
1986
+ *@ENG_START_DOX @brief Registers an event listener for notifications when the display settings change. @ENG_END_DOX
1987
+ *
1988
+ *@syntax
1989
+ *@codeStart
1990
+ * @ref ADLX_RESULT AddDisplaySettingsEventListener (@ref DOX_IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener)
1991
+ *@codeEnd
1992
+ *
1993
+ *@params
1994
+ *@paramrow{1.,[in], pDisplaySettingsChangedListener,@ref DOX_IADLXDisplaySettingsChangedListener*, @ENG_START_DOX The pointer to the event listener interface to register for receiving display settings change notifications. @ENG_END_DOX}
1995
+ *
1996
+ *
1997
+ *@retvalues
1998
+ *@ENG_START_DOX
1999
+ * If the event listener is successfully registered, __ADLX_OK__ is returned.<br>
2000
+ * If the event listener is not successfully registered, an error code is returned.<br>
2001
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
2002
+ *
2003
+ *@detaileddesc
2004
+ *@ENG_START_DOX
2005
+ * After the event listener is successfully registered, ADLX will call @ref DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged method of the listener when display settings change.<br>
2006
+ * The event listener instance must exist until the application unregisters the event listener with @ref DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener.<br> @ENG_END_DOX
2007
+ *
2008
+ *
2009
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
2010
+ *
2011
+ */
2012
+ virtual ADLX_RESULT ADLX_STD_CALL AddDisplaySettingsEventListener (IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) = 0;
2013
+
2014
+ /**
2015
+ *@page DOX_IADLXDisplayChangedHandling_RemoveDisplaySettingsEventListener RemoveDisplaySettingsEventListener
2016
+ *@ENG_START_DOX @brief Unregisters an event listener from notifications when the display settings change. @ENG_END_DOX
2017
+ *
2018
+ *@syntax
2019
+ *@codeStart
2020
+ * @ref ADLX_RESULT RemoveDisplaySettingsEventListener (@ref DOX_IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener)
2021
+ *@codeEnd
2022
+ *
2023
+ *@params
2024
+ *@paramrow{1.,[in] ,pDisplaySettingsChangedListener,@ref DOX_IADLXDisplaySettingsChangedListener* ,@ENG_START_DOX The pointer to the event listener interface to unregister from receiving display settings change notifications. @ENG_END_DOX}
2025
+ *
2026
+ *
2027
+ *@retvalues
2028
+ *@ENG_START_DOX
2029
+ * If the event listener is successfully unregistered, __ADLX_OK__ is returned.<br>
2030
+ * If the event listener is not successfully unregistered, an error code is returned.<br>
2031
+ * Refer to @ref ADLX_RESULT for success codes and error codes.<br> @ENG_END_DOX
2032
+ *
2033
+ *@detaileddesc
2034
+ *@ENG_START_DOX
2035
+ * After the event listener is successfully unregistered, ADLX will no longer call @ref DOX_IADLXDisplaySettingsChangedListener_OnDisplaySettingsChanged method of the listener when display settings change.
2036
+ * The application can discard the event listener instance. @ENG_END_DOX
2037
+ *
2038
+ *
2039
+ *@copydoc IADLXDisplayChangedHandling_REQ_TABLE
2040
+ *
2041
+ */
2042
+ virtual ADLX_RESULT ADLX_STD_CALL RemoveDisplaySettingsEventListener (IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener) = 0;
2043
+ }; //IADLXDisplayChangedHandling
2044
+ //----------------------------------------------------------------------------------------------
2045
+ typedef IADLXInterfacePtr_T<IADLXDisplayChangedHandling> IADLXDisplayChangedHandlingPtr;
2046
+ } //namespace adlx
2047
+ #else //__cplusplus
2048
+ ADLX_DECLARE_IID (IADLXDisplayChangedHandling, L"IADLXDisplayChangedHandling")
2049
+ typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling;
2050
+
2051
+ typedef struct IADLXDisplayChangedHandlingVtbl
2052
+ {
2053
+ //IADLXInterface
2054
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayChangedHandling* pThis );
2055
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayChangedHandling* pThis );
2056
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayChangedHandling* pThis, const wchar_t* interfaceId, void** ppInterface );
2057
+
2058
+ // IADLXDisplayChangedHandling interface
2059
+ ADLX_RESULT (ADLX_STD_CALL* AddDisplayListEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayListChangedListener* pDisplayListChangedListener );
2060
+ ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayListEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayListChangedListener* pDisplayListChangedListener );
2061
+
2062
+ ADLX_RESULT (ADLX_STD_CALL* AddDisplayGamutEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener );
2063
+ ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayGamutEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGamutChangedListener* pDisplayGamutChangedListener );
2064
+
2065
+ ADLX_RESULT (ADLX_STD_CALL* AddDisplayGammaEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener );
2066
+ ADLX_RESULT (ADLX_STD_CALL* RemoveDisplayGammaEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplayGammaChangedListener* pDisplayGammaChangedListener );
2067
+
2068
+ ADLX_RESULT (ADLX_STD_CALL* AddDisplay3DLUTEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener );
2069
+ ADLX_RESULT (ADLX_STD_CALL* RemoveDisplay3DLUTEventListener)( IADLXDisplayChangedHandling* pThis, IADLXDisplay3DLUTChangedListener* pDisplay3DLUTChangedListener );
2070
+
2071
+ ADLX_RESULT (ADLX_STD_CALL* AddDisplaySettingsEventListener)(IADLXDisplayChangedHandling* pThis, IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener);
2072
+ ADLX_RESULT (ADLX_STD_CALL* RemoveDisplaySettingsEventListener)(IADLXDisplayChangedHandling* pThis, IADLXDisplaySettingsChangedListener* pDisplaySettingsChangedListener);
2073
+
2074
+ } IADLXDisplayChangedHandlingVtbl;
2075
+
2076
+ struct IADLXDisplayChangedHandling { const IADLXDisplayChangedHandlingVtbl* pVtbl; };
2077
+ #endif //__cplusplus
2078
+ #pragma endregion IADLXDisplayChangedHandling
2079
+
2080
+ //Display Services interface
2081
+ #pragma region IADLXDisplayServices
2082
+ #if defined (__cplusplus)
2083
+ namespace adlx
2084
+ {
2085
+ class ADLX_NO_VTABLE IADLXDisplayServices : public IADLXInterface
2086
+ {
2087
+ public:
2088
+ ADLX_DECLARE_IID (L"IADLXDisplayServices")
2089
+ /**
2090
+ * @page DOX_IADLXDisplayServices_GetNumberOfDisplays GetNumberOfDisplays
2091
+ * @ENG_START_DOX
2092
+ * @brief Gets the number of displays connected to the AMD GPUs.
2093
+ * @ENG_END_DOX
2094
+ *
2095
+ * @syntax
2096
+ * @codeStart
2097
+ * @ref ADLX_RESULT GetNumberOfDisplays (adlx_uint* numDisplays)
2098
+ * @codeEnd
2099
+ *
2100
+ * @params
2101
+ * @paramrow{1.,[out] ,numDisplays,adlx_uint* ,@ENG_START_DOX The pointer to a variable where the number of displays is returned. @ENG_END_DOX}
2102
+ *
2103
+ * @retvalues
2104
+ * @ENG_START_DOX
2105
+ * If the number of displays is successfully returned, __ADLX_OK__ is returned. <br>
2106
+ * If the number of displays is not successfully returned, an error code is returned. <br>
2107
+ * Refer to @ref ADLX_RESULT for success codes and errors codes.
2108
+ * @ENG_END_DOX
2109
+ *
2110
+ * @detaileddesc
2111
+ * @ENG_START_DOX
2112
+ * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support".
2113
+ * @ENG_END_DOX
2114
+ *
2115
+ * @copydoc IADLXDisplayServices_REQ_TABLE
2116
+ *
2117
+ */
2118
+ virtual ADLX_RESULT ADLX_STD_CALL GetNumberOfDisplays (adlx_uint* numDisplays) = 0;
2119
+
2120
+ /**
2121
+ * @page DOX_IADLXDisplayServices_GetDisplays GetDisplays
2122
+ * @ENG_START_DOX
2123
+ * @brief Gets the reference counted list of displays connected to the AMD GPUs.
2124
+ * @ENG_END_DOX
2125
+ *
2126
+ * @syntax
2127
+ * @codeStart
2128
+ * @ref ADLX_RESULT GetDisplays (@ref DOX_IADLXDisplayList** ppDisplay)
2129
+ * @codeEnd
2130
+ *
2131
+ * @params
2132
+ * @paramrow{1.,[out] ,ppDisplay,@ref DOX_IADLXDisplayList** ,@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 __*ppDisplay__ to __nullptr__. @ENG_END_DOX}
2133
+ *
2134
+ * @retvalues
2135
+ * @ENG_START_DOX
2136
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2137
+ * If the interface is not successfully returned, an error code is returned. <br>
2138
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
2139
+ * @ENG_END_DOX
2140
+ *
2141
+ * @detaileddesc
2142
+ * @ENG_START_DOX
2143
+ * @details For more information about the AMD GPUs, refer to @ref @adlx_gpu_support "ADLX GPU Support". <br>
2144
+ * The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2145
+ * @ENG_END_DOX
2146
+ *
2147
+ * @addinfo
2148
+ * @ENG_START_DOX
2149
+ * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
2150
+ * @ENG_END_DOX
2151
+ *
2152
+ * @copydoc IADLXDisplayServices_REQ_TABLE
2153
+ *
2154
+ */
2155
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplays (IADLXDisplayList** ppDisplay) = 0;
2156
+
2157
+ /**
2158
+ * @page DOX_IADLXDisplayServices_Get3DLUT Get3DLUT
2159
+ * @ENG_START_DOX
2160
+ * @brief Gets the reference counted 3D LUT interface for a display.
2161
+ * @ENG_END_DOX
2162
+ *
2163
+ *@syntax
2164
+ *@codeStart
2165
+ * @ref ADLX_RESULT Get3DLUT (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplay3DLUT** ppDisp3DLUT)
2166
+ *@codeEnd
2167
+ *
2168
+ *@params
2169
+ *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2170
+ *@paramrow{2.,[out] ,ppDisp3DLUT,@ref DOX_IADLXDisplay3DLUT** ,@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 __*ppDisp3DLUT__ to __nullptr__. @ENG_END_DOX}
2171
+ *
2172
+ *@retvalues
2173
+ *@ENG_START_DOX
2174
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2175
+ * If the interface is not successfully returned, an error code is returned. <br>
2176
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2177
+ *
2178
+ *@detaileddesc
2179
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2180
+ *
2181
+ *@addinfo
2182
+ * @ENG_START_DOX
2183
+ * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
2184
+ * @ENG_END_DOX
2185
+ *
2186
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2187
+ *
2188
+ */
2189
+ virtual ADLX_RESULT ADLX_STD_CALL Get3DLUT (IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT) = 0;
2190
+
2191
+ /**
2192
+ *@page DOX_IADLXDisplayServices_GetGamut GetGamut
2193
+ *@ENG_START_DOX @brief Gets the reference counted gamut interface for a display. @ENG_END_DOX
2194
+ *
2195
+ *@syntax
2196
+ *@codeStart
2197
+ * @ref ADLX_RESULT GetGamut (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGamut** ppDispGamut)
2198
+ *@codeEnd
2199
+ *
2200
+ *@params
2201
+ *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2202
+ *@paramrow{2.,[out] ,ppDispGamut,@ref DOX_IADLXDisplayGamut** ,@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 __*ppDispGamut__ to __nullptr__. @ENG_END_DOX}
2203
+ *
2204
+ *@retvalues
2205
+ *@ENG_START_DOX
2206
+ *If the interface is successfully returned, __ADLX_OK__ is returned.<br>
2207
+ *If the interface is not returned, an error code is returned.<br>
2208
+ *Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2209
+ *
2210
+ *@detaileddesc
2211
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2212
+ *
2213
+ *@addinfo
2214
+ * @ENG_START_DOX
2215
+ * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
2216
+ * @ENG_END_DOX
2217
+ *
2218
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2219
+ *
2220
+ */
2221
+ virtual ADLX_RESULT ADLX_STD_CALL GetGamut (IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut) = 0;
2222
+
2223
+ /**
2224
+ *@page DOX_IADLXDisplayServices_GetGamma GetGamma
2225
+ *@ENG_START_DOX @brief Gets the reference counted gamma interface for a display. @ENG_END_DOX
2226
+ *
2227
+ *@syntax
2228
+ *@codeStart
2229
+ * @ref ADLX_RESULT GetGamma (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGamma** ppDispGamma)
2230
+ *@codeEnd
2231
+ *
2232
+ *@params
2233
+ *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2234
+ *@paramrow{2.,[out] ,ppDispGamma,@ref DOX_IADLXDisplayGamma** ,@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 __*ppDispGamma__ to __nullptr__. @ENG_END_DOX}
2235
+ *
2236
+ *@retvalues
2237
+ *@ENG_START_DOX
2238
+ * If the interface is successfully returned, __ADLX_OK__ is returned.<br>
2239
+ * If the interface is not successfully returned, an error code is returned. <br>
2240
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2241
+ *
2242
+ *@detaileddesc
2243
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2244
+ *
2245
+ * @addinfo
2246
+ * @ENG_START_DOX
2247
+ * In C++ when using a smart pointer for the returned interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
2248
+ * @ENG_END_DOX
2249
+ *
2250
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2251
+ *
2252
+ */
2253
+ virtual ADLX_RESULT ADLX_STD_CALL GetGamma (IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma) = 0;
2254
+
2255
+ /**
2256
+ * @page DOX_IADLXDisplayServices_GetDisplayChangedHandling GetDisplayChangedHandling
2257
+ * @ENG_START_DOX
2258
+ * @brief Gets the reference counted interface that allows registering and unregistering for notifications when display change.
2259
+ * @ENG_END_DOX
2260
+ *
2261
+ * @syntax
2262
+ * @codeStart
2263
+ * @ref ADLX_RESULT GetDisplayChangedHandling (@ref DOX_IADLXDisplayChangedHandling** ppDisplayChangedHandling)
2264
+ * @codeEnd
2265
+ *
2266
+ * @params
2267
+ * @paramrow{1.,[in] ,ppDisplayChangedHandling,@ref DOX_IADLXDisplayChangedHandling** ,@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 __*ppDisplayChangedHandling__ to __nullptr__. @ENG_END_DOX}
2268
+ *
2269
+ * @retvalues
2270
+ * @ENG_START_DOX
2271
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2272
+ * If the interface is not successfully returned, an error code is returned. <br>
2273
+ * Refer to @ref ADLX_RESULT for success codes and error codes.
2274
+ * @ENG_END_DOX
2275
+ *
2276
+ * @detaileddesc
2277
+ * @ENG_START_DOX
2278
+ * @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed.
2279
+ * @ENG_END_DOX
2280
+ *
2281
+ * @addinfo
2282
+ * @ENG_START_DOX
2283
+ * In C++ when using a smart pointer for the display changing listener interface there is no need to call @ref DOX_IADLXInterface_Release because the smart pointer calls it internally.
2284
+ * @ENG_END_DOX
2285
+ *
2286
+ * @copydoc IADLXDisplayServices_REQ_TABLE
2287
+ *
2288
+ */
2289
+ virtual ADLX_RESULT ADLX_STD_CALL GetDisplayChangedHandling (IADLXDisplayChangedHandling** ppDisplayChangedHandling) = 0;
2290
+ /**
2291
+ *@page DOX_IADLXDisplayServices_GetFreeSync GetFreeSync
2292
+ *@ENG_START_DOX @brief Gets the reference counted AMD FreeSync™ Technology interface. @ENG_END_DOX
2293
+ *
2294
+ *@syntax
2295
+ *@codeStart
2296
+ * @ref ADLX_RESULT GetFreeSync (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayFreeSync** ppFreeSync)
2297
+ *@codeEnd
2298
+ *
2299
+ *@params
2300
+ *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2301
+ *@paramrow{2.,[out] ,ppFreeSync,@ref DOX_IADLXDisplayFreeSync** ,@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 __*ppFreeSync__ to __nullptr__. @ENG_END_DOX}
2302
+ *
2303
+ *@retvalues
2304
+ *@ENG_START_DOX
2305
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2306
+ * If the interface is not successfully returned, an error code is returned. <br>
2307
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2308
+ *
2309
+ *@detaileddesc
2310
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2311
+ *
2312
+ *@addinfo
2313
+ *@ENG_START_DOX
2314
+ *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
2315
+ *
2316
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2317
+ *
2318
+ */
2319
+ virtual ADLX_RESULT ADLX_STD_CALL GetFreeSync (IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync) = 0;
2320
+
2321
+ /**
2322
+ *@page DOX_IADLXDisplayServices_GetVirtualSuperResolution GetVirtualSuperResolution
2323
+ *@ENG_START_DOX @brief Gets the reference counted virtual super resolution interface for a display. @ENG_END_DOX
2324
+ *
2325
+ *@syntax
2326
+ *@codeStart
2327
+ * @ref ADLX_RESULT GetVirtualSuperResolution (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayVSR** ppVSR)
2328
+ *@codeEnd
2329
+ *
2330
+ *@params
2331
+ *@paramrow{1.,[in] ,pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2332
+ *@paramrow{2.,[out] ,ppVSR,@ref DOX_IADLXDisplayVSR** ,@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 __*ppVSR__ to __nullptr__. @ENG_END_DOX}
2333
+ *
2334
+ *@retvalues
2335
+ *@ENG_START_DOX
2336
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2337
+ * If the interface is not successfully returned, an error code is returned. <br>
2338
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2339
+ *
2340
+ *@detaileddesc
2341
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2342
+ *
2343
+ *@addinfo
2344
+ *@ENG_START_DOX
2345
+ *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
2346
+ *
2347
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2348
+ *
2349
+ */
2350
+ virtual ADLX_RESULT ADLX_STD_CALL GetVirtualSuperResolution (IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR) = 0;
2351
+
2352
+ /**
2353
+ *@page DOX_IADLXDisplayServices_GetGPUScaling GetGPUScaling
2354
+ *@ENG_START_DOX @brief Gets the reference counted GPU scaling interface for a display. @ENG_END_DOX
2355
+ *
2356
+ *@syntax
2357
+ *@codeStart
2358
+ * @ref ADLX_RESULT GetGPUScaling (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayGPUScaling** ppGPUScaling)
2359
+ *@codeEnd
2360
+ *
2361
+ *@params
2362
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay* ,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2363
+ *@paramrow{2.,[out],ppGPUScaling,@ref DOX_IADLXDisplayGPUScaling** ,@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 __*ppGPUScaling__ to __nullptr__. @ENG_END_DOX}
2364
+ *
2365
+ *@retvalues
2366
+ *@ENG_START_DOX
2367
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2368
+ * If the interface is not successfully returned, an error code is returned. <br>
2369
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2370
+ *
2371
+ *@detaileddesc
2372
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2373
+ *
2374
+ *@addinfo
2375
+ *@ENG_START_DOX
2376
+ *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
2377
+ *
2378
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2379
+ *
2380
+ */
2381
+ virtual ADLX_RESULT ADLX_STD_CALL GetGPUScaling (IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling) = 0;
2382
+
2383
+ /**
2384
+ *@page DOX_IADLXDisplayServices_GetScalingMode GetScalingMode
2385
+ *@ENG_START_DOX @brief Gets the reference counted scaling mode interface for a display. @ENG_END_DOX
2386
+ *
2387
+ *@syntax
2388
+ *@codeStart
2389
+ * @ref ADLX_RESULT GetScalingMode (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayScalingMode** ppScalingMode)
2390
+ *@codeEnd
2391
+ *
2392
+ *@params
2393
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2394
+ *@paramrow{2.,[out],ppScalingMode,@ref DOX_IADLXDisplayScalingMode**,@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 __*ppScalingMode__ to __nullptr__. @ENG_END_DOX}
2395
+ *
2396
+ *@retvalues
2397
+ *@ENG_START_DOX
2398
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2399
+ * If the interface is not successfully returned, an error code is returned. <br>
2400
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2401
+ *
2402
+ *@detaileddesc
2403
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2404
+ *
2405
+ *@addinfo
2406
+ *@ENG_START_DOX
2407
+ *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
2408
+ *
2409
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2410
+ *
2411
+ */
2412
+ virtual ADLX_RESULT ADLX_STD_CALL GetScalingMode (IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode) = 0;
2413
+
2414
+ /**
2415
+ *@page DOX_IADLXDisplayServices_GetIntegerScaling GetIntegerScaling
2416
+ *@ENG_START_DOX @brief Gets the reference counted integer scaling interface for a display. @ENG_END_DOX
2417
+ *
2418
+ *@syntax
2419
+ *@codeStart
2420
+ * @ref ADLX_RESULT GetIntegerScaling (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayIntegerScaling** ppIntegerScaling)
2421
+ *@codeEnd
2422
+ *
2423
+ *@params
2424
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2425
+ *@paramrow{2.,[out],ppIntegerScaling,@ref DOX_IADLXDisplayIntegerScaling**,@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 __*ppIntegerScaling__ to __nullptr__. @ENG_END_DOX}
2426
+ *
2427
+ *@retvalues
2428
+ *@ENG_START_DOX
2429
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2430
+ * If the interface is not successfully returned, an error code is returned. <br>
2431
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2432
+ *
2433
+ *@detaileddesc
2434
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2435
+ *
2436
+ *@addinfo
2437
+ *@ENG_START_DOX
2438
+ *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
2439
+ *
2440
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2441
+ *
2442
+ */
2443
+ virtual ADLX_RESULT ADLX_STD_CALL GetIntegerScaling (IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling) = 0;
2444
+ /**
2445
+ *@page DOX_IADLXDisplayServices_GetColorDepth GetColorDepth
2446
+ *@ENG_START_DOX @brief Gets the reference counted color depth interface for a display. @ENG_END_DOX
2447
+ *
2448
+ *@syntax
2449
+ *@codeStart
2450
+ * @ref ADLX_RESULT GetColorDepth (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayColorDepth** ppColorDepth)
2451
+ *@codeEnd
2452
+ *
2453
+ *@params
2454
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2455
+ *@paramrow{2.,[out],ppColorDepth,@ref DOX_IADLXDisplayColorDepth**,@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 __*ppColorDepth__ to __nullptr__. @ENG_END_DOX}
2456
+ *
2457
+ *@retvalues
2458
+ *@ENG_START_DOX
2459
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2460
+ * If the interface is not successfully returned, an error code is returned. <br>
2461
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2462
+ *
2463
+ *@detaileddesc
2464
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2465
+ *
2466
+ *@addinfo
2467
+ *@ENG_START_DOX
2468
+ *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
2469
+ *
2470
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2471
+ *
2472
+ */
2473
+ virtual ADLX_RESULT ADLX_STD_CALL GetColorDepth (IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth) = 0;
2474
+ /**
2475
+ *@page DOX_IADLXDisplayServices_GetPixelFormat GetPixelFormat
2476
+ *@ENG_START_DOX @brief Gets the reference counted pixel format interface for a display. @ENG_END_DOX
2477
+ *
2478
+ *@syntax
2479
+ *@codeStart
2480
+ * @ref ADLX_RESULT GetPixelFormat (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayPixelFormat** ppPixelFormat)
2481
+ *@codeEnd
2482
+ *
2483
+ *@params
2484
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2485
+ *@paramrow{2.,[out],ppPixelFormat,@ref DOX_IADLXDisplayPixelFormat**,@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 __*ppPixelFormat__ to __nullptr__. @ENG_END_DOX}
2486
+ *
2487
+ *@retvalues
2488
+ *@ENG_START_DOX
2489
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2490
+ * If the interface is not successfully returned, an error code is returned. <br>
2491
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2492
+ *
2493
+ *@detaileddesc
2494
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2495
+ *
2496
+ *@addinfo
2497
+ *@ENG_START_DOX
2498
+ *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
2499
+ *
2500
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2501
+ *
2502
+ */
2503
+ virtual ADLX_RESULT ADLX_STD_CALL GetPixelFormat (IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat) = 0;
2504
+ /**
2505
+ *@page DOX_IADLXDisplayServices_GetCustomColor GetCustomColor
2506
+ *@ENG_START_DOX @brief Gets the reference counted custom color interface for a display. @ENG_END_DOX
2507
+ *
2508
+ *@syntax
2509
+ *@codeStart
2510
+ * @ref ADLX_RESULT GetCustomColor (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayCustomColor** ppCustomColor)
2511
+ *@codeEnd
2512
+ *
2513
+ *@params
2514
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2515
+ *@paramrow{2.,[out],ppCustomColor,@ref DOX_IADLXDisplayCustomColor**,@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 __*ppCustomColor__ to __nullptr__. @ENG_END_DOX}
2516
+ *
2517
+ *@retvalues
2518
+ *@ENG_START_DOX
2519
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2520
+ * If the interface is not successfully returned, an error code is returned. <br>
2521
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2522
+ *
2523
+ *@detaileddesc
2524
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2525
+ *
2526
+ *@addinfo
2527
+ *@ENG_START_DOX
2528
+ *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
2529
+ *
2530
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2531
+ *
2532
+ */
2533
+ virtual ADLX_RESULT ADLX_STD_CALL GetCustomColor (IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor) = 0;
2534
+ /**
2535
+ *@page DOX_IADLXDisplayServices_GetHDCP GetHDCP
2536
+ *@ENG_START_DOX @brief Gets the reference counted HDCP interface for a display. @ENG_END_DOX
2537
+ *
2538
+ *@syntax
2539
+ *@codeStart
2540
+ * @ref ADLX_RESULT GetHDCP (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayHDCP** ppHDCP)
2541
+ *@codeEnd
2542
+ *
2543
+ *@params
2544
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2545
+ *@paramrow{2.,[out],ppHDCP,@ref DOX_IADLXDisplayHDCP**,@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 __*ppHDCP__ to __nullptr__. @ENG_END_DOX}
2546
+ *
2547
+ *@retvalues
2548
+ *@ENG_START_DOX
2549
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2550
+ * If the interface is not successfully returned, an error code is returned. <br>
2551
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2552
+ *
2553
+ *@detaileddesc
2554
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2555
+ *
2556
+ *@addinfo
2557
+ *@ENG_START_DOX
2558
+ *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
2559
+ *
2560
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2561
+ *
2562
+ */
2563
+ virtual ADLX_RESULT ADLX_STD_CALL GetHDCP (IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP) = 0;
2564
+ /**
2565
+ *@page DOX_IADLXDisplayServices_GetCustomResolution GetCustomResolution
2566
+ *@ENG_START_DOX @brief Gets the reference counted custom resolution interface for a display. @ENG_END_DOX
2567
+ *
2568
+ *@syntax
2569
+ *@codeStart
2570
+ * @ref ADLX_RESULT GetCustomResolution (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayCustomResolution** ppCustomResolution)
2571
+ *@codeEnd
2572
+ *
2573
+ *@params
2574
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2575
+ *@paramrow{2.,[out],ppCustomResolution,@ref DOX_IADLXDisplayCustomResolution**,@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 __*ppCustomResolution__ to __nullptr__. @ENG_END_DOX}
2576
+ *
2577
+ *@retvalues
2578
+ *@ENG_START_DOX
2579
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2580
+ * If the interface is not successfully returned, an error code is returned. <br>
2581
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2582
+ *
2583
+ *@detaileddesc
2584
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2585
+ *
2586
+ *@addinfo
2587
+ *@ENG_START_DOX
2588
+ *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
2589
+ *
2590
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2591
+ *
2592
+ */
2593
+ virtual ADLX_RESULT ADLX_STD_CALL GetCustomResolution (IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution) = 0;
2594
+ /**
2595
+ *@page DOX_IADLXDisplayServices_GetVariBright GetVariBright
2596
+ *@ENG_START_DOX @brief Gets the reference counted Vari-Bright interface for a display. @ENG_END_DOX
2597
+ *
2598
+ *@syntax
2599
+ *@codeStart
2600
+ * @ref ADLX_RESULT GetVariBright (@ref DOX_IADLXDisplay* pDisplay, @ref DOX_IADLXDisplayVariBright ** ppVariBright)
2601
+ *@codeEnd
2602
+ *
2603
+ *@params
2604
+ *@paramrow{1.,[in],pDisplay,@ref DOX_IADLXDisplay*,@ENG_START_DOX The pointer to the display interface. @ENG_END_DOX}
2605
+ *@paramrow{2.,[out],ppVariBright,@ref DOX_IADLXDisplayVariBright **,@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 __*ppVariBright__ to __nullptr__. @ENG_END_DOX}
2606
+ *
2607
+ *@retvalues
2608
+ *@ENG_START_DOX
2609
+ * If the interface is successfully returned, __ADLX_OK__ is returned. <br>
2610
+ * If the interface is not successfully returned, an error code is returned. <br>
2611
+ * Refer to @ref ADLX_RESULT for success codes and error codes. @ENG_END_DOX
2612
+ *
2613
+ *@detaileddesc
2614
+ *@ENG_START_DOX @details The returned interface must be discarded with @ref DOX_IADLXInterface_Release when it is no longer needed. @ENG_END_DOX
2615
+ *
2616
+ *@addinfo
2617
+ *@ENG_START_DOX
2618
+ *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
2619
+ *
2620
+ *@copydoc IADLXDisplayServices_REQ_TABLE
2621
+ *
2622
+ */
2623
+ virtual ADLX_RESULT ADLX_STD_CALL GetVariBright (IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright) = 0;
2624
+ }; //IADLXDisplayServices
2625
+ //----------------------------------------------------------------------------------------------
2626
+ typedef IADLXInterfacePtr_T<IADLXDisplayServices> IADLXDisplayServicesPtr;
2627
+ } //namespace adlx
2628
+ #else //__cplusplus
2629
+ ADLX_DECLARE_IID (IADLXDisplayServices, L"IADLXDisplayServices")
2630
+ typedef struct IADLXDisplayServices IADLXDisplayServices;
2631
+
2632
+ typedef struct IADLXDisplayFreeSync IADLXDisplayFreeSync;
2633
+ typedef struct IADLXDisplayVSR IADLXDisplayVSR;
2634
+ typedef struct IADLXDisplayGPUScaling IADLXDisplayGPUScaling;
2635
+ typedef struct IADLXDisplayScalingMode IADLXDisplayScalingMode;
2636
+ typedef struct IADLXDisplayIntegerScaling IADLXDisplayIntegerScaling;
2637
+ typedef struct IADLXDisplayColorDepth IADLXDisplayColorDepth;
2638
+ typedef struct IADLXDisplayPixelFormat IADLXDisplayPixelFormat;
2639
+ typedef struct IADLXDisplayCustomColor IADLXDisplayCustomColor;
2640
+ typedef struct IADLXDisplayHDCP IADLXDisplayHDCP;
2641
+ typedef struct IADLXDisplayCustomResolution IADLXDisplayCustomResolution;
2642
+ typedef struct IADLXDisplayChangedHandling IADLXDisplayChangedHandling;
2643
+ typedef struct IADLXDisplayVariBright IADLXDisplayVariBright;
2644
+
2645
+ typedef struct IADLXDisplayServicesVtbl
2646
+ {
2647
+ //IADLXInterface
2648
+ adlx_long (ADLX_STD_CALL* Acquire)( IADLXDisplayServices* pThis );
2649
+ adlx_long (ADLX_STD_CALL* Release)( IADLXDisplayServices* pThis );
2650
+ ADLX_RESULT (ADLX_STD_CALL* QueryInterface)( IADLXDisplayServices* pThis, const wchar_t* interfaceId, void** ppInterface );
2651
+
2652
+ //IADLXDisplayServices
2653
+ ADLX_RESULT (ADLX_STD_CALL* GetNumberOfDisplays)( IADLXDisplayServices* pThis, adlx_uint* numDisplays );
2654
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplays)( IADLXDisplayServices* pThis, IADLXDisplayList** ppDisplays );
2655
+ ADLX_RESULT (ADLX_STD_CALL* Get3DLUT)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplay3DLUT** ppDisp3DLUT );
2656
+ ADLX_RESULT (ADLX_STD_CALL* GetGamut)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamut** ppDispGamut );
2657
+ ADLX_RESULT (ADLX_STD_CALL* GetGamma)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGamma** ppDispGamma );
2658
+ ADLX_RESULT (ADLX_STD_CALL* GetDisplayChangedHandling)( IADLXDisplayServices* pThis, IADLXDisplayChangedHandling** ppDisplayChangedHandling );
2659
+ ADLX_RESULT (ADLX_STD_CALL* GetFreeSync)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayFreeSync** ppFreeSync );
2660
+ ADLX_RESULT (ADLX_STD_CALL* GetVirtualSuperResolution)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayVSR** ppVSR );
2661
+ ADLX_RESULT (ADLX_STD_CALL* GetGPUScaling)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayGPUScaling** ppGPUScaling );
2662
+ ADLX_RESULT (ADLX_STD_CALL* GetScalingMode)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayScalingMode** ppScalingMode );
2663
+ ADLX_RESULT (ADLX_STD_CALL* GetIntegerScaling)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayIntegerScaling** ppIntegerScaling );
2664
+ ADLX_RESULT (ADLX_STD_CALL* GetColorDepth)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayColorDepth** ppColorDepth );
2665
+ ADLX_RESULT (ADLX_STD_CALL* GetPixelFormat)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayPixelFormat** ppPixelFormat );
2666
+ ADLX_RESULT (ADLX_STD_CALL* GetCustomColor)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomColor** ppCustomColor );
2667
+ ADLX_RESULT (ADLX_STD_CALL* GetHDCP)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayHDCP** ppHDCP );
2668
+ ADLX_RESULT (ADLX_STD_CALL* GetCustomResolution)( IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayCustomResolution** ppCustomResolution );
2669
+ ADLX_RESULT (ADLX_STD_CALL* GetVariBright)(IADLXDisplayServices* pThis, IADLXDisplay* pDisplay, IADLXDisplayVariBright** ppVariBright);
2670
+ } IADLXDisplayServicesVtbl;
2671
+
2672
+ struct IADLXDisplayServices { const IADLXDisplayServicesVtbl* pVtbl; };
2673
+ #endif //__cplusplus
2674
+ #pragma endregion IADLXDisplayServices
2675
+
2676
+ #endif//ADLX_IDISPLAYS_H