Imported Upstream version 2.2.0
[deb_libcec.git] / src / lib / platform / adl / adl_structures.h
1 ///
2 /// Copyright (c) 2008 - 2012 Advanced Micro Devices, Inc.
3
4 /// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
5 /// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
6 /// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
7
8 /// \file adl_structures.h
9 ///\brief This file contains the structure declarations that are used by the public ADL interfaces for \ALL platforms.\n <b>Included in ADL SDK</b>
10 ///
11 /// All data structures used in AMD Display Library (ADL) public interfaces should be defined in this header file.
12 ///
13
14 #ifndef ADL_STRUCTURES_H_
15 #define ADL_STRUCTURES_H_
16
17 #include "adl_defines.h"
18
19 /////////////////////////////////////////////////////////////////////////////////////////////
20 ///\brief Structure containing information about the graphics adapter.
21 ///
22 /// This structure is used to store various information about the graphics adapter. This
23 /// information can be returned to the user. Alternatively, it can be used to access various driver calls to set
24 /// or fetch various settings upon the user's request.
25 /// \nosubgrouping
26 ////////////////////////////////////////////////////////////////////////////////////////////
27 typedef struct AdapterInfo
28 {
29 /// \ALL_STRUCT_MEM
30
31 /// Size of the structure.
32 int iSize;
33 /// The ADL index handle. One GPU may be associated with one or two index handles
34 int iAdapterIndex;
35 /// The unique device ID associated with this adapter.
36 char strUDID[ADL_MAX_PATH];
37 /// The BUS number associated with this adapter.
38 int iBusNumber;
39 /// The driver number associated with this adapter.
40 int iDeviceNumber;
41 /// The function number.
42 int iFunctionNumber;
43 /// The vendor ID associated with this adapter.
44 int iVendorID;
45 /// Adapter name.
46 char strAdapterName[ADL_MAX_PATH];
47 /// Display name. For example, "\\Display0" for Windows or ":0:0" for Linux.
48 char strDisplayName[ADL_MAX_PATH];
49 /// Present or not; 1 if present and 0 if not present.It the logical adapter is present, the display name such as \\.\Display1 can be found from OS
50 int iPresent;
51 // @}
52
53 #if defined (_WIN32) || defined (_WIN64)
54 /// \WIN_STRUCT_MEM
55
56 /// Exist or not; 1 is exist and 0 is not present.
57 int iExist;
58 /// Driver registry path.
59 char strDriverPath[ADL_MAX_PATH];
60 /// Driver registry path Ext for.
61 char strDriverPathExt[ADL_MAX_PATH];
62 /// PNP string from Windows.
63 char strPNPString[ADL_MAX_PATH];
64 /// It is generated from EnumDisplayDevices.
65 int iOSDisplayIndex;
66 // @}
67 #endif /* (_WIN32) || (_WIN64) */
68
69 #if defined (LINUX)
70 /// \LNX_STRUCT_MEM
71
72 /// Internal X screen number from GPUMapInfo (DEPRICATED use XScreenInfo)
73 int iXScreenNum;
74 /// Internal driver index from GPUMapInfo
75 int iDrvIndex;
76 /// \deprecated Internal x config file screen identifier name. Use XScreenInfo instead.
77 char strXScreenConfigName[ADL_MAX_PATH];
78
79 // @}
80 #endif /* (LINUX) */
81 } AdapterInfo, *LPAdapterInfo;
82
83 /////////////////////////////////////////////////////////////////////////////////////////////
84 ///\brief Structure containing information about the Linux X screen information.
85 ///
86 /// This structure is used to store the current screen number and xorg.conf ID name assoicated with an adapter index.
87 /// This structure is updated during ADL_Main_Control_Refresh or ADL_ScreenInfo_Update.
88 /// Note: This structure should be used in place of iXScreenNum and strXScreenConfigName in AdapterInfo as they will be
89 /// deprecated.
90 /// \nosubgrouping
91 ////////////////////////////////////////////////////////////////////////////////////////////
92 #if defined (LINUX)
93 typedef struct XScreenInfo
94 {
95 /// Internal X screen number from GPUMapInfo.
96 int iXScreenNum;
97 /// Internal x config file screen identifier name.
98 char strXScreenConfigName[ADL_MAX_PATH];
99 } XScreenInfo, *LPXScreenInfo;
100 #endif /* (LINUX) */
101
102
103 /////////////////////////////////////////////////////////////////////////////////////////////
104 ///\brief Structure containing information about the ASIC memory.
105 ///
106 /// This structure is used to store various information about the ASIC memory. This
107 /// information can be returned to the user.
108 /// \nosubgrouping
109 ////////////////////////////////////////////////////////////////////////////////////////////
110 typedef struct ADLMemoryInfo
111 {
112 /// Memory size in bytes.
113 long long iMemorySize;
114 /// Memory type in string.
115 char strMemoryType[ADL_MAX_PATH];
116 /// Memory bandwidth in Mbytes/s.
117 long long iMemoryBandwidth;
118 } ADLMemoryInfo, *LPADLMemoryInfo;
119
120 /////////////////////////////////////////////////////////////////////////////////////////////
121 ///\brief Structure containing information about memory required by type
122 ///
123 /// This structure is returned by ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
124 /// will return the Memory used.
125 /// \nosubgrouping
126 ////////////////////////////////////////////////////////////////////////////////////////////
127 typedef struct ADLMemoryRequired
128 {
129 long long iMemoryReq; /// Memory in bytes required
130 int iType; /// Type of Memory \ref define_adl_validmemoryrequiredfields
131 int iDisplayFeatureValue; /// Display features \ref define_adl_visiblememoryfeatures that are using this type of memory
132 } ADLMemoryRequired, *LPADLMemoryRequired;
133
134 /////////////////////////////////////////////////////////////////////////////////////////////
135 ///\brief Structure containing information about the features associated with a display
136 ///
137 /// This structure is a parameter to ADL_Adapter_ConfigMemory_Get, which given a desktop and display configuration
138 /// will return the Memory used.
139 /// \nosubgrouping
140 ////////////////////////////////////////////////////////////////////////////////////////////
141 typedef struct ADLMemoryDisplayFeatures
142 {
143 int iDisplayIndex; /// ADL Display index
144 int iDisplayFeatureValue; /// features that the display is using \ref define_adl_visiblememoryfeatures
145 } ADLMemoryDisplayFeatures, *LPADLMemoryDisplayFeatures;
146
147 /////////////////////////////////////////////////////////////////////////////////////////////
148 ///\brief Structure containing DDC information.
149 ///
150 /// This structure is used to store various DDC information that can be returned to the user.
151 /// Note that all fields of type int are actually defined as unsigned int types within the driver.
152 /// \nosubgrouping
153 ////////////////////////////////////////////////////////////////////////////////////////////
154 typedef struct ADLDDCInfo
155 {
156 /// Size of the structure
157 int ulSize;
158 /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC information fields will be used.
159 int ulSupportsDDC;
160 /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
161 int ulManufacturerID;
162 /// Returns the product ID of the display device. Should be zeroed if this information is not available.
163 int ulProductID;
164 /// Returns the name of the display device. Should be zeroed if this information is not available.
165 char cDisplayName[ADL_MAX_DISPLAY_NAME];
166 /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
167 int ulMaxHResolution;
168 /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
169 int ulMaxVResolution;
170 /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
171 int ulMaxRefresh;
172 /// Returns the display device preferred timing mode's horizontal resolution.
173 int ulPTMCx;
174 /// Returns the display device preferred timing mode's vertical resolution.
175 int ulPTMCy;
176 /// Returns the display device preferred timing mode's refresh rate.
177 int ulPTMRefreshRate;
178 /// Return EDID flags.
179 int ulDDCInfoFlag;
180 } ADLDDCInfo, *LPADLDDCInfo;
181
182 /////////////////////////////////////////////////////////////////////////////////////////////
183 ///\brief Structure containing DDC information.
184 ///
185 /// This structure is used to store various DDC information that can be returned to the user.
186 /// Note that all fields of type int are actually defined as unsigned int types within the driver.
187 /// \nosubgrouping
188 ////////////////////////////////////////////////////////////////////////////////////////////
189 typedef struct ADLDDCInfo2
190 {
191 /// Size of the structure
192 int ulSize;
193 /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC
194 /// information fields will be used.
195 int ulSupportsDDC;
196 /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
197 int ulManufacturerID;
198 /// Returns the product ID of the display device. Should be zeroed if this information is not available.
199 int ulProductID;
200 /// Returns the name of the display device. Should be zeroed if this information is not available.
201 char cDisplayName[ADL_MAX_DISPLAY_NAME];
202 /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
203 int ulMaxHResolution;
204 /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
205 int ulMaxVResolution;
206 /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
207 int ulMaxRefresh;
208 /// Returns the display device preferred timing mode's horizontal resolution.
209 int ulPTMCx;
210 /// Returns the display device preferred timing mode's vertical resolution.
211 int ulPTMCy;
212 /// Returns the display device preferred timing mode's refresh rate.
213 int ulPTMRefreshRate;
214 /// Return EDID flags.
215 int ulDDCInfoFlag;
216 // Returns 1 if the display supported packed pixel, 0 otherwise
217 int bPackedPixelSupported;
218 // Returns the Pixel formats the display supports \ref define_ddcinfo_pixelformats
219 int iPanelPixelFormat;
220 /// Return EDID serial ID.
221 int ulSerialID;
222 // Reserved for future use
223 int iReserved[26];
224 } ADLDDCInfo2, *LPADLDDCInfo2;
225
226 /////////////////////////////////////////////////////////////////////////////////////////////
227 ///\brief Structure containing information controller Gamma settings.
228 ///
229 /// This structure is used to store the red, green and blue color channel information for the.
230 /// controller gamma setting. This information is returned by ADL, and it can also be used to
231 /// set the controller gamma setting.
232 /// \nosubgrouping
233 ////////////////////////////////////////////////////////////////////////////////////////////
234 typedef struct ADLGamma
235 {
236 /// Red color channel gamma value.
237 float fRed;
238 /// Green color channel gamma value.
239 float fGreen;
240 /// Blue color channel gamma value.
241 float fBlue;
242 } ADLGamma, *LPADLGamma;
243
244 /////////////////////////////////////////////////////////////////////////////////////////////
245 ///\brief Structure containing information about component video custom modes.
246 ///
247 /// This structure is used to store the component video custom mode.
248 /// \nosubgrouping
249 ////////////////////////////////////////////////////////////////////////////////////////////
250 typedef struct ADLCustomMode
251 {
252 /// Custom mode flags. They are returned by the ADL driver.
253 int iFlags;
254 /// Custom mode width.
255 int iModeWidth;
256 /// Custom mode height.
257 int iModeHeight;
258 /// Custom mode base width.
259 int iBaseModeWidth;
260 /// Custom mode base height.
261 int iBaseModeHeight;
262 /// Custom mode refresh rate.
263 int iRefreshRate;
264 } ADLCustomMode, *LPADLCustomMode;
265
266 /////////////////////////////////////////////////////////////////////////////////////////////
267 ///\brief Structure containing Clock information for OD5 calls.
268 ///
269 /// This structure is used to retrieve clock information for OD5 calls.
270 /// \nosubgrouping
271 ////////////////////////////////////////////////////////////////////////////////////////////
272 typedef struct ADLGetClocksOUT
273 {
274 long ulHighCoreClock;
275 long ulHighMemoryClock;
276 long ulHighVddc;
277 long ulCoreMin;
278 long ulCoreMax;
279 long ulMemoryMin;
280 long ulMemoryMax;
281 long ulActivityPercent;
282 long ulCurrentCoreClock;
283 long ulCurrentMemoryClock;
284 long ulReserved;
285 } ADLGetClocksOUT;
286
287 /////////////////////////////////////////////////////////////////////////////////////////////
288 ///\brief Structure containing HDTV information for display calls.
289 ///
290 /// This structure is used to retrieve HDTV information information for display calls.
291 /// \nosubgrouping
292 ////////////////////////////////////////////////////////////////////////////////////////////
293 typedef struct ADLDisplayConfig
294 {
295 /// Size of the structure
296 long ulSize;
297 /// HDTV connector type.
298 long ulConnectorType;
299 /// HDTV capabilities.
300 long ulDeviceData;
301 /// Overridden HDTV capabilities.
302 long ulOverridedDeviceData;
303 /// Reserved field
304 long ulReserved;
305 } ADLDisplayConfig;
306
307
308 /////////////////////////////////////////////////////////////////////////////////////////////
309 ///\brief Structure containing information about the display device.
310 ///
311 /// This structure is used to store display device information
312 /// such as display index, type, name, connection status, mapped adapter and controller indexes,
313 /// whether or not multiple VPUs are supported, local display connections or not (through Lasso), etc.
314 /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to set
315 /// or fetch various display device related settings upon the user's request.
316 /// \nosubgrouping
317 ////////////////////////////////////////////////////////////////////////////////////////////
318 typedef struct ADLDisplayID
319 {
320 /// The logical display index belonging to this adapter.
321 int iDisplayLogicalIndex;
322
323 ///\brief The physical display index.
324 /// For example, display index 2 from adapter 2 can be used by current adapter 1.\n
325 /// So current adapter may enumerate this adapter as logical display 7 but the physical display
326 /// index is still 2.
327 int iDisplayPhysicalIndex;
328
329 /// The persistent logical adapter index for the display.
330 int iDisplayLogicalAdapterIndex;
331
332 ///\brief The persistent physical adapter index for the display.
333 /// It can be the current adapter or a non-local adapter. \n
334 /// If this adapter index is different than the current adapter,
335 /// the Display Non Local flag is set inside DisplayInfoValue.
336 int iDisplayPhysicalAdapterIndex;
337 } ADLDisplayID, *LPADLDisplayID;
338
339 /////////////////////////////////////////////////////////////////////////////////////////////
340 ///\brief Structure containing information about the display device.
341 ///
342 /// This structure is used to store various information about the display device. This
343 /// information can be returned to the user, or used to access various driver calls to set
344 /// or fetch various display-device-related settings upon the user's request
345 /// \nosubgrouping
346 ////////////////////////////////////////////////////////////////////////////////////////////
347 typedef struct ADLDisplayInfo
348 {
349 /// The DisplayID structure
350 ADLDisplayID displayID;
351
352 ///\deprecated The controller index to which the display is mapped.\n Will not be used in the future\n
353 int iDisplayControllerIndex;
354
355 /// The display's EDID name.
356 char strDisplayName[ADL_MAX_PATH];
357
358 /// The display's manufacturer name.
359 char strDisplayManufacturerName[ADL_MAX_PATH];
360
361 /// The Display type. For example: CRT, TV, CV, DFP.
362 int iDisplayType;
363
364 /// The display output type. For example: HDMI, SVIDEO, COMPONMNET VIDEO.
365 int iDisplayOutputType;
366
367 /// The connector type for the device.
368 int iDisplayConnector;
369
370 ///\brief The bit mask identifies the number of bits ADLDisplayInfo is currently using. \n
371 /// It will be the sum all the bit definitions in ADL_DISPLAY_DISPLAYINFO_xxx.
372 int iDisplayInfoMask;
373
374 /// The bit mask identifies the display status. \ref define_displayinfomask
375 int iDisplayInfoValue;
376 } ADLDisplayInfo, *LPADLDisplayInfo;
377
378 /////////////////////////////////////////////////////////////////////////////////////////////
379 ///\brief Structure containing information about the display port MST device.
380 ///
381 /// This structure is used to store various MST information about the display port device. This
382 /// information can be returned to the user, or used to access various driver calls to
383 /// fetch various display-device-related settings upon the user's request
384 /// \nosubgrouping
385 ////////////////////////////////////////////////////////////////////////////////////////////
386 typedef struct ADLDisplayDPMSTInfo
387 {
388 /// The ADLDisplayID structure
389 ADLDisplayID displayID;
390
391 /// total bandwidth available on the DP connector
392 int iTotalAvailableBandwidthInMpbs;
393 /// bandwidth allocated to this display
394 int iAllocatedBandwidthInMbps;
395
396 // info from DAL DpMstSinkInfo
397 /// string identifier for the display
398 char strGlobalUniqueIdentifier[ADL_MAX_PATH];
399
400 /// The link count of relative address, rad[0] upto rad[linkCount] are valid
401 int radLinkCount;
402 /// The physical connector ID, used to identify the physical DP port
403 int iPhysicalConnectorID;
404
405 /// Relative address, address scheme starts from source side
406 char rad[ADL_MAX_RAD_LINK_COUNT];
407 } ADLDisplayDPMSTInfo, *LPADLDisplayDPMSTInfo;
408
409 /////////////////////////////////////////////////////////////////////////////////////////////
410 ///\brief Structure containing the display mode definition used per controller.
411 ///
412 /// This structure is used to store the display mode definition used per controller.
413 /// \nosubgrouping
414 ////////////////////////////////////////////////////////////////////////////////////////////
415 typedef struct ADLDisplayMode
416 {
417 /// Vertical resolution (in pixels).
418 int iPelsHeight;
419 /// Horizontal resolution (in pixels).
420 int iPelsWidth;
421 /// Color depth.
422 int iBitsPerPel;
423 /// Refresh rate.
424 int iDisplayFrequency;
425 } ADLDisplayMode;
426
427 /////////////////////////////////////////////////////////////////////////////////////////////
428 ///\brief Structure containing detailed timing parameters.
429 ///
430 /// This structure is used to store the detailed timing parameters.
431 /// \nosubgrouping
432 ////////////////////////////////////////////////////////////////////////////////////////////
433 typedef struct ADLDetailedTiming
434 {
435 /// Size of the structure.
436 int iSize;
437 /// Timing flags. \ref define_detailed_timing_flags
438 short sTimingFlags;
439 /// Total width (columns).
440 short sHTotal;
441 /// Displayed width.
442 short sHDisplay;
443 /// Horizontal sync signal offset.
444 short sHSyncStart;
445 /// Horizontal sync signal width.
446 short sHSyncWidth;
447 /// Total height (rows).
448 short sVTotal;
449 /// Displayed height.
450 short sVDisplay;
451 /// Vertical sync signal offset.
452 short sVSyncStart;
453 /// Vertical sync signal width.
454 short sVSyncWidth;
455 /// Pixel clock value.
456 short sPixelClock;
457 /// Overscan right.
458 short sHOverscanRight;
459 /// Overscan left.
460 short sHOverscanLeft;
461 /// Overscan bottom.
462 short sVOverscanBottom;
463 /// Overscan top.
464 short sVOverscanTop;
465 short sOverscan8B;
466 short sOverscanGR;
467 } ADLDetailedTiming;
468
469 /////////////////////////////////////////////////////////////////////////////////////////////
470 ///\brief Structure containing display mode information.
471 ///
472 /// This structure is used to store the display mode information.
473 /// \nosubgrouping
474 ////////////////////////////////////////////////////////////////////////////////////////////
475 typedef struct ADLDisplayModeInfo
476 {
477 /// Timing standard of the current mode. \ref define_modetiming_standard
478 int iTimingStandard;
479 /// Applicable timing standards for the current mode.
480 int iPossibleStandard;
481 /// Refresh rate factor.
482 int iRefreshRate;
483 /// Num of pixels in a row.
484 int iPelsWidth;
485 /// Num of pixels in a column.
486 int iPelsHeight;
487 /// Detailed timing parameters.
488 ADLDetailedTiming sDetailedTiming;
489 } ADLDisplayModeInfo;
490
491 /////////////////////////////////////////////////////////////////////////////////////////////
492 /// \brief Structure containing information about display property.
493 ///
494 /// This structure is used to store the display property for the current adapter.
495 /// \nosubgrouping
496 ////////////////////////////////////////////////////////////////////////////////////////////
497 typedef struct ADLDisplayProperty
498 {
499 /// Must be set to sizeof the structure
500 int iSize;
501 /// Must be set to \ref ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE or \ref ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING
502 int iPropertyType;
503 /// Get or Set \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN or \ref ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO or \ref ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE
504 int iExpansionMode;
505 /// Display Property supported? 1: Supported, 0: Not supported
506 int iSupport;
507 /// Display Property current value
508 int iCurrent;
509 /// Display Property Default value
510 int iDefault;
511 } ADLDisplayProperty;
512
513 /////////////////////////////////////////////////////////////////////////////////////////////
514 ///\brief Structure containing information about Clock.
515 ///
516 /// This structure is used to store the clock information for the current adapter
517 /// such as core clock and memory clock info.
518 ///\nosubgrouping
519 ////////////////////////////////////////////////////////////////////////////////////////////
520 typedef struct ADLClockInfo
521 {
522 /// Core clock in 10 KHz.
523 int iCoreClock;
524 /// Memory clock in 10 KHz.
525 int iMemoryClock;
526 } ADLClockInfo, *LPADLClockInfo;
527
528 /////////////////////////////////////////////////////////////////////////////////////////////
529 ///\brief Structure containing information about I2C.
530 ///
531 /// This structure is used to store the I2C information for the current adapter.
532 /// This structure is used by the ADL_Display_WriteAndReadI2C() function.
533 /// \nosubgrouping
534 ////////////////////////////////////////////////////////////////////////////////////////////
535 typedef struct ADLI2C
536 {
537 /// Size of the structure
538 int iSize;
539 /// Numerical value representing hardware I2C.
540 int iLine;
541 /// The 7-bit I2C slave device address, shifted one bit to the left.
542 int iAddress;
543 /// The offset of the data from the address.
544 int iOffset;
545 /// Read from or write to slave device. \ref ADL_DL_I2C_ACTIONREAD or \ref ADL_DL_I2C_ACTIONWRITE or \ref ADL_DL_I2C_ACTIONREAD_REPEATEDSTART
546 int iAction;
547 /// I2C clock speed in KHz.
548 int iSpeed;
549 /// A numerical value representing the number of bytes to be sent or received on the I2C bus.
550 int iDataSize;
551 /// Address of the characters which are to be sent or received on the I2C bus.
552 char *pcData;
553 } ADLI2C;
554
555 /////////////////////////////////////////////////////////////////////////////////////////////
556 ///\brief Structure containing information about EDID data.
557 ///
558 /// This structure is used to store the information about EDID data for the adapter.
559 /// This structure is used by the ADL_Display_EdidData_Get() and ADL_Display_EdidData_Set() functions.
560 /// \nosubgrouping
561 ////////////////////////////////////////////////////////////////////////////////////////////
562 typedef struct ADLDisplayEDIDData
563 {
564 /// Size of the structure
565 int iSize;
566 /// Set to 0
567 int iFlag;
568 /// Size of cEDIDData. Set by ADL_Display_EdidData_Get() upon return
569 int iEDIDSize;
570 /// 0, 1 or 2. If set to 3 or above an error ADL_ERR_INVALID_PARAM is generated
571 int iBlockIndex;
572 /// EDID data
573 char cEDIDData[ADL_MAX_EDIDDATA_SIZE];
574 /// Reserved
575 int iReserved[4];
576 }ADLDisplayEDIDData;
577
578 /////////////////////////////////////////////////////////////////////////////////////////////
579 ///\brief Structure containing information about input of controller overlay adjustment.
580 ///
581 /// This structure is used to store the information about input of controller overlay adjustment for the adapter.
582 /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get, ADL_Display_ControllerOverlayAdjustmentData_Get, and
583 /// ADL_Display_ControllerOverlayAdjustmentData_Set() functions.
584 /// \nosubgrouping
585 ////////////////////////////////////////////////////////////////////////////////////////////
586 typedef struct ADLControllerOverlayInput
587 {
588 /// Should be set to the sizeof the structure
589 int iSize;
590 ///\ref ADL_DL_CONTROLLER_OVERLAY_ALPHA or \ref ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX
591 int iOverlayAdjust;
592 /// Data.
593 int iValue;
594 /// Should be 0.
595 int iReserved;
596 } ADLControllerOverlayInput;
597
598 /////////////////////////////////////////////////////////////////////////////////////////////
599 ///\brief Structure containing information about overlay adjustment.
600 ///
601 /// This structure is used to store the information about overlay adjustment for the adapter.
602 /// This structure is used by the ADLControllerOverlayInfo() function.
603 /// \nosubgrouping
604 ////////////////////////////////////////////////////////////////////////////////////////////
605 typedef struct ADLAdjustmentinfo
606 {
607 /// Default value
608 int iDefault;
609 /// Minimum value
610 int iMin;
611 /// Maximum Value
612 int iMax;
613 /// Step value
614 int iStep;
615 } ADLAdjustmentinfo;
616
617 /////////////////////////////////////////////////////////////////////////////////////////////
618 ///\brief Structure containing information about controller overlay information.
619 ///
620 /// This structure is used to store information about controller overlay info for the adapter.
621 /// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get() function.
622 /// \nosubgrouping
623 ////////////////////////////////////////////////////////////////////////////////////////////
624 typedef struct ADLControllerOverlayInfo
625 {
626 /// Should be set to the sizeof the structure
627 int iSize;
628 /// Data.
629 ADLAdjustmentinfo sOverlayInfo;
630 /// Should be 0.
631 int iReserved[3];
632 } ADLControllerOverlayInfo;
633
634 /////////////////////////////////////////////////////////////////////////////////////////////
635 ///\brief Structure containing GL-Sync module information.
636 ///
637 /// This structure is used to retrieve GL-Sync module information for
638 /// Workstation Framelock/Genlock.
639 /// \nosubgrouping
640 ////////////////////////////////////////////////////////////////////////////////////////////
641 typedef struct ADLGLSyncModuleID
642 {
643 /// Unique GL-Sync module ID.
644 int iModuleID;
645 /// GL-Sync GPU port index (to be passed into ADLGLSyncGenlockConfig.lSignalSource and ADLGlSyncPortControl.lSignalSource).
646 int iGlSyncGPUPort;
647 /// GL-Sync module firmware version of Boot Sector.
648 int iFWBootSectorVersion;
649 /// GL-Sync module firmware version of User Sector.
650 int iFWUserSectorVersion;
651 } ADLGLSyncModuleID , *LPADLGLSyncModuleID;
652
653 /////////////////////////////////////////////////////////////////////////////////////////////
654 ///\brief Structure containing GL-Sync ports capabilities.
655 ///
656 /// This structure is used to retrieve hardware capabilities for the ports of the GL-Sync module
657 /// for Workstation Framelock/Genlock (such as port type and number of associated LEDs).
658 /// \nosubgrouping
659 ////////////////////////////////////////////////////////////////////////////////////////////
660 typedef struct ADLGLSyncPortCaps
661 {
662 /// Port type. Bitfield of ADL_GLSYNC_PORTTYPE_* \ref define_glsync
663 int iPortType;
664 /// Number of LEDs associated for this port.
665 int iNumOfLEDs;
666 }ADLGLSyncPortCaps, *LPADLGLSyncPortCaps;
667
668 /////////////////////////////////////////////////////////////////////////////////////////////
669 ///\brief Structure containing GL-Sync Genlock settings.
670 ///
671 /// This structure is used to get and set genlock settings for the GPU ports of the GL-Sync module
672 /// for Workstation Framelock/Genlock.\n
673 /// \see define_glsync
674 /// \nosubgrouping
675 ////////////////////////////////////////////////////////////////////////////////////////////
676 typedef struct ADLGLSyncGenlockConfig
677 {
678 /// Specifies what fields in this structure are valid \ref define_glsync
679 int iValidMask;
680 /// Delay (ms) generating a sync signal.
681 int iSyncDelay;
682 /// Vector of framelock control bits. Bitfield of ADL_GLSYNC_FRAMELOCKCNTL_* \ref define_glsync
683 int iFramelockCntlVector;
684 /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
685 int iSignalSource;
686 /// Use sampled sync signal. A value of 0 specifies no sampling.
687 int iSampleRate;
688 /// For interlaced sync signals, the value can be ADL_GLSYNC_SYNCFIELD_1 or *_BOTH \ref define_glsync
689 int iSyncField;
690 /// The signal edge that should trigger synchronization. ADL_GLSYNC_TRIGGEREDGE_* \ref define_glsync
691 int iTriggerEdge;
692 /// Scan rate multiplier applied to the sync signal. ADL_GLSYNC_SCANRATECOEFF_* \ref define_glsync
693 int iScanRateCoeff;
694 }ADLGLSyncGenlockConfig, *LPADLGLSyncGenlockConfig;
695
696 /////////////////////////////////////////////////////////////////////////////////////////////
697 ///\brief Structure containing GL-Sync port information.
698 ///
699 /// This structure is used to get status of the GL-Sync ports (BNC or RJ45s)
700 /// for Workstation Framelock/Genlock.
701 /// \see define_glsync
702 /// \nosubgrouping
703 ////////////////////////////////////////////////////////////////////////////////////////////
704 typedef struct ADLGlSyncPortInfo
705 {
706 /// Type of GL-Sync port (ADL_GLSYNC_PORT_*).
707 int iPortType;
708 /// The number of LEDs for this port. It's also filled within ADLGLSyncPortCaps.
709 int iNumOfLEDs;
710 /// Port state ADL_GLSYNC_PORTSTATE_* \ref define_glsync
711 int iPortState;
712 /// Scanned frequency for this port (vertical refresh rate in milliHz; 60000 means 60 Hz).
713 int iFrequency;
714 /// Used for ADL_GLSYNC_PORT_BNC. It is ADL_GLSYNC_SIGNALTYPE_* \ref define_glsync
715 int iSignalType;
716 /// Used for ADL_GLSYNC_PORT_RJ45PORT*. It is GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_*. \ref define_glsync
717 int iSignalSource;
718
719 } ADLGlSyncPortInfo, *LPADLGlSyncPortInfo;
720
721 /////////////////////////////////////////////////////////////////////////////////////////////
722 ///\brief Structure containing GL-Sync port control settings.
723 ///
724 /// This structure is used to configure the GL-Sync ports (RJ45s only)
725 /// for Workstation Framelock/Genlock.
726 /// \see define_glsync
727 /// \nosubgrouping
728 ////////////////////////////////////////////////////////////////////////////////////////////
729 typedef struct ADLGlSyncPortControl
730 {
731 /// Port to control ADL_GLSYNC_PORT_RJ45PORT1 or ADL_GLSYNC_PORT_RJ45PORT2 \ref define_glsync
732 int iPortType;
733 /// Port control data ADL_GLSYNC_PORTCNTL_* \ref define_glsync
734 int iControlVector;
735 /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
736 int iSignalSource;
737 } ADLGlSyncPortControl;
738
739 /////////////////////////////////////////////////////////////////////////////////////////////
740 ///\brief Structure containing GL-Sync mode of a display.
741 ///
742 /// This structure is used to get and set GL-Sync mode settings for a display connected to
743 /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
744 /// \see define_glsync
745 /// \nosubgrouping
746 ////////////////////////////////////////////////////////////////////////////////////////////
747 typedef struct ADLGlSyncMode
748 {
749 /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
750 int iControlVector;
751 /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
752 int iStatusVector;
753 /// Index of GL-Sync connector used to genlock the display/controller.
754 int iGLSyncConnectorIndex;
755 } ADLGlSyncMode, *LPADLGlSyncMode;
756
757 /////////////////////////////////////////////////////////////////////////////////////////////
758 ///\brief Structure containing GL-Sync mode of a display.
759 ///
760 /// This structure is used to get and set GL-Sync mode settings for a display connected to
761 /// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
762 /// \see define_glsync
763 /// \nosubgrouping
764 ////////////////////////////////////////////////////////////////////////////////////////////
765 typedef struct ADLGlSyncMode2
766 {
767 /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
768 int iControlVector;
769 /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
770 int iStatusVector;
771 /// Index of GL-Sync connector used to genlock the display/controller.
772 int iGLSyncConnectorIndex;
773 /// Index of the display to which this GLSync applies to.
774 int iDisplayIndex;
775 } ADLGlSyncMode2, *LPADLGlSyncMode2;
776
777
778 /////////////////////////////////////////////////////////////////////////////////////////////
779 ///\brief Structure containing the packet info of a display.
780 ///
781 /// This structure is used to get and set the packet information of a display.
782 /// This structure is used by ADLDisplayDataPacket.
783 /// \nosubgrouping
784 ////////////////////////////////////////////////////////////////////////////////////////////
785 typedef struct ADLInfoPacket
786 {
787 char hb0;
788 char hb1;
789 char hb2;
790 /// sb0~sb27
791 char sb[28];
792 }ADLInfoPacket;
793
794 /////////////////////////////////////////////////////////////////////////////////////////////
795 ///\brief Structure containing the AVI packet info of a display.
796 ///
797 /// This structure is used to get and set AVI the packet info of a display.
798 /// This structure is used by ADLDisplayDataPacket.
799 /// \nosubgrouping
800 ////////////////////////////////////////////////////////////////////////////////////////////
801 typedef struct ADLAVIInfoPacket //Valid user defined data/
802 {
803 /// byte 3, bit 7
804 char bPB3_ITC;
805 /// byte 5, bit [7:4].
806 char bPB5;
807 }ADLAVIInfoPacket;
808
809 // Overdrive clock setting structure definition.
810
811 /////////////////////////////////////////////////////////////////////////////////////////////
812 ///\brief Structure containing the Overdrive clock setting.
813 ///
814 /// This structure is used to get the Overdrive clock setting.
815 /// This structure is used by ADLAdapterODClockInfo.
816 /// \nosubgrouping
817 ////////////////////////////////////////////////////////////////////////////////////////////
818 typedef struct ADLODClockSetting
819 {
820 /// Deafult clock
821 int iDefaultClock;
822 /// Current clock
823 int iCurrentClock;
824 /// Maximum clcok
825 int iMaxClock;
826 /// Minimum clock
827 int iMinClock;
828 /// Requested clcock
829 int iRequestedClock;
830 /// Step
831 int iStepClock;
832 } ADLODClockSetting;
833
834 /////////////////////////////////////////////////////////////////////////////////////////////
835 ///\brief Structure containing the Overdrive clock information.
836 ///
837 /// This structure is used to get the Overdrive clock information.
838 /// This structure is used by the ADL_Display_ODClockInfo_Get() function.
839 /// \nosubgrouping
840 ////////////////////////////////////////////////////////////////////////////////////////////
841 typedef struct ADLAdapterODClockInfo
842 {
843 /// Size of the structure
844 int iSize;
845 /// Flag \ref define_clockinfo_flags
846 int iFlags;
847 /// Memory Clock
848 ADLODClockSetting sMemoryClock;
849 /// Engine Clock
850 ADLODClockSetting sEngineClock;
851 } ADLAdapterODClockInfo;
852
853 /////////////////////////////////////////////////////////////////////////////////////////////
854 ///\brief Structure containing the Overdrive clock configuration.
855 ///
856 /// This structure is used to set the Overdrive clock configuration.
857 /// This structure is used by the ADL_Display_ODClockConfig_Set() function.
858 /// \nosubgrouping
859 ////////////////////////////////////////////////////////////////////////////////////////////
860 typedef struct ADLAdapterODClockConfig
861 {
862 /// Size of the structure
863 int iSize;
864 /// Flag \ref define_clockinfo_flags
865 int iFlags;
866 /// Memory Clock
867 int iMemoryClock;
868 /// Engine Clock
869 int iEngineClock;
870 } ADLAdapterODClockConfig;
871
872 /////////////////////////////////////////////////////////////////////////////////////////////
873 ///\brief Structure containing information about current power management related activity.
874 ///
875 /// This structure is used to store information about current power management related activity.
876 /// This structure (Overdrive 5 interfaces) is used by the ADL_PM_CurrentActivity_Get() function.
877 /// \nosubgrouping
878 ////////////////////////////////////////////////////////////////////////////////////////////
879 typedef struct ADLPMActivity
880 {
881 /// Must be set to the size of the structure
882 int iSize;
883 /// Current engine clock.
884 int iEngineClock;
885 /// Current memory clock.
886 int iMemoryClock;
887 /// Current core voltage.
888 int iVddc;
889 /// GPU utilization.
890 int iActivityPercent;
891 /// Performance level index.
892 int iCurrentPerformanceLevel;
893 /// Current PCIE bus speed.
894 int iCurrentBusSpeed;
895 /// Number of PCIE bus lanes.
896 int iCurrentBusLanes;
897 /// Maximum number of PCIE bus lanes.
898 int iMaximumBusLanes;
899 /// Reserved for future purposes.
900 int iReserved;
901 } ADLPMActivity;
902
903 /////////////////////////////////////////////////////////////////////////////////////////////
904 ///\brief Structure containing information about thermal controller.
905 ///
906 /// This structure is used to store information about thermal controller.
907 /// This structure is used by ADL_PM_ThermalDevices_Enum.
908 /// \nosubgrouping
909 ////////////////////////////////////////////////////////////////////////////////////////////
910 typedef struct ADLThermalControllerInfo
911 {
912 /// Must be set to the size of the structure
913 int iSize;
914 /// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
915 int iThermalDomain;
916 /// GPU 0, 1, etc.
917 int iDomainIndex;
918 /// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
919 int iFlags;
920 } ADLThermalControllerInfo;
921
922 /////////////////////////////////////////////////////////////////////////////////////////////
923 ///\brief Structure containing information about thermal controller temperature.
924 ///
925 /// This structure is used to store information about thermal controller temperature.
926 /// This structure is used by the ADL_PM_Temperature_Get() function.
927 /// \nosubgrouping
928 ////////////////////////////////////////////////////////////////////////////////////////////
929 typedef struct ADLTemperature
930 {
931 /// Must be set to the size of the structure
932 int iSize;
933 /// Temperature in millidegrees Celsius.
934 int iTemperature;
935 } ADLTemperature;
936
937 /////////////////////////////////////////////////////////////////////////////////////////////
938 ///\brief Structure containing information about thermal controller fan speed.
939 ///
940 /// This structure is used to store information about thermal controller fan speed.
941 /// This structure is used by the ADL_PM_FanSpeedInfo_Get() function.
942 /// \nosubgrouping
943 ////////////////////////////////////////////////////////////////////////////////////////////
944 typedef struct ADLFanSpeedInfo
945 {
946 /// Must be set to the size of the structure
947 int iSize;
948 /// \ref define_fanctrl
949 int iFlags;
950 /// Minimum possible fan speed value in percents.
951 int iMinPercent;
952 /// Maximum possible fan speed value in percents.
953 int iMaxPercent;
954 /// Minimum possible fan speed value in RPM.
955 int iMinRPM;
956 /// Maximum possible fan speed value in RPM.
957 int iMaxRPM;
958 } ADLFanSpeedInfo;
959
960 /////////////////////////////////////////////////////////////////////////////////////////////
961 ///\brief Structure containing information about fan speed reported by thermal controller.
962 ///
963 /// This structure is used to store information about fan speed reported by thermal controller.
964 /// This structure is used by the ADL_Overdrive5_FanSpeed_Get() and ADL_Overdrive5_FanSpeed_Set() functions.
965 /// \nosubgrouping
966 ////////////////////////////////////////////////////////////////////////////////////////////
967 typedef struct ADLFanSpeedValue
968 {
969 /// Must be set to the size of the structure
970 int iSize;
971 /// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
972 int iSpeedType;
973 /// Fan speed value
974 int iFanSpeed;
975 /// The only flag for now is: \ref ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED
976 int iFlags;
977 } ADLFanSpeedValue;
978
979 ////////////////////////////////////////////////////////////////////////////////////////////
980 ///\brief Structure containing the range of Overdrive parameter.
981 ///
982 /// This structure is used to store information about the range of Overdrive parameter.
983 /// This structure is used by ADLODParameters.
984 /// \nosubgrouping
985 ////////////////////////////////////////////////////////////////////////////////////////////
986 typedef struct ADLODParameterRange
987 {
988 /// Minimum parameter value.
989 int iMin;
990 /// Maximum parameter value.
991 int iMax;
992 /// Parameter step value.
993 int iStep;
994 } ADLODParameterRange;
995
996 /////////////////////////////////////////////////////////////////////////////////////////////
997 ///\brief Structure containing information about Overdrive parameters.
998 ///
999 /// This structure is used to store information about Overdrive parameters.
1000 /// This structure is used by the ADL_Overdrive5_ODParameters_Get() function.
1001 /// \nosubgrouping
1002 ////////////////////////////////////////////////////////////////////////////////////////////
1003 typedef struct ADLODParameters
1004 {
1005 /// Must be set to the size of the structure
1006 int iSize;
1007 /// Number of standard performance states.
1008 int iNumberOfPerformanceLevels;
1009 /// Indicates whether the GPU is capable to measure its activity.
1010 int iActivityReportingSupported;
1011 /// Indicates whether the GPU supports discrete performance levels or performance range.
1012 int iDiscretePerformanceLevels;
1013 /// Reserved for future use.
1014 int iReserved;
1015 /// Engine clock range.
1016 ADLODParameterRange sEngineClock;
1017 /// Memory clock range.
1018 ADLODParameterRange sMemoryClock;
1019 /// Core voltage range.
1020 ADLODParameterRange sVddc;
1021 } ADLODParameters;
1022
1023 /////////////////////////////////////////////////////////////////////////////////////////////
1024 ///\brief Structure containing information about Overdrive level.
1025 ///
1026 /// This structure is used to store information about Overdrive level.
1027 /// This structure is used by ADLODPerformanceLevels.
1028 /// \nosubgrouping
1029 ////////////////////////////////////////////////////////////////////////////////////////////
1030 typedef struct ADLODPerformanceLevel
1031 {
1032 /// Engine clock.
1033 int iEngineClock;
1034 /// Memory clock.
1035 int iMemoryClock;
1036 /// Core voltage.
1037 int iVddc;
1038 } ADLODPerformanceLevel;
1039
1040 /////////////////////////////////////////////////////////////////////////////////////////////
1041 ///\brief Structure containing information about Overdrive performance levels.
1042 ///
1043 /// This structure is used to store information about Overdrive performance levels.
1044 /// This structure is used by the ADL_Overdrive5_ODPerformanceLevels_Get() and ADL_Overdrive5_ODPerformanceLevels_Set() functions.
1045 /// \nosubgrouping
1046 ////////////////////////////////////////////////////////////////////////////////////////////
1047 typedef struct ADLODPerformanceLevels
1048 {
1049 /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
1050 int iSize;
1051 int iReserved;
1052 /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
1053 ADLODPerformanceLevel aLevels [1];
1054 } ADLODPerformanceLevels;
1055
1056 /////////////////////////////////////////////////////////////////////////////////////////////
1057 ///\brief Structure containing information about the proper CrossfireX chains combinations.
1058 ///
1059 /// This structure is used to store information about the CrossfireX chains combination for a particular adapter.
1060 /// This structure is used by the ADL_Adapter_Crossfire_Caps(), ADL_Adapter_Crossfire_Get(), and ADL_Adapter_Crossfire_Set() functions.
1061 /// \nosubgrouping
1062 ////////////////////////////////////////////////////////////////////////////////////////////
1063 typedef struct ADLCrossfireComb
1064 {
1065 /// Number of adapters in this combination.
1066 int iNumLinkAdapter;
1067 /// A list of ADL indexes of the linked adapters in this combination.
1068 int iAdaptLink[3];
1069 } ADLCrossfireComb;
1070
1071 /////////////////////////////////////////////////////////////////////////////////////////////
1072 ///\brief Structure containing CrossfireX state and error information.
1073 ///
1074 /// This structure is used to store state and error information about a particular adapter CrossfireX combination.
1075 /// This structure is used by the ADL_Adapter_Crossfire_Get() function.
1076 /// \nosubgrouping
1077 ////////////////////////////////////////////////////////////////////////////////////////////
1078 typedef struct ADLCrossfireInfo
1079 {
1080 /// Current error code of this CrossfireX combination.
1081 int iErrorCode;
1082 /// Current \ref define_crossfirestate
1083 int iState;
1084 /// If CrossfireX is supported by this combination. The value is either \ref ADL_TRUE or \ref ADL_FALSE.
1085 int iSupported;
1086 } ADLCrossfireInfo;
1087
1088 /////////////////////////////////////////////////////////////////////////////////////////////
1089 /// \brief Structure containing information about the BIOS.
1090 ///
1091 /// This structure is used to store various information about the Chipset. This
1092 /// information can be returned to the user.
1093 /// \nosubgrouping
1094 ////////////////////////////////////////////////////////////////////////////////////////////
1095 typedef struct ADLBiosInfo
1096 {
1097 char strPartNumber[ADL_MAX_PATH]; ///< Part number.
1098 char strVersion[ADL_MAX_PATH]; ///< Version number.
1099 char strDate[ADL_MAX_PATH]; ///< BIOS date in yyyy/mm/dd hh:mm format.
1100 } ADLBiosInfo, *LPADLBiosInfo;
1101
1102
1103 /////////////////////////////////////////////////////////////////////////////////////////////
1104 /// \brief Structure containing information about adapter location.
1105 ///
1106 /// This structure is used to store information about adapter location.
1107 /// This structure is used by ADLMVPUStatus.
1108 /// \nosubgrouping
1109 ////////////////////////////////////////////////////////////////////////////////////////////
1110 typedef struct ADLAdapterLocation
1111 {
1112 /// PCI Bus number : 8 bits
1113 int iBus;
1114 /// Device number : 5 bits
1115 int iDevice;
1116 /// Function number : 3 bits
1117 int iFunction;
1118 } ADLAdapterLocation,ADLBdf;
1119
1120
1121 /////////////////////////////////////////////////////////////////////////////////////////////
1122 /// \brief Structure containing information about MultiVPU capabilities.
1123 ///
1124 /// This structure is used to store information about MultiVPU capabilities.
1125 /// This structure is used by the ADL_Display_MVPUCaps_Get() function.
1126 /// \nosubgrouping
1127 ////////////////////////////////////////////////////////////////////////////////////////////
1128 typedef struct ADLMVPUCaps
1129 {
1130 /// Must be set to sizeof( ADLMVPUCaps ).
1131 int iSize;
1132 /// Number of adapters.
1133 int iAdapterCount;
1134 /// Bits set for all possible MVPU masters. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
1135 int iPossibleMVPUMasters;
1136 /// Bits set for all possible MVPU slaves. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
1137 int iPossibleMVPUSlaves;
1138 /// Registry path for each adapter.
1139 char cAdapterPath[ADL_DL_MAX_MVPU_ADAPTERS][ADL_DL_MAX_REGISTRY_PATH];
1140 } ADLMVPUCaps;
1141
1142 /////////////////////////////////////////////////////////////////////////////////////////////
1143 /// \brief Structure containing information about MultiVPU status.
1144 ///
1145 /// This structure is used to store information about MultiVPU status.
1146 /// Ths structure is used by the ADL_Display_MVPUStatus_Get() function.
1147 /// \nosubgrouping
1148 ////////////////////////////////////////////////////////////////////////////////////////////
1149 typedef struct ADLMVPUStatus
1150 {
1151 /// Must be set to sizeof( ADLMVPUStatus ).
1152 int iSize;
1153 /// Number of active adapters.
1154 int iActiveAdapterCount;
1155 /// MVPU status.
1156 int iStatus;
1157 /// PCI Bus/Device/Function for each active adapter participating in MVPU.
1158 ADLAdapterLocation aAdapterLocation[ADL_DL_MAX_MVPU_ADAPTERS];
1159 } ADLMVPUStatus;
1160
1161 // Displays Manager structures
1162
1163 ///////////////////////////////////////////////////////////////////////////
1164 /// \brief Structure containing information about the activatable source.
1165 ///
1166 /// This structure is used to store activatable source information
1167 /// This information can be returned to the user.
1168 /// \nosubgrouping
1169 ////////////////////////////////////////////////////////////////////////////////////////////
1170 typedef struct ADLActivatableSource
1171 {
1172 /// The Persistent logical Adapter Index.
1173 int iAdapterIndex;
1174 /// The number of Activatable Sources.
1175 int iNumActivatableSources;
1176 /// The bit mask identifies the number of bits ActivatableSourceValue is using. (Not currnetly used)
1177 int iActivatableSourceMask;
1178 /// The bit mask identifies the status. (Not currnetly used)
1179 int iActivatableSourceValue;
1180 } ADLActivatableSource, *LPADLActivatableSource;
1181
1182 /////////////////////////////////////////////////////////////////////////////////////////////
1183 /// \brief Structure containing information about display mode.
1184 ///
1185 /// This structure is used to store the display mode for the current adapter
1186 /// such as X, Y positions, screen resolutions, orientation,
1187 /// color depth, refresh rate, progressive or interlace mode, etc.
1188 /// \nosubgrouping
1189 ////////////////////////////////////////////////////////////////////////////////////////////
1190
1191 typedef struct ADLMode
1192 {
1193 /// Adapter index.
1194 int iAdapterIndex;
1195 /// Display IDs.
1196 ADLDisplayID displayID;
1197 /// Screen position X coordinate.
1198 int iXPos;
1199 /// Screen position Y coordinate.
1200 int iYPos;
1201 /// Screen resolution Width.
1202 int iXRes;
1203 /// Screen resolution Height.
1204 int iYRes;
1205 /// Screen Color Depth. E.g., 16, 32.
1206 int iColourDepth;
1207 /// Screen refresh rate. Could be fractional E.g. 59.97
1208 float fRefreshRate;
1209 /// Screen orientation. E.g., 0, 90, 180, 270.
1210 int iOrientation;
1211 /// Vista mode flag indicating Progressive or Interlaced mode.
1212 int iModeFlag;
1213 /// The bit mask identifying the number of bits this Mode is currently using. It is the sum of all the bit definitions defined in \ref define_displaymode
1214 int iModeMask;
1215 /// The bit mask identifying the display status. The detailed definition is in \ref define_displaymode
1216 int iModeValue;
1217 } ADLMode, *LPADLMode;
1218
1219
1220 /////////////////////////////////////////////////////////////////////////////////////////////
1221 /// \brief Structure containing information about display target information.
1222 ///
1223 /// This structure is used to store the display target information.
1224 /// \nosubgrouping
1225 ////////////////////////////////////////////////////////////////////////////////////////////
1226 typedef struct ADLDisplayTarget
1227 {
1228 /// The Display ID.
1229 ADLDisplayID displayID;
1230
1231 /// The display map index identify this manner and the desktop surface.
1232 int iDisplayMapIndex;
1233
1234 /// The bit mask identifies the number of bits DisplayTarget is currently using. It is the sum of all the bit definitions defined in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
1235 int iDisplayTargetMask;
1236
1237 /// The bit mask identifies the display status. The detailed definition is in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
1238 int iDisplayTargetValue;
1239
1240 } ADLDisplayTarget, *LPADLDisplayTarget;
1241
1242
1243 /////////////////////////////////////////////////////////////////////////////////////////////
1244 ///\brief Structure containing information about the display SLS bezel Mode information.
1245 ///
1246 /// This structure is used to store the display SLS bezel Mode information.
1247 /// \nosubgrouping
1248 ////////////////////////////////////////////////////////////////////////////////////////////
1249 typedef struct tagADLBezelTransientMode
1250 {
1251 /// Adapter Index
1252 int iAdapterIndex;
1253
1254 /// SLS Map Index
1255 int iSLSMapIndex;
1256
1257 /// The mode index
1258 int iSLSModeIndex;
1259
1260 /// The mode
1261 ADLMode displayMode;
1262
1263 /// The number of bezel offsets belongs to this map
1264 int iNumBezelOffset;
1265
1266 /// The first bezel offset array index in the native mode array
1267 int iFirstBezelOffsetArrayIndex;
1268
1269 /// The bit mask identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
1270 int iSLSBezelTransientModeMask;
1271
1272 /// The bit mask identifies the display status. The detail definition is defined below.
1273 int iSLSBezelTransientModeValue;
1274
1275 } ADLBezelTransientMode, *LPADLBezelTransientMode;
1276
1277
1278 /////////////////////////////////////////////////////////////////////////////////////////////
1279 /// \brief Structure containing information about the adapter display manner.
1280 ///
1281 /// This structure is used to store adapter display manner information
1282 /// This information can be returned to the user. Alternatively, it can be used to access various driver calls to
1283 /// fetch various display device related display manner settings upon the user's request.
1284 /// \nosubgrouping
1285 ////////////////////////////////////////////////////////////////////////////////////////////
1286 typedef struct ADLAdapterDisplayCap
1287 {
1288 /// The Persistent logical Adapter Index.
1289 int iAdapterIndex;
1290 /// The bit mask identifies the number of bits AdapterDisplayCap is currently using. Sum all the bits defined in ADL_ADAPTER_DISPLAYCAP_XXX
1291 int iAdapterDisplayCapMask;
1292 /// The bit mask identifies the status. Refer to ADL_ADAPTER_DISPLAYCAP_XXX
1293 int iAdapterDisplayCapValue;
1294 } ADLAdapterDisplayCap, *LPADLAdapterDisplayCap;
1295
1296
1297 /////////////////////////////////////////////////////////////////////////////////////////////
1298 ///\brief Structure containing information about display mapping.
1299 ///
1300 /// This structure is used to store the display mapping data such as display manner.
1301 /// For displays with horizontal or vertical stretch manner,
1302 /// this structure also stores the display order, display row, and column data.
1303 /// \nosubgrouping
1304 ////////////////////////////////////////////////////////////////////////////////////////////
1305 typedef struct ADLDisplayMap
1306 {
1307 /// The current display map index. It is the OS desktop index. For example, if the OS index 1 is showing clone mode, the display map will be 1.
1308 int iDisplayMapIndex;
1309
1310 /// The Display Mode for the current map
1311 ADLMode displayMode;
1312
1313 /// The number of display targets belongs to this map\n
1314 int iNumDisplayTarget;
1315
1316 /// The first target array index in the Target array\n
1317 int iFirstDisplayTargetArrayIndex;
1318
1319 /// The bit mask identifies the number of bits DisplayMap is currently using. It is the sum of all the bit definitions defined in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
1320 int iDisplayMapMask;
1321
1322 ///The bit mask identifies the display status. The detailed definition is in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
1323 int iDisplayMapValue;
1324
1325 } ADLDisplayMap, *LPADLDisplayMap;
1326
1327
1328 /////////////////////////////////////////////////////////////////////////////////////////////
1329 /// \brief Structure containing information about the display device possible map for one GPU
1330 ///
1331 /// This structure is used to store the display device possible map
1332 /// This information can be returned to the user.
1333 /// \nosubgrouping
1334 ////////////////////////////////////////////////////////////////////////////////////////////
1335 typedef struct ADLPossibleMap
1336 {
1337 /// The current PossibleMap index. Each PossibleMap is assigned an index
1338 int iIndex;
1339 /// The adapter index identifying the GPU for which to validate these Maps & Targets
1340 int iAdapterIndex;
1341 /// Number of display Maps for this GPU to be validated
1342 int iNumDisplayMap;
1343 /// The display Maps list to validate
1344 ADLDisplayMap* displayMap;
1345 /// the number of display Targets for these display Maps
1346 int iNumDisplayTarget;
1347 /// The display Targets list for these display Maps to be validated.
1348 ADLDisplayTarget* displayTarget;
1349 } ADLPossibleMap, *LPADLPossibleMap;
1350
1351
1352 /////////////////////////////////////////////////////////////////////////////////////////////
1353 /// \brief Structure containing information about display possible mapping.
1354 ///
1355 /// This structure is used to store the display possible mapping's controller index for the current display.
1356 /// \nosubgrouping
1357 ////////////////////////////////////////////////////////////////////////////////////////////
1358 typedef struct ADLPossibleMapping
1359 {
1360 int iDisplayIndex; ///< The display index. Each display is assigned an index.
1361 int iDisplayControllerIndex; ///< The controller index to which display is mapped.
1362 int iDisplayMannerSupported; ///< The supported display manner.
1363 } ADLPossibleMapping, *LPADLPossibleMapping;
1364
1365 /////////////////////////////////////////////////////////////////////////////////////////////
1366 /// \brief Structure containing information about the validated display device possible map result.
1367 ///
1368 /// This structure is used to store the validated display device possible map result
1369 /// This information can be returned to the user.
1370 /// \nosubgrouping
1371 ////////////////////////////////////////////////////////////////////////////////////////////
1372 typedef struct ADLPossibleMapResult
1373 {
1374 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1375 int iIndex;
1376 // The bit mask identifies the number of bits PossibleMapResult is currently using. It will be the sum all the bit definitions defined in ADL_DISPLAY_POSSIBLEMAPRESULT_VALID.
1377 int iPossibleMapResultMask;
1378 /// The bit mask identifies the possible map result. The detail definition is defined in ADL_DISPLAY_POSSIBLEMAPRESULT_XXX.
1379 int iPossibleMapResultValue;
1380 } ADLPossibleMapResult, *LPADLPossibleMapResult;
1381
1382 /////////////////////////////////////////////////////////////////////////////////////////////
1383 ///\brief Structure containing information about the display SLS Grid information.
1384 ///
1385 /// This structure is used to store the display SLS Grid information.
1386 /// \nosubgrouping
1387 ////////////////////////////////////////////////////////////////////////////////////////////
1388 typedef struct ADLSLSGrid
1389 {
1390 /// The Adapter index.
1391 int iAdapterIndex;
1392
1393 /// The grid index.
1394 int iSLSGridIndex;
1395
1396 /// The grid row.
1397 int iSLSGridRow;
1398
1399 /// The grid column.
1400 int iSLSGridColumn;
1401
1402 /// The grid bit mask identifies the number of bits DisplayMap is currently using. Sum of all bits defined in ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
1403 int iSLSGridMask;
1404
1405 /// The grid bit value identifies the display status. Refer to ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
1406 int iSLSGridValue;
1407
1408 } ADLSLSGrid, *LPADLSLSGrid;
1409
1410 /////////////////////////////////////////////////////////////////////////////////////////////
1411 ///\brief Structure containing information about the display SLS Map information.
1412 ///
1413 /// This structure is used to store the display SLS Map information.
1414 /// \nosubgrouping
1415 ////////////////////////////////////////////////////////////////////////////////////////////
1416 typedef struct ADLSLSMap
1417 {
1418 /// The Adapter Index
1419 int iAdapterIndex;
1420
1421 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1422 int iSLSMapIndex;
1423
1424 /// Indicate the current grid
1425 ADLSLSGrid grid;
1426
1427 /// OS surface index
1428 int iSurfaceMapIndex;
1429
1430 /// Screen orientation. E.g., 0, 90, 180, 270
1431 int iOrientation;
1432
1433 /// The number of display targets belongs to this map
1434 int iNumSLSTarget;
1435
1436 /// The first target array index in the Target array
1437 int iFirstSLSTargetArrayIndex;
1438
1439 /// The number of native modes belongs to this map
1440 int iNumNativeMode;
1441
1442 /// The first native mode array index in the native mode array
1443 int iFirstNativeModeArrayIndex;
1444
1445 /// The number of bezel modes belongs to this map
1446 int iNumBezelMode;
1447
1448 /// The first bezel mode array index in the native mode array
1449 int iFirstBezelModeArrayIndex;
1450
1451 /// The number of bezel offsets belongs to this map
1452 int iNumBezelOffset;
1453
1454 /// The first bezel offset array index in the
1455 int iFirstBezelOffsetArrayIndex;
1456
1457 /// The bit mask identifies the number of bits DisplayMap is currently using. Sum all the bit definitions defined in ADL_DISPLAY_SLSMAP_XXX.
1458 int iSLSMapMask;
1459
1460 /// The bit mask identifies the display map status. Refer to ADL_DISPLAY_SLSMAP_XXX
1461 int iSLSMapValue;
1462
1463
1464 } ADLSLSMap, *LPADLSLSMap;
1465
1466 /////////////////////////////////////////////////////////////////////////////////////////////
1467 ///\brief Structure containing information about the display SLS Offset information.
1468 ///
1469 /// This structure is used to store the display SLS Offset information.
1470 /// \nosubgrouping
1471 ////////////////////////////////////////////////////////////////////////////////////////////
1472 typedef struct ADLSLSOffset
1473 {
1474 /// The Adapter Index
1475 int iAdapterIndex;
1476
1477 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1478 int iSLSMapIndex;
1479
1480 /// The Display ID.
1481 ADLDisplayID displayID;
1482
1483 /// SLS Bezel Mode Index
1484 int iBezelModeIndex;
1485
1486 /// SLS Bezel Offset X
1487 int iBezelOffsetX;
1488
1489 /// SLS Bezel Offset Y
1490 int iBezelOffsetY;
1491
1492 /// SLS Display Width
1493 int iDisplayWidth;
1494
1495 /// SLS Display Height
1496 int iDisplayHeight;
1497
1498 /// The bit mask identifies the number of bits Offset is currently using.
1499 int iBezelOffsetMask;
1500
1501 /// The bit mask identifies the display status.
1502 int iBezelffsetValue;
1503 } ADLSLSOffset, *LPADLSLSOffset;
1504
1505 /////////////////////////////////////////////////////////////////////////////////////////////
1506 ///\brief Structure containing information about the display SLS Mode information.
1507 ///
1508 /// This structure is used to store the display SLS Mode information.
1509 /// \nosubgrouping
1510 ////////////////////////////////////////////////////////////////////////////////////////////
1511 typedef struct ADLSLSMode
1512 {
1513 /// The Adapter Index
1514 int iAdapterIndex;
1515
1516 /// The current display map index. It is the OS Desktop index. For example, OS Index 1 showing clone mode. The Display Map will be 1.
1517 int iSLSMapIndex;
1518
1519 /// The mode index
1520 int iSLSModeIndex;
1521
1522 /// The mode for this map.
1523 ADLMode displayMode;
1524
1525 /// The bit mask identifies the number of bits Mode is currently using.
1526 int iSLSNativeModeMask;
1527
1528 /// The bit mask identifies the display status.
1529 int iSLSNativeModeValue;
1530 } ADLSLSMode, *LPADLSLSMode;
1531
1532
1533
1534
1535 /////////////////////////////////////////////////////////////////////////////////////////////
1536 ///\brief Structure containing information about the display Possible SLS Map information.
1537 ///
1538 /// This structure is used to store the display Possible SLS Map information.
1539 /// \nosubgrouping
1540 ////////////////////////////////////////////////////////////////////////////////////////////
1541 typedef struct ADLPossibleSLSMap
1542 {
1543 /// The current display map index. It is the OS Desktop index.
1544 /// For example, OS Index 1 showing clone mode. The Display Map will be 1.
1545 int iSLSMapIndex;
1546
1547 /// Number of display map to be validated.
1548 int iNumSLSMap;
1549
1550 /// The display map list for validation
1551 ADLSLSMap* lpSLSMap;
1552
1553 /// the number of display map config to be validated.
1554 int iNumSLSTarget;
1555
1556 /// The display target list for validation.
1557 ADLDisplayTarget* lpDisplayTarget;
1558 } ADLPossibleSLSMap, *LPADLPossibleSLSMap;
1559
1560
1561 /////////////////////////////////////////////////////////////////////////////////////////////
1562 ///\brief Structure containing information about the SLS targets.
1563 ///
1564 /// This structure is used to store the SLS targets information.
1565 /// \nosubgrouping
1566 ////////////////////////////////////////////////////////////////////////////////////////////
1567 typedef struct ADLSLSTarget
1568 {
1569 /// the logic adapter index
1570 int iAdapterIndex;
1571
1572 /// The SLS map index
1573 int iSLSMapIndex;
1574
1575 /// The target ID
1576 ADLDisplayTarget displayTarget;
1577
1578 /// Target postion X in SLS grid
1579 int iSLSGridPositionX;
1580
1581 /// Target postion Y in SLS grid
1582 int iSLSGridPositionY;
1583
1584 /// The view size width, height and rotation angle per SLS Target
1585 ADLMode viewSize;
1586
1587 /// The bit mask identifies the bits in iSLSTargetValue are currently used
1588 int iSLSTargetMask;
1589
1590 /// The bit mask identifies status info. It is for function extension purpose
1591 int iSLSTargetValue;
1592
1593 } ADLSLSTarget, *LPADLSLSTarget;
1594
1595 /////////////////////////////////////////////////////////////////////////////////////////////
1596 ///\brief Structure containing information about the Adapter offset stepping size.
1597 ///
1598 /// This structure is used to store the Adapter offset stepping size information.
1599 /// \nosubgrouping
1600 ////////////////////////////////////////////////////////////////////////////////////////////
1601 typedef struct ADLBezelOffsetSteppingSize
1602 {
1603 /// the logic adapter index
1604 int iAdapterIndex;
1605
1606 /// The SLS map index
1607 int iSLSMapIndex;
1608
1609 /// Bezel X stepping size offset
1610 int iBezelOffsetSteppingSizeX;
1611
1612 /// Bezel Y stepping size offset
1613 int iBezelOffsetSteppingSizeY;
1614
1615 /// Identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
1616 int iBezelOffsetSteppingSizeMask;
1617
1618 /// Bit mask identifies the display status.
1619 int iBezelOffsetSteppingSizeValue;
1620
1621 } ADLBezelOffsetSteppingSize, *LPADLBezelOffsetSteppingSize;
1622
1623 /////////////////////////////////////////////////////////////////////////////////////////////
1624 ///\brief Structure containing information about driver supported PowerExpress Config Caps
1625 ///
1626 /// This structure is used to store the driver supported PowerExpress Config Caps
1627 /// \nosubgrouping
1628 ////////////////////////////////////////////////////////////////////////////////////////////
1629 typedef struct ADLPXConfigCaps
1630 {
1631 /// The Persistent logical Adapter Index.
1632 int iAdapterIndex;
1633
1634 /// The bit mask identifies the number of bits PowerExpress Config Caps is currently using. It is the sum of all the bit definitions defined in \ref ADL_PX_CONFIGCAPS_XXXX.
1635 int iPXConfigCapMask;
1636
1637 /// The bit mask identifies the PowerExpress Config Caps value. The detailed definition is in \ref ADL_PX_CONFIGCAPS_XXXX.
1638 int iPXConfigCapValue;
1639
1640 } ADLPXConfigCaps, *LPADLPXConfigCaps;
1641
1642
1643 /////////////////////////////////////////////////////////////////////////////////////////////
1644 ///\brief Structure containing information about an application
1645 ///
1646 /// This structure is used to store basic information of an application
1647 /// \nosubgrouping
1648 ////////////////////////////////////////////////////////////////////////////////////////////
1649 typedef struct _ADLApplicationData
1650 {
1651 /// Path Name
1652 char strPathName[ADL_MAX_PATH];
1653 /// File Name
1654 char strFileName[ADL_APP_PROFILE_FILENAME_LENGTH];
1655 /// Creation timestamp
1656 char strTimeStamp[ADL_APP_PROFILE_TIMESTAMP_LENGTH];
1657 /// Version
1658 char strVersion[ADL_APP_PROFILE_VERSION_LENGTH];
1659 }ADLApplicationData;
1660
1661
1662 /////////////////////////////////////////////////////////////////////////////////////////////
1663 ///\brief Structure containing information of a property of an application profile
1664 ///
1665 /// This structure is used to store property information of an application profile
1666 /// \nosubgrouping
1667 ////////////////////////////////////////////////////////////////////////////////////////////
1668 typedef struct _PropertyRecord
1669 {
1670 /// Property Name
1671 char strName [ADL_APP_PROFILE_PROPERTY_LENGTH];
1672 /// Property Type
1673 ADLProfilePropertyType eType;
1674 /// Data Size in bytes
1675 int iDataSize;
1676 /// Property Value, can be any data type
1677 unsigned char uData[1];
1678 }PropertyRecord;
1679
1680 /////////////////////////////////////////////////////////////////////////////////////////////
1681 ///\brief Structure containing information about an application profile
1682 ///
1683 /// This structure is used to store information of an application profile
1684 /// \nosubgrouping
1685 ////////////////////////////////////////////////////////////////////////////////////////////
1686 typedef struct _ADLApplicationProfile
1687 {
1688 /// Number of properties
1689 int iCount;
1690 /// Buffer to store all property records
1691 PropertyRecord record[1];
1692 }ADLApplicationProfile;
1693
1694 // @}
1695
1696 /////////////////////////////////////////////////////////////////////////////////////////////
1697 ///\brief Structure containing information about an OD5 Power Control feature
1698 ///
1699 /// This structure is used to store information of an Power Control feature
1700 /// \nosubgrouping
1701 ////////////////////////////////////////////////////////////////////////////////////////////
1702 typedef struct ADLPowerControlInfo
1703 {
1704 /// Minimum value.
1705 int iMinValue;
1706 /// Maximum value.
1707 int iMaxValue;
1708 /// The minimum change in between minValue and maxValue.
1709 int iStepValue;
1710 } ADLPowerControlInfo;
1711
1712 /////////////////////////////////////////////////////////////////////////////////////////////
1713 ///\brief Structure containing information about an controller mode
1714 ///
1715 /// This structure is used to store information of an controller mode
1716 /// \nosubgrouping
1717 ////////////////////////////////////////////////////////////////////////////////////////////
1718 typedef struct _ADLControllerMode
1719 {
1720 /// This falg indicates actions that will be applied by set viewport
1721 /// The value can be a combination of ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION,
1722 /// ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK and ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE
1723 int iModifiers;
1724
1725 /// Horizontal view starting position
1726 int iViewPositionCx;
1727
1728 /// Vertical view starting position
1729 int iViewPositionCy;
1730
1731 /// Horizontal left panlock position
1732 int iViewPanLockLeft;
1733
1734 /// Horizontal right panlock position
1735 int iViewPanLockRight;
1736
1737 /// Vertical top panlock position
1738 int iViewPanLockTop;
1739
1740 /// Vertical bottom panlock position
1741 int iViewPanLockBottom;
1742
1743 /// View resolution in pixels (width)
1744 int iViewResolutionCx;
1745
1746 /// View resolution in pixels (hight)
1747 int iViewResolutionCy;
1748 }ADLControllerMode;
1749
1750
1751 #endif /* ADL_STRUCTURES_H_ */
1752