Commit | Line | Data |
---|---|---|
200322e5 LOK |
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 |