diff --git a/Common/adl.pas b/Common/adl.pas
index 88b91c2..f6849b1 100644
--- a/Common/adl.pas
+++ b/Common/adl.pas
@@ -106,8 +106,15 @@ TADL = class
FOverdrive5_FanSpeedInfo: ADL_OVERDRIVE5_FANSPEEDINFO_GET;
FOverdrive5_CurrentActivity: ADL_OVERDRIVE5_CURRENTACTIVITY_GET;
FOverdrive5_ODParameters: ADL_OVERDRIVE5_ODPARAMETERS_GET;
+ FMain_Control_Create2: ADL2_MAIN_CONTROL_CREATE;
+ FMain_Control_Destroy2: ADL2_MAIN_CONTROL_DESTROY;
+ FOverdriveN_Temperature: ADL2_OVERDRIVEN_TEMPERATURE_GET;
+ FOverdrive8_Init_Setting: ADL2_OVERDRIVE8_INIT_SETTINGX2_GET;
+ FOverdrive8_Current_Setting: ADL2_OVERDRIVE8_CURRENT_SETTINGX2_GET;
+ FNew_QueryPMLogData: ADL2_NEW_QUERYPMLOGDATA_GET;
FAdapterInfo: PAdapterInfo;
FNumberAdapters: Integer;
+ FADL2Context: Pointer;
function GetAdapterCount: Integer;
function GetAdapters(Index: Integer): TADLAdapter;
protected
@@ -119,7 +126,7 @@ TADL = class
destructor Destroy; override;
procedure Update;
property AdapterCount: Integer read GetAdapterCount;
- property Adapters[Index: Integer]: TADLAdapter read GetAdapters;
+ property Adapters[Index: Integer]: TADLAdapter read GetAdapters; default;
end;
implementation
@@ -131,6 +138,8 @@ implementation
AMDVENDORID = 1002;
ADL_WARNING_NO_DATA = -100;
+{ Global }
+
function ADL_Main_Memory_Alloc(iSize: Integer): Pointer; stdcall;
begin
Result:=AllocMem(iSize);
@@ -190,6 +199,14 @@ procedure TADL.Initialize;
FOverdrive5_FanSpeedInfo:=GetProcAddress(FDLLHandle, 'ADL_Overdrive5_FanSpeedInfo_Get');
FOverdrive5_CurrentActivity:=GetProcAddress(FDLLHandle, 'ADL_Overdrive5_CurrentActivity_Get');
FOverdrive5_ODParameters:=GetProcAddress(FDLLHandle, 'ADL_Overdrive5_ODParameters_Get');
+
+ FMain_Control_Create2:=GetProcAddress(FDLLHandle, 'ADL2_Main_Control_Create');
+ FMain_Control_Destroy2:=GetProcAddress(FDLLHandle, 'ADL2_Main_Control_Destroy');
+ FOverdriveN_Temperature:=GetProcAddress(FDLLHandle, 'ADL2_OverdriveN_Temperature_Get');
+ FOverdrive8_Init_Setting:=GetProcAddress(FDLLHandle, 'ADL2_Overdrive8_Init_SettingX2_Get');
+ FOverdrive8_Current_Setting:=GetProcAddress(FDLLHandle, 'ADL2_Overdrive8_Current_SettingX2_Get');
+ FNew_QueryPMLogData:=GetProcAddress(FDLLHandle, 'ADL2_New_QueryPMLogData_Get');
+
if (@FMain_Control_Create <> nil) AND
(@FMain_Control_Destroy <> nil) AND
(@FAdapter_NumberOfAdapters <> nil) AND
@@ -203,11 +220,20 @@ procedure TADL.Initialize;
(@FOverdrive5_FanSpeed <> nil) AND
(@FOverdrive5_FanSpeedInfo <> nil) AND
(@FOverdrive5_CurrentActivity <> nil) AND
- (@FOverdrive5_ODParameters <> nil) then
+ (@FOverdrive5_ODParameters <> nil) AND
+ (@FMain_Control_Create2 <> nil) AND
+ (@FMain_Control_Destroy2 <> nil) AND
+ (@FOverdriveN_Temperature <> nil) AND
+ (@FOverdrive8_Init_Setting <> nil) AND
+ (@FOverdrive8_Current_Setting <> nil) AND
+ (@FNew_QueryPMLogData <> nil) then
begin
if FMain_Control_Create(ADL_Main_Memory_Alloc, 1) <> ADL_OK then
raise Exception.Create('ADL Initialization Error!');
+ if FMain_Control_Create2(ADL_Main_Memory_Alloc, 1, FADL2Context) <> ADL_OK then
+ raise Exception.Create('ADL2 Initialization Error!');
+
FNumberAdapters:=0;
if FAdapter_NumberOfAdapters(FNumberAdapters) <> ADL_OK then
raise Exception.Create('Cannot get the number of adapters!');
@@ -231,7 +257,9 @@ procedure TADL.Update;
var
Registry: TRegistry;
Adapter: TADLAdapter;
- I, AdapterActive, IsSupported, IsEnabled, Version: Integer;
+ S: ADLSensorType;
+ D: ADLOD8SettingId;
+ I, J, AdapterActive, IsSupported, IsEnabled, Version, Capabilities, FeatureCount: Integer;
BiosInfo: TADLBiosInfo;
MemoryInfo: TADLMemoryInfo;
AdapterInfo: TAdapterInfo;
@@ -241,6 +269,10 @@ procedure TADL.Update;
AdapterActivity: TADLPMActivity;
ODParameters: TADLODParameters;
ThermalControllerInfo: TADLThermalControllerInfo;
+ LogData: TADLPMLogDataOutput;
+ SettingsInit: TADLOD8InitSetting;
+ SettingsCurr: TADLOD8CurrentSetting;
+ SettingList: PADLOD8SingleInitSetting;
begin
if FInitialized then
begin
@@ -262,91 +294,173 @@ procedure TADL.Update;
Adapter:=GetAdapaterByLocation(AdapterInfo.iBusNumber, AdapterInfo.iDeviceNumber, AdapterInfo.iFunctionNumber);
if NOT Assigned(Adapter) then
begin
- FAdapter_VideoBiosInfo(AdapterInfo.iAdapterIndex, BiosInfo);
- FAdapter_MemoryInfo(AdapterInfo.iAdapterIndex, MemoryInfo);
-
- Adapter:=TADLAdapter.Create;
- try
- Adapter.FUpdate:=True;
-
- Adapter.FBiosPartNumber:=String(AnsiString(BiosInfo.strPartNumber));
- Adapter.FBiosVersion:=String(AnsiString(BiosInfo.strVersion));
- Adapter.FBiosDate:=String(AnsiString(BiosInfo.strDate));
- Adapter.FMemorySize:=MemoryInfo.iMemorySize;
- Adapter.FMemoryType:=String(AnsiString(MemoryInfo.strMemoryType));
- Adapter.FMemoryBandwidth:=MemoryInfo.iMemoryBandwidth;
- Adapter.FIndex:=AdapterInfo.iAdapterIndex;
- Adapter.FName:=String(AnsiString(AdapterInfo.strAdapterName));
- Adapter.FPNP:=String(AnsiString(AdapterInfo.strPNPString));
- Adapter.FDisplay:=String(AnsiString(AdapterInfo.strDisplayName));
- Adapter.FBusNumber:=AdapterInfo.iBusNumber;
- Adapter.FDeviceNumber:=AdapterInfo.iDeviceNumber;
- Adapter.FFunctionNumber:=AdapterInfo.iFunctionNumber;
-
- Registry:=TRegistry.Create(KEY_READ);
+ if (FAdapter_VideoBiosInfo(AdapterInfo.iAdapterIndex, BiosInfo) = ADL_OK) AND (FAdapter_MemoryInfo(AdapterInfo.iAdapterIndex, MemoryInfo) = ADL_OK) then
+ begin
+ Adapter:=TADLAdapter.Create;
try
- Registry.RootKey:=HKEY_LOCAL_MACHINE;
- if Registry.OpenKey(StringReplace(String(AnsiString(PAnsiChar(@AdapterInfo.strDriverPath[0]))), '\Registry\Machine\', '', [rfIgnoreCase]), False) then
+ Adapter.FUpdate:=True;
+
+ Adapter.FBiosPartNumber:=String(AnsiString(BiosInfo.strPartNumber));
+ Adapter.FBiosVersion:=String(AnsiString(BiosInfo.strVersion));
+ Adapter.FBiosDate:=String(AnsiString(BiosInfo.strDate));
+ Adapter.FMemorySize:=MemoryInfo.iMemorySize;
+ Adapter.FMemoryType:=String(AnsiString(MemoryInfo.strMemoryType));
+ Adapter.FMemoryBandwidth:=MemoryInfo.iMemoryBandwidth;
+ Adapter.FIndex:=AdapterInfo.iAdapterIndex;
+ Adapter.FName:=String(AnsiString(AdapterInfo.strAdapterName));
+ Adapter.FPNP:=String(AnsiString(AdapterInfo.strPNPString));
+ Adapter.FDisplay:=String(AnsiString(AdapterInfo.strDisplayName));
+ Adapter.FBusNumber:=AdapterInfo.iBusNumber;
+ Adapter.FDeviceNumber:=AdapterInfo.iDeviceNumber;
+ Adapter.FFunctionNumber:=AdapterInfo.iFunctionNumber;
+
+ if Version >= 8 then // If this is OD8 we need to get the sensor MAX values here...
+ begin
+ SettingList:=nil;
+ FeatureCount:=Integer(ADLOD8SettingId.OD8_COUNT);
+ if FOverdrive8_Init_Setting(FADL2Context, AdapterInfo.iAdapterIndex, Capabilities, FeatureCount, SettingList) = ADL_OK then
+ begin
+ SettingsInit.count:=IfThen(FeatureCount > Integer(ADLOD8SettingId.OD8_COUNT), Integer(ADLOD8SettingId.OD8_COUNT), FeatureCount);
+ SettingsInit.overdrive8Capabilities:=Capabilities;
+
+ CopyMemory(@SettingsInit.od8SettingTable[OD8_GFXCLK_FMAX], SettingList, Min(FeatureCount * SizeOf(TADLOD8SingleInitSetting), SizeOf(SettingsInit.od8SettingTable)));
+
+ Adapter.FClockMax:=SettingsInit.od8SettingTable[OD8_GFXCLK_FMAX].maxValue;
+ Adapter.FMemoryMax:=SettingsInit.od8SettingTable[OD8_UCLK_FMAX].maxValue;
+ Adapter.FFanMaxRPM:=SettingsInit.od8SettingTable[OD8_FAN_MIN_SPEED].maxValue;
+ end;
+ end;
+
+ Registry:=TRegistry.Create(KEY_READ);
try
- Adapter.FDriverDate:=Registry.ReadString('DriverDate');
- Adapter.FDriverVersion:=Registry.ReadString('DriverVersion');
+ Registry.RootKey:=HKEY_LOCAL_MACHINE;
+ if Registry.OpenKey(StringReplace(String(AnsiString(PAnsiChar(@AdapterInfo.strDriverPath[0]))), '\Registry\Machine\', '', [rfIgnoreCase]), False) then
+ try
+ Adapter.FDriverDate:=Registry.ReadString('DriverDate');
+ Adapter.FDriverVersion:=Registry.ReadString('DriverVersion');
+ finally
+ Registry.CloseKey;
+ end;
finally
- Registry.CloseKey;
+ FreeAndNil(Registry);
end;
finally
- FreeAndNil(Registry);
+ FAdapters.Add(Adapter);
end;
- finally
- FAdapters.Add(Adapter);
end;
end;
if Assigned(Adapter) AND Adapter.FUpdate then
begin
- ThermalControllerInfo.iSize:=SizeOf(ThermalControllerInfo);
- FOverdrive5_ThermalDevices(AdapterInfo.iAdapterIndex, 0, ThermalControllerInfo);
+ if Version >= 8 then
+ begin
+ ZeroMemory(@LogData, SizeOf(LogData));
+ if FNew_QueryPMLogData(FADL2Context, AdapterInfo.iAdapterIndex, LogData) = ADL_OK then
+ begin
+ for S:=Low(ADLSensorType) to High(ADLSensorType) do
+ with LogData.sensors[Integer(S)] do
+ if supported <> 0 then
+ case S of
+ SENSOR_MAXTYPES: ;
+ PMLOG_CLK_GFXCLK: Adapter.FClock:=value;
+ PMLOG_CLK_MEMCLK: Adapter.FMemory:=value;
+ PMLOG_CLK_SOCCLK: ;
+ PMLOG_CLK_UVDCLK1: ;
+ PMLOG_CLK_UVDCLK2: ;
+ PMLOG_CLK_VCECLK: ;
+ PMLOG_CLK_VCNCLK: ;
+ PMLOG_TEMPERATURE_EDGE: ;
+ PMLOG_TEMPERATURE_MEM: ;
+ PMLOG_TEMPERATURE_VRVDDC: ;
+ PMLOG_TEMPERATURE_VRMVDD: ;
+ PMLOG_TEMPERATURE_LIQUID: ;
+ PMLOG_TEMPERATURE_PLX: ;
+ PMLOG_FAN_RPM: Adapter.FFanRPM:=value;
+ PMLOG_FAN_PERCENTAGE: Adapter.FFan:=value;
+ PMLOG_SOC_VOLTAGE: ;
+ PMLOG_SOC_POWER: ;
+ PMLOG_SOC_CURRENT: ;
+ PMLOG_INFO_ACTIVITY_GFX: Adapter.FActivity:=value;
+ PMLOG_INFO_ACTIVITY_MEM: ;
+ PMLOG_GFX_VOLTAGE: Adapter.FVddc:=value / 1000;
+ PMLOG_MEM_VOLTAGE: ;
+ PMLOG_ASIC_POWER: ;
+ PMLOG_TEMPERATURE_VRSOC: ;
+ PMLOG_TEMPERATURE_VRMVDD0: ;
+ PMLOG_TEMPERATURE_VRMVDD1: ;
+ PMLOG_TEMPERATURE_HOTSPOT: Adapter.FTemp:=value;
+ PMLOG_TEMPERATURE_GFX: ;
+ PMLOG_TEMPERATURE_SOC: ;
+ PMLOG_GFX_POWER: ;
+ PMLOG_GFX_CURRENT: ;
+ PMLOG_TEMPERATURE_CPU: ;
+ PMLOG_CPU_POWER: ;
+ PMLOG_CLK_CPUCLK: ;
+ PMLOG_THROTTLER_STATUS: ;
+ PMLOG_CLK_VCN1CLK1: ;
+ PMLOG_CLK_VCN1CLK2: ;
+ PMLOG_SMART_POWERSHIFT_CPU: ;
+ PMLOG_SMART_POWERSHIFT_DGPU: ;
+ PMLOG_MAX_SENSORS_REAL: ;
+ end;
+ end;
+ end else
+ begin
+ ThermalControllerInfo.iSize:=SizeOf(ThermalControllerInfo);
+ if FOverdrive5_ThermalDevices(AdapterInfo.iAdapterIndex, 0, ThermalControllerInfo) = ADL_OK then
+ begin
- AdapterTemp.iSize:=SizeOf(AdapterTemp);
- FOverdrive5_Temperature(AdapterInfo.iAdapterIndex, 0, AdapterTemp);
- Adapter.FTemp:=AdapterTemp.iTemperature div 1000;
+ end;
- AdapterFanSpeedInfo.iSize:=SizeOf(AdapterFanSpeedInfo);
- FOverdrive5_FanSpeedInfo(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeedInfo);
+ AdapterTemp.iSize:=SizeOf(AdapterTemp);
+ if FOverdrive5_Temperature(AdapterInfo.iAdapterIndex, 0, AdapterTemp) = ADL_OK then
+ begin
+ Adapter.FTemp:=AdapterTemp.iTemperature div 1000;
+ end;
- if (AdapterFanSpeedInfo.iFlags AND ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ) = ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ then
- begin
- AdapterFanSpeed.iSize:=SizeOf(AdapterFanSpeed);
- AdapterFanSpeed.iSpeedType:=ADL_DL_FANCTRL_SPEED_TYPE_PERCENT;
- FOverdrive5_FanSpeed(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeed);
- Adapter.FFan:=AdapterFanSpeed.iFanSpeed;
- end;
+ AdapterFanSpeedInfo.iSize:=SizeOf(AdapterFanSpeedInfo);
+ if FOverdrive5_FanSpeedInfo(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeedInfo) = ADL_OK then
+ begin
+ if (AdapterFanSpeedInfo.iFlags AND ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ) = ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ then
+ begin
+ AdapterFanSpeed.iSize:=SizeOf(AdapterFanSpeed);
+ AdapterFanSpeed.iSpeedType:=ADL_DL_FANCTRL_SPEED_TYPE_PERCENT;
+ FOverdrive5_FanSpeed(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeed);
+ Adapter.FFan:=AdapterFanSpeed.iFanSpeed;
+ end;
- if (AdapterFanSpeedInfo.iFlags AND ADL_DL_FANCTRL_SUPPORTS_RPM_READ) = ADL_DL_FANCTRL_SUPPORTS_RPM_READ then
- begin
- AdapterFanSpeed.iSize:=SizeOf(AdapterFanSpeed);
- AdapterFanSpeed.iSpeedType:=ADL_DL_FANCTRL_SPEED_TYPE_RPM;
- FOverdrive5_FanSpeed(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeed);
- Adapter.FFanRPM:=AdapterFanSpeed.iFanSpeed;
- if Adapter.FFan > 0 then // Try to calc the max RPM here
- Adapter.FFanMaxRPM:=Round(Adapter.FFanRPM / Adapter.FFan * 100);
- end;
+ if (AdapterFanSpeedInfo.iFlags AND ADL_DL_FANCTRL_SUPPORTS_RPM_READ) = ADL_DL_FANCTRL_SUPPORTS_RPM_READ then
+ begin
+ AdapterFanSpeed.iSize:=SizeOf(AdapterFanSpeed);
+ AdapterFanSpeed.iSpeedType:=ADL_DL_FANCTRL_SPEED_TYPE_RPM;
+ FOverdrive5_FanSpeed(AdapterInfo.iAdapterIndex, 0, AdapterFanSpeed);
+ Adapter.FFanRPM:=AdapterFanSpeed.iFanSpeed;
+ if Adapter.FFan > 0 then // Try to calc the max RPM here
+ Adapter.FFanMaxRPM:=Round(Adapter.FFanRPM / Adapter.FFan * 100);
+ end;
+ end;
+
+ AdapterActivity.iSize:=SizeOf(AdapterActivity);
+ if FOverdrive5_CurrentActivity(AdapterInfo.iAdapterIndex, AdapterActivity) = ADL_OK then
+ begin
+ Adapter.FActivity:=AdapterActivity.iActivityPercent;
+ Adapter.FVddc:=AdapterActivity.iVddc / 1000;
+ Adapter.FClock:=AdapterActivity.iEngineClock div 100;
+ Adapter.FMemory:=AdapterActivity.iMemoryClock div 100;
+ Adapter.FPerformanceLevel:=AdapterActivity.iCurrentPerformanceLevel;
+ Adapter.FBusSpeed:=AdapterActivity.iCurrentBusSpeed div 1000;
+ Adapter.FBusLanes:=AdapterActivity.iCurrentBusLanes;
+ Adapter.FBusLanesMax:=AdapterActivity.iMaximumBusLanes;
+ end;
- AdapterActivity.iSize:=SizeOf(AdapterActivity);
- FOverdrive5_CurrentActivity(AdapterInfo.iAdapterIndex, AdapterActivity);
- Adapter.FActivity:=AdapterActivity.iActivityPercent;
- Adapter.FVddc:=AdapterActivity.iVddc / 1000;
- Adapter.FClock:=AdapterActivity.iEngineClock div 100;
- Adapter.FMemory:=AdapterActivity.iMemoryClock div 100;
- Adapter.FPerformanceLevel:=AdapterActivity.iCurrentPerformanceLevel;
- Adapter.FBusSpeed:=AdapterActivity.iCurrentBusSpeed div 1000;
- Adapter.FBusLanes:=AdapterActivity.iCurrentBusLanes;
- Adapter.FBusLanesMax:=AdapterActivity.iMaximumBusLanes;
-
- ODParameters.iSize:=SizeOf(ODParameters);
- FOverdrive5_ODParameters(AdapterInfo.iAdapterIndex, ODParameters);
- Adapter.FVddcMax:=ODParameters.sVddc.iMax / 1000;
- Adapter.FClockMax:=ODParameters.sEngineClock.iMax div 100;
- Adapter.FMemoryMax:=ODParameters.sMemoryClock.iMax div 100;
+ ODParameters.iSize:=SizeOf(ODParameters);
+ if FOverdrive5_ODParameters(AdapterInfo.iAdapterIndex, ODParameters) = ADL_OK then
+ begin
+ Adapter.FVddcMax:=ODParameters.sVddc.iMax / 1000;
+ Adapter.FClockMax:=ODParameters.sEngineClock.iMax div 100;
+ Adapter.FMemoryMax:=ODParameters.sMemoryClock.iMax div 100;
+ end;
+ end;
Adapter.FUpdate:=False;
end;
@@ -362,6 +476,7 @@ procedure TADL.Finalize;
begin
FreeMem(FAdapterInfo);
FMain_Control_Destroy;
+ FMain_Control_Destroy2(FADL2Context);
end;
FInitialized:=False;
@@ -385,6 +500,12 @@ procedure TADL.Finalize;
@FOverdrive5_FanSpeedInfo:=nil;
@FOverdrive5_CurrentActivity:=nil;
@FOverdrive5_ODParameters:=nil;
+ @FMain_Control_Create2:=nil;
+ @FMain_Control_Destroy2:=nil;
+ @FOverdriveN_Temperature:=nil;
+ @FOverdrive8_Init_Setting:=nil;
+ @FOverdrive8_Current_Setting:=nil;
+ @FNew_QueryPMLogData:=nil;
end;
function TADL.GetAdapaterByLocation(ABusNumber, ADeviceNumber, AFunctionNumber: Integer): TADLAdapter;
diff --git a/Common/adl_defines.pas b/Common/adl_defines.pas
index de32ce9..82e36d0 100644
--- a/Common/adl_defines.pas
+++ b/Common/adl_defines.pas
@@ -2,7 +2,6 @@
interface
-//
// Copyright (c) 2008 - 2013 Advanced Micro Devices, Inc.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
@@ -28,2119 +27,2080 @@ interface
/// \name General Definitions
// @{
-/// Defines ADL_TRUE
-const ADL_TRUE = 1;
-{$EXTERNALSYM ADL_TRUE}
-/// Defines ADL_FALSE
-const ADL_FALSE = 0;
-{$EXTERNALSYM ADL_FALSE}
-
-/// Defines the maximum string length
-const ADL_MAX_CHAR = 4096;
-{$EXTERNALSYM ADL_MAX_CHAR}
-/// Defines the maximum string length
-const ADL_MAX_PATH = 256;
-{$EXTERNALSYM ADL_MAX_PATH}
-/// Defines the maximum number of supported adapters
-const ADL_MAX_ADAPTERS = 250;
-{$EXTERNALSYM ADL_MAX_ADAPTERS}
-/// Defines the maxumum number of supported displays
-const ADL_MAX_DISPLAYS = 150;
-{$EXTERNALSYM ADL_MAX_DISPLAYS}
-/// Defines the maxumum string length for device name
-const ADL_MAX_DEVICENAME = 32;
-{$EXTERNALSYM ADL_MAX_DEVICENAME}
-/// Defines for all adapters
-const ADL_ADAPTER_INDEX_ALL = -1;
-{$EXTERNALSYM ADL_ADAPTER_INDEX_ALL}
-/// Defines APIs with iOption none
-const ADL_MAIN_API_OPTION_NONE = 0;
-{$EXTERNALSYM ADL_MAIN_API_OPTION_NONE}
+const
+
+ /// Defines ADL_TRUE
+ ADL_TRUE = 1;
+ /// Defines ADL_FALSE
+ ADL_FALSE = 0;
+
+ /// Defines the maximum string length
+ ADL_MAX_CHAR = 4096;
+ /// Defines the maximum string length
+ ADL_MAX_PATH = 256;
+ /// Defines the maximum number of supported adapters
+ ADL_MAX_ADAPTERS = 250;
+ /// Defines the maxumum number of supported displays
+ ADL_MAX_DISPLAYS = 150;
+ /// Defines the maxumum string length for device name
+ ADL_MAX_DEVICENAME = 32;
+ /// Defines for all adapters
+ ADL_ADAPTER_INDEX_ALL = -1;
+ /// Defines APIs with iOption none
+ ADL_MAIN_API_OPTION_NONE = 0;
+ // @}
+
+ /// \name Definitions for iOption parameter used by
+ /// ADL_Display_DDCBlockAccess_Get()
+ // @{
+
+ /// Switch to DDC line 2 before sending the command to the display.
+ ADL_DDC_OPTION_SWITCHDDC2 = $00000001;
+ /// Save command in the registry under a unique key, corresponding to parameter \b iCommandIndex
+ ADL_DDC_OPTION_RESTORECOMMAND = $00000002;
+ /// Combine write-read DDC block access command.
+ ADL_DDC_OPTION_COMBOWRITEREAD = $00000010;
+ /// Direct DDC access to the immediate device connected to graphics card.
+ /// MST with this option set: DDC command is sent to first branch.
+ /// MST with this option not set: DDC command is sent to the end node sink device.
+ ADL_DDC_OPTION_SENDTOIMMEDIATEDEVICE = $00000020;
+ // @}
+
+ /// \name Values for
+ /// ADLI2C.iAction used with ADL_Display_WriteAndReadI2C()
+ // @{
+
+ ADL_DL_I2C_ACTIONREAD = $00000001;
+ ADL_DL_I2C_ACTIONWRITE = $00000002;
+ ADL_DL_I2C_ACTIONREAD_REPEATEDSTART = $00000003;
+ // @}
+
+ // @} //Misc
+
+ /// \defgroup define_adl_results Result Codes
+ /// This group of definitions are the various results returned by all ADL functions \n
+ // @{
+ /// All OK, but need to wait
+ ADL_OK_WAIT = 4;
+ /// All OK, but need restart
+ ADL_OK_RESTART = 3;
+ /// All OK but need mode change
+ ADL_OK_MODE_CHANGE = 2;
+ /// All OK, but with warning
+ ADL_OK_WARNING = 1;
+ /// ADL function completed successfully
+ ADL_OK = 0;
+ /// Generic Error. Most likely one or more of the Escape calls to the driver failed!
+ ADL_ERR = -1;
+ /// ADL not initialized
+ ADL_ERR_NOT_INIT = -2;
+ /// One of the parameter passed is invalid
+ ADL_ERR_INVALID_PARAM = -3;
+ /// One of the parameter size is invalid
+ ADL_ERR_INVALID_PARAM_SIZE = -4;
+ /// Invalid ADL index passed
+ ADL_ERR_INVALID_ADL_IDX = -5;
+ /// Invalid controller index passed
+ ADL_ERR_INVALID_CONTROLLER_IDX = -6;
+ /// Invalid display index passed
+ ADL_ERR_INVALID_DIPLAY_IDX = -7;
+ /// Function not supported by the driver
+ ADL_ERR_NOT_SUPPORTED = -8;
+ /// Null Pointer error
+ ADL_ERR_NULL_POINTER = -9;
+ /// Call can't be made due to disabled adapter
+ ADL_ERR_DISABLED_ADAPTER = -10;
+ /// Invalid Callback
+ ADL_ERR_INVALID_CALLBACK = -11;
+ /// Display Resource conflict
+ ADL_ERR_RESOURCE_CONFLICT = -12;
+ //Failed to update some of the values. Can be returned by set request that include multiple values if not all values were successfully committed.
+ ADL_ERR_SET_INCOMPLETE = -20;
+ /// There's no Linux XDisplay in Linux Console environment
+ ADL_ERR_NO_XDISPLAY = -21;
+
+ // @}
+ ///
+
+ /// \defgroup define_display_type Display Type
+ /// Define Monitor/CRT display type
+ // @{
+ /// Define Monitor display type
+ ADL_DT_MONITOR = 0;
+ /// Define TV display type
+ ADL_DT_TELEVISION = 1;
+ /// Define LCD display type
+ ADL_DT_LCD_PANEL = 2;
+ /// Define DFP display type
+ ADL_DT_DIGITAL_FLAT_PANEL = 3;
+ /// Define Componment Video display type
+ ADL_DT_COMPONENT_VIDEO = 4;
+ /// Define Projector display type
+ ADL_DT_PROJECTOR = 5;
+ // @}
+
+ /// \defgroup define_display_connection_type Display Connection Type
+ // @{
+ /// Define unknown display output type
+ ADL_DOT_UNKNOWN = 0;
+ /// Define composite display output type
+ ADL_DOT_COMPOSITE = 1;
+ /// Define SVideo display output type
+ ADL_DOT_SVIDEO = 2;
+ /// Define analog display output type
+ ADL_DOT_ANALOG = 3;
+ /// Define digital display output type
+ ADL_DOT_DIGITAL = 4;
+ // @}
+
+ /// \defgroup define_color_type Display Color Type and Source
+ /// Define Display Color Type and Source
+ // @{
+ ADL_DISPLAY_COLOR_BRIGHTNESS = (1 shl 0);
+ ADL_DISPLAY_COLOR_CONTRAST = (1 shl 1);
+ ADL_DISPLAY_COLOR_SATURATION = (1 shl 2);
+ ADL_DISPLAY_COLOR_HUE = (1 shl 3);
+ ADL_DISPLAY_COLOR_TEMPERATURE = (1 shl 4);
+
+ /// Color Temperature Source is EDID
+ ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_EDID = (1 shl 5);
+ /// Color Temperature Source is User
+ ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_USER = (1 shl 6);
+ // @}
+
+ /// \defgroup define_adjustment_capabilities Display Adjustment Capabilities
+ /// Display adjustment capabilities values. Returned by ADL_Display_AdjustCaps_Get
+ // @{
+ ADL_DISPLAY_ADJUST_OVERSCAN = (1 shl 0);
+ ADL_DISPLAY_ADJUST_VERT_POS = (1 shl 1);
+ ADL_DISPLAY_ADJUST_HOR_POS = (1 shl 2);
+ ADL_DISPLAY_ADJUST_VERT_SIZE = (1 shl 3);
+ ADL_DISPLAY_ADJUST_HOR_SIZE = (1 shl 4);
+ ADL_DISPLAY_ADJUST_SIZEPOS = (ADL_DISPLAY_ADJUST_VERT_POS or ADL_DISPLAY_ADJUST_HOR_POS or
+ ADL_DISPLAY_ADJUST_VERT_SIZE or ADL_DISPLAY_ADJUST_HOR_SIZE);
+ ADL_DISPLAY_CUSTOMMODES = (1 shl 5);
+ ADL_DISPLAY_ADJUST_UNDERSCAN = (1 shl 6);
+ // @}
+
+ ///Down-scale support
+ ADL_DISPLAY_CAPS_DOWNSCALE = (1 shl 0);
+
+ /// Sharpness support
+ ADL_DISPLAY_CAPS_SHARPNESS = (1 shl 0);
+
+ /// \defgroup define_desktop_config Desktop Configuration Flags
+ /// These flags are used by ADL_DesktopConfig_xxx
+ /// \deprecated This API has been deprecated because it was only used for RandR 1.1 (Red Hat 5.x) distributions which is now not supported.
+ // @{
+ ADL_DESKTOPCONFIG_UNKNOWN = 0; //* UNKNOWN desktop config */;
+ ADL_DESKTOPCONFIG_SINGLE = (1 shl 0); //* Single */;
+ ADL_DESKTOPCONFIG_CLONE = (1 shl 2); //* Clone */;
+ ADL_DESKTOPCONFIG_BIGDESK_H = (1 shl 4); //* Big Desktop Horizontal */;
+ ADL_DESKTOPCONFIG_BIGDESK_V = (1 shl 5); //* Big Desktop Vertical */;
+ ADL_DESKTOPCONFIG_BIGDESK_HR = (1 shl 6); //* Big Desktop Reverse Horz */;
+ ADL_DESKTOPCONFIG_BIGDESK_VR = (1 shl 7); //* Big Desktop Reverse Vert */;
+ ADL_DESKTOPCONFIG_RANDR12 = (1 shl 8); //* RandR 1.2 Multi-display */;
+ // @}
+
+ /// needed for ADLDDCInfo structure
+ ADL_MAX_DISPLAY_NAME = 256;
+
+ /// \defgroup define_edid_flags Values for ulDDCInfoFlag
+ /// defines for ulDDCInfoFlag EDID flag
+ // @{
+ ADL_DISPLAYDDCINFOEX_FLAG_PROJECTORDEVICE = (1 shl 0);
+ ADL_DISPLAYDDCINFOEX_FLAG_EDIDEXTENSION = (1 shl 1);
+ ADL_DISPLAYDDCINFOEX_FLAG_DIGITALDEVICE = (1 shl 2);
+ ADL_DISPLAYDDCINFOEX_FLAG_HDMIAUDIODEVICE = (1 shl 3);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORTS_AI = (1 shl 4);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC601 = (1 shl 5);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC709 = (1 shl 6);
+ // @}
+
+ /// \defgroup define_displayinfo_connector Display Connector Type
+ /// defines for ADLDisplayInfo.iDisplayConnector
+ // @{
+ ADL_DISPLAY_CONTYPE_UNKNOWN = 0;
+ ADL_DISPLAY_CONTYPE_VGA = 1;
+ ADL_DISPLAY_CONTYPE_DVI_D = 2;
+ ADL_DISPLAY_CONTYPE_DVI_I = 3;
+ ADL_DISPLAY_CONTYPE_ATICVDONGLE_NTSC = 4;
+ ADL_DISPLAY_CONTYPE_ATICVDONGLE_JPN = 5;
+ ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_JPN = 6;
+ ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_NTSC = 7;
+ ADL_DISPLAY_CONTYPE_PROPRIETARY = 8;
+ ADL_DISPLAY_CONTYPE_HDMI_TYPE_A = 10;
+ ADL_DISPLAY_CONTYPE_HDMI_TYPE_B = 11;
+ ADL_DISPLAY_CONTYPE_SVIDEO = 12;
+ ADL_DISPLAY_CONTYPE_COMPOSITE = 13;
+ ADL_DISPLAY_CONTYPE_RCA_3COMPONENT = 14;
+ ADL_DISPLAY_CONTYPE_DISPLAYPORT = 15;
+ ADL_DISPLAY_CONTYPE_EDP = 16;
+ ADL_DISPLAY_CONTYPE_WIRELESSDISPLAY = 17;
+ // @}
+
+ /// TV Capabilities and Standards
+ /// \defgroup define_tv_caps TV Capabilities and Standards
+ /// \deprecated Dropping support for TV displays
+ // @{
+ ADL_TV_STANDARDS = (1 shl 0);
+ ADL_TV_SCART = (1 shl 1);
+
+ /// TV Standards Definitions
+ ADL_STANDARD_NTSC_M = (1 shl 0);
+ ADL_STANDARD_NTSC_JPN = (1 shl 1);
+ ADL_STANDARD_NTSC_N = (1 shl 2);
+ ADL_STANDARD_PAL_B = (1 shl 3);
+ ADL_STANDARD_PAL_COMB_N = (1 shl 4);
+ ADL_STANDARD_PAL_D = (1 shl 5);
+ ADL_STANDARD_PAL_G = (1 shl 6);
+ ADL_STANDARD_PAL_H = (1 shl 7);
+ ADL_STANDARD_PAL_I = (1 shl 8);
+ ADL_STANDARD_PAL_K = (1 shl 9);
+ ADL_STANDARD_PAL_K1 = (1 shl 10);
+ ADL_STANDARD_PAL_L = (1 shl 11);
+ ADL_STANDARD_PAL_M = (1 shl 12);
+ ADL_STANDARD_PAL_N = (1 shl 13);
+ ADL_STANDARD_PAL_SECAM_D = (1 shl 14);
+ ADL_STANDARD_PAL_SECAM_K = (1 shl 15);
+ ADL_STANDARD_PAL_SECAM_K1 = (1 shl 16);
+ ADL_STANDARD_PAL_SECAM_L = (1 shl 17);
+ // @}
+
+ /// \defgroup define_video_custom_mode Video Custom Mode flags
+ /// Component Video Custom Mode flags. This is used by the iFlags parameter in ADLCustomMode
+ // @{
+ ADL_CUSTOMIZEDMODEFLAG_MODESUPPORTED = (1 shl 0);
+ ADL_CUSTOMIZEDMODEFLAG_NOTDELETETABLE = (1 shl 1);
+ ADL_CUSTOMIZEDMODEFLAG_INSERTBYDRIVER = (1 shl 2);
+ ADL_CUSTOMIZEDMODEFLAG_INTERLACED = (1 shl 3);
+ ADL_CUSTOMIZEDMODEFLAG_BASEMODE = (1 shl 4);
+ // @}
+
+ /// \defgroup define_ddcinfoflag Values used for DDCInfoFlag
+ /// ulDDCInfoFlag field values used by the ADLDDCInfo structure
+ // @{
+{ ADL_DISPLAYDDCINFOEX_FLAG_PROJECTORDEVICE = (1 shl 0);
+ ADL_DISPLAYDDCINFOEX_FLAG_EDIDEXTENSION = (1 shl 1);
+ ADL_DISPLAYDDCINFOEX_FLAG_DIGITALDEVICE = (1 shl 2);
+ ADL_DISPLAYDDCINFOEX_FLAG_HDMIAUDIODEVICE = (1 shl 3);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORTS_AI = (1 shl 4);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC601 = (1 shl 5);
+ ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC709 = (1 shl 6);
+} // @}
+
+ /// \defgroup define_cv_dongle Values used by ADL_CV_DongleSettings_xxx
+ /// The following is applicable to ADL_DISPLAY_CONTYPE_ATICVDONGLE_JP and ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_D only
+ /// \deprecated Dropping support for Component Video displays
+ // @{
+ ADL_DISPLAY_CV_DONGLE_D1 = (1 shl 0);
+ ADL_DISPLAY_CV_DONGLE_D2 = (1 shl 1);
+ ADL_DISPLAY_CV_DONGLE_D3 = (1 shl 2);
+ ADL_DISPLAY_CV_DONGLE_D4 = (1 shl 3);
+ ADL_DISPLAY_CV_DONGLE_D5 = (1 shl 4);
+
+ /// The following is applicable to ADL_DISPLAY_CONTYPE_ATICVDONGLE_NA and ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C only
+
+ ADL_DISPLAY_CV_DONGLE_480I = (1 shl 0);
+ ADL_DISPLAY_CV_DONGLE_480P = (1 shl 1);
+ ADL_DISPLAY_CV_DONGLE_540P = (1 shl 2);
+ ADL_DISPLAY_CV_DONGLE_720P = (1 shl 3);
+ ADL_DISPLAY_CV_DONGLE_1080I = (1 shl 4);
+ ADL_DISPLAY_CV_DONGLE_1080P = (1 shl 5);
+ ADL_DISPLAY_CV_DONGLE_16_9 = (1 shl 6);
+ ADL_DISPLAY_CV_DONGLE_720P50 = (1 shl 7);
+ ADL_DISPLAY_CV_DONGLE_1080I25 = (1 shl 8);
+ ADL_DISPLAY_CV_DONGLE_576I25 = (1 shl 9);
+ ADL_DISPLAY_CV_DONGLE_576P50 = (1 shl 10);
+ ADL_DISPLAY_CV_DONGLE_1080P24 = (1 shl 11);
+ ADL_DISPLAY_CV_DONGLE_1080P25 = (1 shl 12);
+ ADL_DISPLAY_CV_DONGLE_1080P30 = (1 shl 13);
+ ADL_DISPLAY_CV_DONGLE_1080P50 = (1 shl 14);
+ // @}
+
+ /// \defgroup define_formats_ovr Formats Override Settings
+ /// Display force modes flags
+ // @{
+ ///
+ ADL_DISPLAY_FORMAT_FORCE_720P = $00000001;
+ ADL_DISPLAY_FORMAT_FORCE_1080I = $00000002;
+ ADL_DISPLAY_FORMAT_FORCE_1080P = $00000004;
+ ADL_DISPLAY_FORMAT_FORCE_720P50 = $00000008;
+ ADL_DISPLAY_FORMAT_FORCE_1080I25 = $00000010;
+ ADL_DISPLAY_FORMAT_FORCE_576I25 = $00000020;
+ ADL_DISPLAY_FORMAT_FORCE_576P50 = $00000040;
+ ADL_DISPLAY_FORMAT_FORCE_1080P24 = $00000080;
+ ADL_DISPLAY_FORMAT_FORCE_1080P25 = $00000100;
+ ADL_DISPLAY_FORMAT_FORCE_1080P30 = $00000200;
+ ADL_DISPLAY_FORMAT_FORCE_1080P50 = $00000400;
+
+ ///< Below are \b EXTENDED display mode flags
+
+ ADL_DISPLAY_FORMAT_CVDONGLEOVERIDE = $00000001;
+ ADL_DISPLAY_FORMAT_CVMODEUNDERSCAN = $00000002;
+ ADL_DISPLAY_FORMAT_FORCECONNECT_SUPPORTED = $00000004;
+ ADL_DISPLAY_FORMAT_RESTRICT_FORMAT_SELECTION = $00000008;
+ ADL_DISPLAY_FORMAT_SETASPECRATIO = $00000010;
+ ADL_DISPLAY_FORMAT_FORCEMODES = $00000020;
+ ADL_DISPLAY_FORMAT_LCDRTCCOEFF = $00000040;
+ // @}
+
+ /// Defines used by OD5
+ ADL_PM_PARAM_DONT_CHANGE = 0;
+
+ /// The following defines Bus types
+ // @{
+ ADL_BUSTYPE_PCI = 0; //* PCI bus */;
+ ADL_BUSTYPE_AGP = 1; //* AGP bus */;
+ ADL_BUSTYPE_PCIE = 2; //* PCI Express bus */;
+ ADL_BUSTYPE_PCIE_GEN2 = 3; //* PCI Express 2nd generation bus */;
+ ADL_BUSTYPE_PCIE_GEN3 = 4; //* PCI Express 3rd generation bus */;
+ // @}
+
+ /// \defgroup define_ws_caps Workstation Capabilities
+ /// Workstation values
+ // @{
+
+ /// This value indicates that the workstation card supports active stereo though stereo output connector
+ ADL_STEREO_SUPPORTED = (1 shl 2);
+ /// This value indicates that the workstation card supports active stereo via "blue-line"
+ ADL_STEREO_BLUE_LINE = (1 shl 3);
+ /// This value is used to turn off stereo mode.
+ ADL_STEREO_OFF = 0;
+ /// This value indicates that the workstation card supports active stereo. This is also used to set the stereo mode to active though the stereo output connector
+ ADL_STEREO_ACTIVE = (1 shl 1);
+ /// This value indicates that the workstation card supports auto-stereo monitors with horizontal interleave. This is also used to set the stereo mode to use the auto-stereo monitor with horizontal interleave
+ ADL_STEREO_AUTO_HORIZONTAL = (1 shl 30);
+ /// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
+ ADL_STEREO_AUTO_VERTICAL = (1 shl 31);
+ /// This value indicates that the workstation card supports passive stereo, ie. non stereo sync
+ ADL_STEREO_PASSIVE = (1 shl 6);
+ /// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
+ ADL_STEREO_PASSIVE_HORIZ = (1 shl 7);
+ /// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
+ ADL_STEREO_PASSIVE_VERT = (1 shl 8);
+ /// This value indicates that the workstation card supports auto-stereo monitors with Samsung.
+ ADL_STEREO_AUTO_SAMSUNG = (1 shl 11);
+ /// This value indicates that the workstation card supports auto-stereo monitors with Tridility.
+ ADL_STEREO_AUTO_TSL = (1 shl 12);
+ /// This value indicates that the workstation card supports DeepBitDepth (10 bpp)
+ ADL_DEEPBITDEPTH_10BPP_SUPPORTED = (1 shl 5);
+
+ /// This value indicates that the workstation supports 8-Bit Grayscale
+ ADL_8BIT_GREYSCALE_SUPPORTED = (1 shl 9);
+ /// This value indicates that the workstation supports CUSTOM TIMING
+ ADL_CUSTOM_TIMING_SUPPORTED = (1 shl 10);
+
+ /// Load balancing is supported.
+ ADL_WORKSTATION_LOADBALANCING_SUPPORTED = $00000001;
+ /// Load balancing is available.
+ ADL_WORKSTATION_LOADBALANCING_AVAILABLE = $00000002;
+
+ /// Load balancing is disabled.
+ ADL_WORKSTATION_LOADBALANCING_DISABLED = $00000000;
+ /// Load balancing is Enabled.
+ ADL_WORKSTATION_LOADBALANCING_ENABLED = $00000001;
+
+ // @}
+
+ /// \defgroup define_adapterspeed speed setting from the adapter
+ // @{
+ ADL_CONTEXT_SPEED_UNFORCED = 0; //* default asic running speed */;
+ ADL_CONTEXT_SPEED_FORCEHIGH = 1; //* asic running speed is forced to high */;
+ ADL_CONTEXT_SPEED_FORCELOW = 2; //* asic running speed is forced to low */;
+
+ ADL_ADAPTER_SPEEDCAPS_SUPPORTED = (1 shl 0); //* change asic running speed setting is supported */;
+ // @}
+
+ /// \defgroup define_glsync Genlock related values
+ /// GL-Sync port types (unique values)
+ // @{
+ /// Unknown port of GL-Sync module
+ ADL_GLSYNC_PORT_UNKNOWN = 0;
+ /// BNC port of of GL-Sync module
+ ADL_GLSYNC_PORT_BNC = 1;
+ /// RJ45(1) port of of GL-Sync module
+ ADL_GLSYNC_PORT_RJ45PORT1 = 2;
+ /// RJ45(2) port of of GL-Sync module
+ ADL_GLSYNC_PORT_RJ45PORT2 = 3;
+
+ // GL-Sync Genlock settings mask (bit-vector)
+
+ /// None of the ADLGLSyncGenlockConfig members are valid
+ ADL_GLSYNC_CONFIGMASK_NONE = 0;
+ /// The ADLGLSyncGenlockConfig.lSignalSource member is valid
+ ADL_GLSYNC_CONFIGMASK_SIGNALSOURCE = (1 shl 0);
+ /// The ADLGLSyncGenlockConfig.iSyncField member is valid
+ ADL_GLSYNC_CONFIGMASK_SYNCFIELD = (1 shl 1);
+ /// The ADLGLSyncGenlockConfig.iSampleRate member is valid
+ ADL_GLSYNC_CONFIGMASK_SAMPLERATE = (1 shl 2);
+ /// The ADLGLSyncGenlockConfig.lSyncDelay member is valid
+ ADL_GLSYNC_CONFIGMASK_SYNCDELAY = (1 shl 3);
+ /// The ADLGLSyncGenlockConfig.iTriggerEdge member is valid
+ ADL_GLSYNC_CONFIGMASK_TRIGGEREDGE = (1 shl 4);
+ /// The ADLGLSyncGenlockConfig.iScanRateCoeff member is valid
+ ADL_GLSYNC_CONFIGMASK_SCANRATECOEFF = (1 shl 5);
+ /// The ADLGLSyncGenlockConfig.lFramelockCntlVector member is valid
+ ADL_GLSYNC_CONFIGMASK_FRAMELOCKCNTL = (1 shl 6);
+
+ // GL-Sync Framelock control mask (bit-vector)
+
+ /// Framelock is disabled
+ ADL_GLSYNC_FRAMELOCKCNTL_NONE = 0;
+ /// Framelock is enabled
+ ADL_GLSYNC_FRAMELOCKCNTL_ENABLE = (1 shl 0);
+
+ ADL_GLSYNC_FRAMELOCKCNTL_DISABLE = (1 shl 1);
+ ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_RESET = (1 shl 2);
+ ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_ACK = (1 shl 3);
+ ADL_GLSYNC_FRAMELOCKCNTL_VERSION_KMD = (1 shl 4);
+
+ ADL_GLSYNC_FRAMELOCKCNTL_STATE_ENABLE = (1 shl 0);
+ ADL_GLSYNC_FRAMELOCKCNTL_STATE_KMD = (1 shl 4);
+
+ // GL-Sync Framelock counters mask (bit-vector)
+ ADL_GLSYNC_COUNTER_SWAP = (1 shl 0);
+
+ // GL-Sync Signal Sources (unique values)
+
+ /// GL-Sync signal source is undefined
+ ADL_GLSYNC_SIGNALSOURCE_UNDEFINED = $00000100;
+ /// GL-Sync signal source is Free Run
+ ADL_GLSYNC_SIGNALSOURCE_FREERUN = $00000101;
+ /// GL-Sync signal source is the BNC GL-Sync port
+ ADL_GLSYNC_SIGNALSOURCE_BNCPORT = $00000102;
+ /// GL-Sync signal source is the RJ45(1) GL-Sync port
+ ADL_GLSYNC_SIGNALSOURCE_RJ45PORT1 = $00000103;
+ /// GL-Sync signal source is the RJ45(2) GL-Sync port
+ ADL_GLSYNC_SIGNALSOURCE_RJ45PORT2 = $00000104;
+
+ // GL-Sync Signal Types (unique values)
+
+ /// GL-Sync signal type is unknown
+ ADL_GLSYNC_SIGNALTYPE_UNDEFINED = 0;
+ /// GL-Sync signal type is 480I
+ ADL_GLSYNC_SIGNALTYPE_480I = 1;
+ /// GL-Sync signal type is 576I
+ ADL_GLSYNC_SIGNALTYPE_576I = 2;
+ /// GL-Sync signal type is 480P
+ ADL_GLSYNC_SIGNALTYPE_480P = 3;
+ /// GL-Sync signal type is 576P
+ ADL_GLSYNC_SIGNALTYPE_576P = 4;
+ /// GL-Sync signal type is 720P
+ ADL_GLSYNC_SIGNALTYPE_720P = 5;
+ /// GL-Sync signal type is 1080P
+ ADL_GLSYNC_SIGNALTYPE_1080P = 6;
+ /// GL-Sync signal type is 1080I
+ ADL_GLSYNC_SIGNALTYPE_1080I = 7;
+ /// GL-Sync signal type is SDI
+ ADL_GLSYNC_SIGNALTYPE_SDI = 8;
+ /// GL-Sync signal type is TTL
+ ADL_GLSYNC_SIGNALTYPE_TTL = 9;
+ /// GL_Sync signal type is Analog
+ ADL_GLSYNC_SIGNALTYPE_ANALOG = 10;
+
+ // GL-Sync Sync Field options (unique values)
+
+ ///GL-Sync sync field option is undefined
+ ADL_GLSYNC_SYNCFIELD_UNDEFINED = 0;
+ ///GL-Sync sync field option is Sync to Field 1 (used for Interlaced signal types)
+ ADL_GLSYNC_SYNCFIELD_BOTH = 1;
+ ///GL-Sync sync field option is Sync to Both fields (used for Interlaced signal types)
+ ADL_GLSYNC_SYNCFIELD_1 = 2;
+
+ // GL-Sync trigger edge options (unique values)
+
+ /// GL-Sync trigger edge is undefined
+ ADL_GLSYNC_TRIGGEREDGE_UNDEFINED = 0;
+ /// GL-Sync trigger edge is the rising edge
+ ADL_GLSYNC_TRIGGEREDGE_RISING = 1;
+ /// GL-Sync trigger edge is the falling edge
+ ADL_GLSYNC_TRIGGEREDGE_FALLING = 2;
+ /// GL-Sync trigger edge is both the rising and the falling edge
+ ADL_GLSYNC_TRIGGEREDGE_BOTH = 3;
+
+ // GL-Sync scan rate coefficient/multiplier options (unique values)
+
+ /// GL-Sync scan rate coefficient/multiplier is undefined
+ ADL_GLSYNC_SCANRATECOEFF_UNDEFINED = 0;
+ /// GL-Sync scan rate coefficient/multiplier is 5
+ ADL_GLSYNC_SCANRATECOEFF_x5 = 1;
+ /// GL-Sync scan rate coefficient/multiplier is 4
+ ADL_GLSYNC_SCANRATECOEFF_x4 = 2;
+ /// GL-Sync scan rate coefficient/multiplier is 3
+ ADL_GLSYNC_SCANRATECOEFF_x3 = 3;
+ /// GL-Sync scan rate coefficient/multiplier is 5:2 (SMPTE)
+ ADL_GLSYNC_SCANRATECOEFF_x5_DIV_2 = 4;
+ /// GL-Sync scan rate coefficient/multiplier is 2
+ ADL_GLSYNC_SCANRATECOEFF_x2 = 5;
+ /// GL-Sync scan rate coefficient/multiplier is 3 : 2
+ ADL_GLSYNC_SCANRATECOEFF_x3_DIV_2 = 6;
+ /// GL-Sync scan rate coefficient/multiplier is 5 : 4
+ ADL_GLSYNC_SCANRATECOEFF_x5_DIV_4 = 7;
+ /// GL-Sync scan rate coefficient/multiplier is 1 (default)
+ ADL_GLSYNC_SCANRATECOEFF_x1 = 8;
+ /// GL-Sync scan rate coefficient/multiplier is 4 : 5
+ ADL_GLSYNC_SCANRATECOEFF_x4_DIV_5 = 9;
+ /// GL-Sync scan rate coefficient/multiplier is 2 : 3
+ ADL_GLSYNC_SCANRATECOEFF_x2_DIV_3 = 10;
+ /// GL-Sync scan rate coefficient/multiplier is 1 : 2
+ ADL_GLSYNC_SCANRATECOEFF_x1_DIV_2 = 11;
+ /// GL-Sync scan rate coefficient/multiplier is 2 : 5 (SMPTE)
+ ADL_GLSYNC_SCANRATECOEFF_x2_DIV_5 = 12;
+ /// GL-Sync scan rate coefficient/multiplier is 1 : 3
+ ADL_GLSYNC_SCANRATECOEFF_x1_DIV_3 = 13;
+ /// GL-Sync scan rate coefficient/multiplier is 1 : 4
+ ADL_GLSYNC_SCANRATECOEFF_x1_DIV_4 = 14;
+ /// GL-Sync scan rate coefficient/multiplier is 1 : 5
+ ADL_GLSYNC_SCANRATECOEFF_x1_DIV_5 = 15;
+
+ // GL-Sync port (signal presence) states (unique values)
+
+ /// GL-Sync port state is undefined
+ ADL_GLSYNC_PORTSTATE_UNDEFINED = 0;
+ /// GL-Sync port is not connected
+ ADL_GLSYNC_PORTSTATE_NOCABLE = 1;
+ /// GL-Sync port is Idle
+ ADL_GLSYNC_PORTSTATE_IDLE = 2;
+ /// GL-Sync port has an Input signal
+ ADL_GLSYNC_PORTSTATE_INPUT = 3;
+ /// GL-Sync port is Output
+ ADL_GLSYNC_PORTSTATE_OUTPUT = 4;
+
+ // GL-Sync LED types (used index within ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array) (unique values)
+
+ /// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the one LED of the BNC port
+ ADL_GLSYNC_LEDTYPE_BNC = 0;
+ /// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the Left LED of the RJ45(1) or RJ45(2) port
+ ADL_GLSYNC_LEDTYPE_RJ45_LEFT = 0;
+ /// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the Right LED of the RJ45(1) or RJ45(2) port
+ ADL_GLSYNC_LEDTYPE_RJ45_RIGHT = 1;
+
+ // GL-Sync LED colors (unique values)
+
+ /// GL-Sync LED undefined color
+ ADL_GLSYNC_LEDCOLOR_UNDEFINED = 0;
+ /// GL-Sync LED is unlit
+ ADL_GLSYNC_LEDCOLOR_NOLIGHT = 1;
+ /// GL-Sync LED is yellow
+ ADL_GLSYNC_LEDCOLOR_YELLOW = 2;
+ /// GL-Sync LED is red
+ ADL_GLSYNC_LEDCOLOR_RED = 3;
+ /// GL-Sync LED is green
+ ADL_GLSYNC_LEDCOLOR_GREEN = 4;
+ /// GL-Sync LED is flashing green
+ ADL_GLSYNC_LEDCOLOR_FLASH_GREEN = 5;
+
+ // GL-Sync Port Control (refers one GL-Sync Port) (unique values)
+
+ /// Used to configure the RJ54(1) or RJ42(2) port of GL-Sync is as Idle
+ ADL_GLSYNC_PORTCNTL_NONE = $00000000;
+ /// Used to configure the RJ54(1) or RJ42(2) port of GL-Sync is as Output
+ ADL_GLSYNC_PORTCNTL_OUTPUT = $00000001;
+
+ // GL-Sync Mode Control (refers one Display/Controller) (bitfields)
+
+ /// Used to configure the display to use internal timing (not genlocked)
+ ADL_GLSYNC_MODECNTL_NONE = $00000000;
+ /// Bitfield used to configure the display as genlocked (either as Timing Client or as Timing Server)
+ ADL_GLSYNC_MODECNTL_GENLOCK = $00000001;
+ /// Bitfield used to configure the display as Timing Server
+ ADL_GLSYNC_MODECNTL_TIMINGSERVER = $00000002;
+
+ // GL-Sync Mode Status
+ /// Display is currently not genlocked
+ ADL_GLSYNC_MODECNTL_STATUS_NONE = $00000000;
+ /// Display is currently genlocked
+ ADL_GLSYNC_MODECNTL_STATUS_GENLOCK = $00000001;
+ /// Display requires a mode switch
+ ADL_GLSYNC_MODECNTL_STATUS_SETMODE_REQUIRED = $00000002;
+ /// Display is capable of being genlocked
+ ADL_GLSYNC_MODECNTL_STATUS_GENLOCK_ALLOWED = $00000004;
+
+ ADL_MAX_GLSYNC_PORTS = 8;
+ ADL_MAX_GLSYNC_PORT_LEDS = 8;
+
+ // @}
+
+ /// \defgroup define_crossfirestate CrossfireX state of a particular adapter CrossfireX combination
+ // @{
+ ADL_XFIREX_STATE_NOINTERCONNECT = (1 shl 0); //* Dongle / cable is missing */;
+ ADL_XFIREX_STATE_DOWNGRADEPIPES = (1 shl 1); //* CrossfireX can be enabled if pipes are downgraded */;
+ ADL_XFIREX_STATE_DOWNGRADEMEM = (1 shl 2); //* CrossfireX cannot be enabled unless mem downgraded */;
+ ADL_XFIREX_STATE_REVERSERECOMMENDED = (1 shl 3); //* Card reversal recommended, CrossfireX cannot be enabled. */;
+ ADL_XFIREX_STATE_3DACTIVE = (1 shl 4); //* 3D client is active - CrossfireX cannot be safely enabled */;
+ ADL_XFIREX_STATE_MASTERONSLAVE = (1 shl 5); //* Dongle is OK but master is on slave */;
+ ADL_XFIREX_STATE_NODISPLAYCONNECT = (1 shl 6); //* No (valid) display connected to master card. */;
+ ADL_XFIREX_STATE_NOPRIMARYVIEW = (1 shl 7); //* CrossfireX is enabled but master is not current primary device */;
+ ADL_XFIREX_STATE_DOWNGRADEVISMEM = (1 shl 8); //* CrossfireX cannot be enabled unless visible mem downgraded */;
+ ADL_XFIREX_STATE_LESSTHAN8LANE_MASTER = (1 shl 9);
+ //* CrossfireX can be enabled however performance not optimal due to <8 lanes */;
+ ADL_XFIREX_STATE_LESSTHAN8LANE_SLAVE = (1 shl 10);
+ //* CrossfireX can be enabled however performance not optimal due to <8 lanes */;
+ ADL_XFIREX_STATE_PEERTOPEERFAILED = (1 shl 11);
+ //* CrossfireX cannot be enabled due to failed peer to peer test */;
+ ADL_XFIREX_STATE_MEMISDOWNGRADED = (1 shl 16); //* Notification that memory is currently downgraded */;
+ ADL_XFIREX_STATE_PIPESDOWNGRADED = (1 shl 17); //* Notification that pipes are currently downgraded */;
+ ADL_XFIREX_STATE_XFIREXACTIVE = (1 shl 18); //* CrossfireX is enabled on current device */;
+ ADL_XFIREX_STATE_VISMEMISDOWNGRADED = (1 shl 19);
+ //* Notification that visible FB memory is currently downgraded */;
+ ADL_XFIREX_STATE_INVALIDINTERCONNECTION = (1 shl 20); //* Cannot support current inter-connection configuration */;
+ ADL_XFIREX_STATE_NONP2PMODE = (1 shl 21); //* CrossfireX will only work with clients supporting non P2P mode */;
+ ADL_XFIREX_STATE_DOWNGRADEMEMBANKS = (1 shl 22);
+ //* CrossfireX cannot be enabled unless memory banks downgraded */;
+ ADL_XFIREX_STATE_MEMBANKSDOWNGRADED = (1 shl 23); //* Notification that memory banks are currently downgraded */;
+ ADL_XFIREX_STATE_DUALDISPLAYSALLOWED = (1 shl 24); //* Extended desktop or clone mode is allowed. */;
+ ADL_XFIREX_STATE_P2P_APERTURE_MAPPING = (1 shl 25); //* P2P mapping was through peer aperture */;
+ ADL_XFIREX_STATE_P2PFLUSH_REQUIRED = ADL_XFIREX_STATE_P2P_APERTURE_MAPPING; //* For back compatible */;
+ ADL_XFIREX_STATE_XSP_CONNECTED = (1 shl 26); //* There is CrossfireX side port connection between GPUs */;
+ ADL_XFIREX_STATE_ENABLE_CF_REBOOT_REQUIRED = (1 shl 27); //* System needs a reboot bofore enable CrossfireX */;
+ ADL_XFIREX_STATE_DISABLE_CF_REBOOT_REQUIRED = (1 shl 28); //* System needs a reboot after disable CrossfireX */;
+ ADL_XFIREX_STATE_DRV_HANDLE_DOWNGRADE_KEY = (1 shl 29);
+ //* Indicate base driver handles the downgrade key updating */;
+ ADL_XFIREX_STATE_CF_RECONFIG_REQUIRED = (1 shl 30);
+ //* CrossfireX need to be reconfigured by CCC because of a LDA chain broken */;
+ ADL_XFIREX_STATE_ERRORGETTINGSTATUS = (1 shl 31); //* Could not obtain current status */;
+ // @}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_ADJUSTMENT_PIXELFORMAT adjustment values
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ /// \defgroup define_pixel_formats Pixel Formats values
+ /// This group defines the various Pixel Formats that a particular digital display can support. \n
+ /// Since a display can support multiple formats, these values can be bit-or'ed to indicate the various formats \n
+ // @{
+ ADL_DISPLAY_PIXELFORMAT_UNKNOWN = 0;
+ ADL_DISPLAY_PIXELFORMAT_RGB = (1 shl 0);
+ ADL_DISPLAY_PIXELFORMAT_YCRCB444 = (1 shl 1); //Limited range;
+ ADL_DISPLAY_PIXELFORMAT_YCRCB422 = (1 shl 2); //Limited range;
+ ADL_DISPLAY_PIXELFORMAT_RGB_LIMITED_RANGE = (1 shl 3);
+ ADL_DISPLAY_PIXELFORMAT_RGB_FULL_RANGE = ADL_DISPLAY_PIXELFORMAT_RGB; //Full range;
+ ADL_DISPLAY_PIXELFORMAT_YCRCB420 = (1 shl 4);
+ // @}
+
+ /// \defgroup define_contype Connector Type Values
+ /// ADLDisplayConfig.ulConnectorType defines
+ // @{
+ ADL_DL_DISPLAYCONFIG_CONTYPE_UNKNOWN = 0;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_JP = 1;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_CV_JPN = 2;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NA = 3;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_NA = 4;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_VGA = 5;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_D = 6;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_I = 7;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_A = 8;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_B = 9;
+ ADL_DL_DISPLAYCONFIG_CONTYPE_DISPLAYPORT = 10;
+ // @}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_DISPLAYINFO_ Definitions
+ // for ADLDisplayInfo.iDisplayInfoMask and ADLDisplayInfo.iDisplayInfoValue
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ /// \defgroup define_displayinfomask Display Info Mask Values
+ // @{
+ ADL_DISPLAY_DISPLAYINFO_DISPLAYCONNECTED = $00000001;
+ ADL_DISPLAY_DISPLAYINFO_DISPLAYMAPPED = $00000002;
+ ADL_DISPLAY_DISPLAYINFO_NONLOCAL = $00000004;
+ ADL_DISPLAY_DISPLAYINFO_FORCIBLESUPPORTED = $00000008;
+ ADL_DISPLAY_DISPLAYINFO_GENLOCKSUPPORTED = $00000010;
+ ADL_DISPLAY_DISPLAYINFO_MULTIVPU_SUPPORTED = $00000020;
+ ADL_DISPLAY_DISPLAYINFO_LDA_DISPLAY = $00000040;
+ ADL_DISPLAY_DISPLAYINFO_MODETIMING_OVERRIDESSUPPORTED = $00000080;
+
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_SINGLE = $00000100;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_CLONE = $00000200;
+
+ /// Legacy support for XP
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2VSTRETCH = $00000400;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2HSTRETCH = $00000800;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_EXTENDED = $00001000;
+
+ /// More support manners
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCH1GPU = $00010000;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCHNGPU = $00020000;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED2 = $00040000;
+ ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED3 = $00080000;
+
+ /// Projector display type
+ ADL_DISPLAY_DISPLAYINFO_SHOWTYPE_PROJECTOR = $00100000;
+
+ // @}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_ADAPTER_DISPLAY_MANNER_SUPPORTED_ Definitions
+ // for ADLAdapterDisplayCap of ADL_Adapter_Display_Cap()
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ /// \defgroup define_adaptermanner Adapter Manner Support Values
+ // @{
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NOTACTIVE = $00000001;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_SINGLE = $00000002;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_CLONE = $00000004;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCH1GPU = $00000008;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCHNGPU = $00000010;
+
+ /// Legacy support for XP
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2VSTRETCH = $00000020;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2HSTRETCH = $00000040;
+ ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_EXTENDED = $00000080;
+
+ ADL_ADAPTER_DISPLAYCAP_PREFERDISPLAY_SUPPORTED = $00000100;
+ ADL_ADAPTER_DISPLAYCAP_BEZEL_SUPPORTED = $00000200;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_DISPLAYMAP_MANNER_ Definitions
+ // for ADLDisplayMap.iDisplayMapMask and ADLDisplayMap.iDisplayMapValue
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED = $00000001;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_NOTACTIVE = $00000002;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_SINGLE = $00000004;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_CLONE = $00000008;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED1 = $00000010; // Removed NSTRETCH;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_HSTRETCH = $00000020;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_VSTRETCH = $00000040;
+ ADL_DISPLAY_DISPLAYMAP_MANNER_VLD = $00000080;
+
+ // @}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_DISPLAYMAP_OPTION_ Definitions
+ // for iOption in function ADL_Display_DisplayMapConfig_Get
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ ADL_DISPLAY_DISPLAYMAP_OPTION_GPUINFO = $00000001;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_DISPLAYTARGET_ Definitions
+ // for ADLDisplayTarget.iDisplayTargetMask and ADLDisplayTarget.iDisplayTargetValue
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ ADL_DISPLAY_DISPLAYTARGET_PREFERRED = $00000001;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_POSSIBLEMAPRESULT_VALID Definitions
+ // for ADLPossibleMapResult.iPossibleMapResultMask and ADLPossibleMapResult.iPossibleMapResultValue
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ ADL_DISPLAY_POSSIBLEMAPRESULT_VALID = $00000001;
+ ADL_DISPLAY_POSSIBLEMAPRESULT_BEZELSUPPORTED = $00000002;
+ ADL_DISPLAY_POSSIBLEMAPRESULT_OVERLAPSUPPORTED = $00000004;
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_DISPLAY_MODE_ Definitions
+ // for ADLMode.iModeMask, ADLMode.iModeValue, and ADLMode.iModeFlag
+ // (bit-vector)
+ ///////////////////////////////////////////////////////////////////////////
+ /// \defgroup define_displaymode Display Mode Values
+ // @{
+ ADL_DISPLAY_MODE_COLOURFORMAT_565 = $00000001;
+ ADL_DISPLAY_MODE_COLOURFORMAT_8888 = $00000002;
+ ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_000 = $00000004;
+ ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_090 = $00000008;
+ ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_180 = $00000010;
+ ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_270 = $00000020;
+ ADL_DISPLAY_MODE_REFRESHRATE_ROUNDED = $00000040;
+ ADL_DISPLAY_MODE_REFRESHRATE_ONLY = $00000080;
+
+ ADL_DISPLAY_MODE_PROGRESSIVE_FLAG = 0;
+ ADL_DISPLAY_MODE_INTERLACED_FLAG = 2;
+ // @}
+
+ ///////////////////////////////////////////////////////////////////////////
+ // ADL_OSMODEINFO Definitions
+ ///////////////////////////////////////////////////////////////////////////
+ /// \defgroup define_osmode OS Mode Values
+ // @{
+ ADL_OSMODEINFOXPOS_DEFAULT = -640;
+ ADL_OSMODEINFOYPOS_DEFAULT = 0;
+ ADL_OSMODEINFOXRES_DEFAULT = 640;
+ ADL_OSMODEINFOYRES_DEFAULT = 480;
+ ADL_OSMODEINFOXRES_DEFAULT800 = 800;
+ ADL_OSMODEINFOYRES_DEFAULT600 = 600;
+ ADL_OSMODEINFOREFRESHRATE_DEFAULT = 60;
+ ADL_OSMODEINFOCOLOURDEPTH_DEFAULT = 8;
+ ADL_OSMODEINFOCOLOURDEPTH_DEFAULT16 = 16;
+ ADL_OSMODEINFOCOLOURDEPTH_DEFAULT24 = 24;
+ ADL_OSMODEINFOCOLOURDEPTH_DEFAULT32 = 32;
+ ADL_OSMODEINFOORIENTATION_DEFAULT = 0;
+ ADL_OSMODEINFOORIENTATION_DEFAULT_WIN7 = $FFFFFFFF;
+ ADL_OSMODEFLAG_DEFAULT = 0;
// @}
-/// \name Definitions for iOption parameter used by
-/// ADL_Display_DDCBlockAccess_Get()
-// @{
-
-/// Switch to DDC line 2 before sending the command to the display.
-const ADL_DDC_OPTION_SWITCHDDC2 = $00000001;
-{$EXTERNALSYM ADL_DDC_OPTION_SWITCHDDC2}
-/// Save command in the registry under a unique key, corresponding to parameter \b iCommandIndex
-const ADL_DDC_OPTION_RESTORECOMMAND = $00000002;
-{$EXTERNALSYM ADL_DDC_OPTION_RESTORECOMMAND}
-/// Combine write-read DDC block access command.
-const ADL_DDC_OPTION_COMBOWRITEREAD = $00000010;
-{$EXTERNALSYM ADL_DDC_OPTION_COMBOWRITEREAD}
-/// Direct DDC access to the immediate device connected to graphics card.
-/// MST with this option set: DDC command is sent to first branch.
-/// MST with this option not set: DDC command is sent to the end node sink device.
-const ADL_DDC_OPTION_SENDTOIMMEDIATEDEVICE = $00000020;
-{$EXTERNALSYM ADL_DDC_OPTION_SENDTOIMMEDIATEDEVICE}
-// @}
-
-/// \name Values for
-/// ADLI2C.iAction used with ADL_Display_WriteAndReadI2C()
-// @{
-
-const ADL_DL_I2C_ACTIONREAD = $00000001;
-{$EXTERNALSYM ADL_DL_I2C_ACTIONREAD}
-const ADL_DL_I2C_ACTIONWRITE = $00000002;
-{$EXTERNALSYM ADL_DL_I2C_ACTIONWRITE}
-const ADL_DL_I2C_ACTIONREAD_REPEATEDSTART = $00000003;
-{$EXTERNALSYM ADL_DL_I2C_ACTIONREAD_REPEATEDSTART}
-// @}
-
-
-// @} //Misc
-
-/// \defgroup define_adl_results Result Codes
-/// This group of definitions are the various results returned by all ADL functions \n
-// @{
-/// All OK, but need to wait
-const ADL_OK_WAIT = 4;
-{$EXTERNALSYM ADL_OK_WAIT}
-/// All OK, but need restart
-const ADL_OK_RESTART = 3;
-{$EXTERNALSYM ADL_OK_RESTART}
-/// All OK but need mode change
-const ADL_OK_MODE_CHANGE = 2;
-{$EXTERNALSYM ADL_OK_MODE_CHANGE}
-/// All OK, but with warning
-const ADL_OK_WARNING = 1;
-{$EXTERNALSYM ADL_OK_WARNING}
-/// ADL function completed successfully
-const ADL_OK = 0;
-{$EXTERNALSYM ADL_OK}
-/// Generic Error. Most likely one or more of the Escape calls to the driver failed!
-const ADL_ERR = -1;
-{$EXTERNALSYM ADL_ERR}
-/// ADL not initialized
-const ADL_ERR_NOT_INIT = -2;
-{$EXTERNALSYM ADL_ERR_NOT_INIT}
-/// One of the parameter passed is invalid
-const ADL_ERR_INVALID_PARAM = -3;
-{$EXTERNALSYM ADL_ERR_INVALID_PARAM}
-/// One of the parameter size is invalid
-const ADL_ERR_INVALID_PARAM_SIZE = -4;
-{$EXTERNALSYM ADL_ERR_INVALID_PARAM_SIZE}
-/// Invalid ADL index passed
-const ADL_ERR_INVALID_ADL_IDX = -5;
-{$EXTERNALSYM ADL_ERR_INVALID_ADL_IDX}
-/// Invalid controller index passed
-const ADL_ERR_INVALID_CONTROLLER_IDX = -6;
-{$EXTERNALSYM ADL_ERR_INVALID_CONTROLLER_IDX}
-/// Invalid display index passed
-const ADL_ERR_INVALID_DIPLAY_IDX = -7;
-{$EXTERNALSYM ADL_ERR_INVALID_DIPLAY_IDX}
-/// Function not supported by the driver
-const ADL_ERR_NOT_SUPPORTED = -8;
-{$EXTERNALSYM ADL_ERR_NOT_SUPPORTED}
-/// Null Pointer error
-const ADL_ERR_NULL_POINTER = -9;
-{$EXTERNALSYM ADL_ERR_NULL_POINTER}
-/// Call can't be made due to disabled adapter
-const ADL_ERR_DISABLED_ADAPTER = -10;
-{$EXTERNALSYM ADL_ERR_DISABLED_ADAPTER}
-/// Invalid Callback
-const ADL_ERR_INVALID_CALLBACK = -11;
-{$EXTERNALSYM ADL_ERR_INVALID_CALLBACK}
-/// Display Resource conflict
-const ADL_ERR_RESOURCE_CONFLICT = -12;
-{$EXTERNALSYM ADL_ERR_RESOURCE_CONFLICT}
-//Failed to update some of the values. Can be returned by set request that include multiple values if not all values were successfully committed.
-const ADL_ERR_SET_INCOMPLETE = -20;
-{$EXTERNALSYM ADL_ERR_SET_INCOMPLETE}
-/// There's no Linux XDisplay in Linux Console environment
-const ADL_ERR_NO_XDISPLAY = -21;
-{$EXTERNALSYM ADL_ERR_NO_XDISPLAY}
-
-// @}
-///
-
-/// \defgroup define_display_type Display Type
-/// Define Monitor/CRT display type
-// @{
-/// Define Monitor display type
-const ADL_DT_MONITOR = 0;
-{$EXTERNALSYM ADL_DT_MONITOR}
-/// Define TV display type
-const ADL_DT_TELEVISION = 1;
-{$EXTERNALSYM ADL_DT_TELEVISION}
-/// Define LCD display type
-const ADL_DT_LCD_PANEL = 2;
-{$EXTERNALSYM ADL_DT_LCD_PANEL}
-/// Define DFP display type
-const ADL_DT_DIGITAL_FLAT_PANEL = 3;
-{$EXTERNALSYM ADL_DT_DIGITAL_FLAT_PANEL}
-/// Define Componment Video display type
-const ADL_DT_COMPONENT_VIDEO = 4;
-{$EXTERNALSYM ADL_DT_COMPONENT_VIDEO}
-/// Define Projector display type
-const ADL_DT_PROJECTOR = 5;
-{$EXTERNALSYM ADL_DT_PROJECTOR}
-// @}
-
-/// \defgroup define_display_connection_type Display Connection Type
-// @{
-/// Define unknown display output type
-const ADL_DOT_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DOT_UNKNOWN}
-/// Define composite display output type
-const ADL_DOT_COMPOSITE = 1;
-{$EXTERNALSYM ADL_DOT_COMPOSITE}
-/// Define SVideo display output type
-const ADL_DOT_SVIDEO = 2;
-{$EXTERNALSYM ADL_DOT_SVIDEO}
-/// Define analog display output type
-const ADL_DOT_ANALOG = 3;
-{$EXTERNALSYM ADL_DOT_ANALOG}
-/// Define digital display output type
-const ADL_DOT_DIGITAL = 4;
-{$EXTERNALSYM ADL_DOT_DIGITAL}
-// @}
-
-/// \defgroup define_color_type Display Color Type and Source
-/// Define Display Color Type and Source
-// @{
-const ADL_DISPLAY_COLOR_BRIGHTNESS = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_BRIGHTNESS}
-const ADL_DISPLAY_COLOR_CONTRAST = (1 shl 1);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_CONTRAST}
-const ADL_DISPLAY_COLOR_SATURATION = (1 shl 2);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_SATURATION}
-const ADL_DISPLAY_COLOR_HUE = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_HUE}
-const ADL_DISPLAY_COLOR_TEMPERATURE = (1 shl 4);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_TEMPERATURE}
-
-/// Color Temperature Source is EDID
-const ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_EDID = (1 shl 5);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_EDID}
-/// Color Temperature Source is User
-const ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_USER = (1 shl 6);
-{$EXTERNALSYM ADL_DISPLAY_COLOR_TEMPERATURE_SOURCE_USER}
-// @}
-
-/// \defgroup define_adjustment_capabilities Display Adjustment Capabilities
-/// Display adjustment capabilities values. Returned by ADL_Display_AdjustCaps_Get
-// @{
-const ADL_DISPLAY_ADJUST_OVERSCAN = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_OVERSCAN}
-const ADL_DISPLAY_ADJUST_VERT_POS = (1 shl 1);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_VERT_POS}
-const ADL_DISPLAY_ADJUST_HOR_POS = (1 shl 2);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_HOR_POS}
-const ADL_DISPLAY_ADJUST_VERT_SIZE = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_VERT_SIZE}
-const ADL_DISPLAY_ADJUST_HOR_SIZE = (1 shl 4);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_HOR_SIZE}
-const ADL_DISPLAY_ADJUST_SIZEPOS = (ADL_DISPLAY_ADJUST_VERT_POS or ADL_DISPLAY_ADJUST_HOR_POS or ADL_DISPLAY_ADJUST_VERT_SIZE or ADL_DISPLAY_ADJUST_HOR_SIZE);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_SIZEPOS}
-const ADL_DISPLAY_CUSTOMMODES = (1 shl 5);
-{$EXTERNALSYM ADL_DISPLAY_CUSTOMMODES}
-const ADL_DISPLAY_ADJUST_UNDERSCAN = (1 shl 6);
-{$EXTERNALSYM ADL_DISPLAY_ADJUST_UNDERSCAN}
-// @}
-
-
-/// \defgroup define_desktop_config Desktop Configuration Flags
-/// These flags are used by ADL_DesktopConfig_xxx
-/// \deprecated This API has been deprecated because it was only used for RandR 1.1 (Red Hat 5.x) distributions which is now not supported.
-// @{
-const ADL_DESKTOPCONFIG_UNKNOWN = 0; (* UNKNOWN desktop config *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_UNKNOWN}
-const ADL_DESKTOPCONFIG_SINGLE = (1 shl 0); (* Single *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_SINGLE}
-const ADL_DESKTOPCONFIG_CLONE = (1 shl 2); (* Clone *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_CLONE}
-const ADL_DESKTOPCONFIG_BIGDESK_H = (1 shl 4); (* Big Desktop Horizontal *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_BIGDESK_H}
-const ADL_DESKTOPCONFIG_BIGDESK_V = (1 shl 5); (* Big Desktop Vertical *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_BIGDESK_V}
-const ADL_DESKTOPCONFIG_BIGDESK_HR = (1 shl 6); (* Big Desktop Reverse Horz *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_BIGDESK_HR}
-const ADL_DESKTOPCONFIG_BIGDESK_VR = (1 shl 7); (* Big Desktop Reverse Vert *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_BIGDESK_VR}
-const ADL_DESKTOPCONFIG_RANDR12 = (1 shl 8); (* RandR 1.2 Multi-display *)
-{$EXTERNALSYM ADL_DESKTOPCONFIG_RANDR12}
-// @}
-
-/// needed for ADLDDCInfo structure
-const ADL_MAX_DISPLAY_NAME = 256;
-{$EXTERNALSYM ADL_MAX_DISPLAY_NAME}
-
-/// \defgroup define_edid_flags Values for ulDDCInfoFlag
-/// defines for ulDDCInfoFlag EDID flag
-// @{
-const ADL_DISPLAYDDCINFOEX_FLAG_PROJECTORDEVICE = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_PROJECTORDEVICE}
-const ADL_DISPLAYDDCINFOEX_FLAG_EDIDEXTENSION = (1 shl 1);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_EDIDEXTENSION}
-const ADL_DISPLAYDDCINFOEX_FLAG_DIGITALDEVICE = (1 shl 2);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_DIGITALDEVICE}
-const ADL_DISPLAYDDCINFOEX_FLAG_HDMIAUDIODEVICE = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_HDMIAUDIODEVICE}
-const ADL_DISPLAYDDCINFOEX_FLAG_SUPPORTS_AI = (1 shl 4);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_SUPPORTS_AI}
-const ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC601 = (1 shl 5);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC601}
-const ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC709 = (1 shl 6);
-{$EXTERNALSYM ADL_DISPLAYDDCINFOEX_FLAG_SUPPORT_xvYCC709}
-// @}
-
-/// \defgroup define_displayinfo_connector Display Connector Type
-/// defines for ADLDisplayInfo.iDisplayConnector
-// @{
-const ADL_DISPLAY_CONTYPE_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_UNKNOWN}
-const ADL_DISPLAY_CONTYPE_VGA = 1;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_VGA}
-const ADL_DISPLAY_CONTYPE_DVI_D = 2;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_DVI_D}
-const ADL_DISPLAY_CONTYPE_DVI_I = 3;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_DVI_I}
-const ADL_DISPLAY_CONTYPE_ATICVDONGLE_NTSC = 4;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_ATICVDONGLE_NTSC}
-const ADL_DISPLAY_CONTYPE_ATICVDONGLE_JPN = 5;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_ATICVDONGLE_JPN}
-const ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_JPN = 6;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_JPN}
-const ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_NTSC = 7;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_NTSC}
-const ADL_DISPLAY_CONTYPE_PROPRIETARY = 8;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_PROPRIETARY}
-const ADL_DISPLAY_CONTYPE_HDMI_TYPE_A = 10;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_HDMI_TYPE_A}
-const ADL_DISPLAY_CONTYPE_HDMI_TYPE_B = 11;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_HDMI_TYPE_B}
-const ADL_DISPLAY_CONTYPE_SVIDEO = 12;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_SVIDEO}
-const ADL_DISPLAY_CONTYPE_COMPOSITE = 13;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_COMPOSITE}
-const ADL_DISPLAY_CONTYPE_RCA_3COMPONENT = 14;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_RCA_3COMPONENT}
-const ADL_DISPLAY_CONTYPE_DISPLAYPORT = 15;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_DISPLAYPORT}
-const ADL_DISPLAY_CONTYPE_EDP = 16;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_EDP}
-const ADL_DISPLAY_CONTYPE_WIRELESSDISPLAY = 17;
-{$EXTERNALSYM ADL_DISPLAY_CONTYPE_WIRELESSDISPLAY}
-// @}
-
-/// TV Capabilities and Standards
-/// \defgroup define_tv_caps TV Capabilities and Standards
-/// \deprecated Dropping support for TV displays
-// @{
-const ADL_TV_STANDARDS = (1 shl 0);
-{$EXTERNALSYM ADL_TV_STANDARDS}
-const ADL_TV_SCART = (1 shl 1);
-{$EXTERNALSYM ADL_TV_SCART}
-
-/// TV Standards Definitions
-const ADL_STANDARD_NTSC_M = (1 shl 0);
-{$EXTERNALSYM ADL_STANDARD_NTSC_M}
-const ADL_STANDARD_NTSC_JPN = (1 shl 1);
-{$EXTERNALSYM ADL_STANDARD_NTSC_JPN}
-const ADL_STANDARD_NTSC_N = (1 shl 2);
-{$EXTERNALSYM ADL_STANDARD_NTSC_N}
-const ADL_STANDARD_PAL_B = (1 shl 3);
-{$EXTERNALSYM ADL_STANDARD_PAL_B}
-const ADL_STANDARD_PAL_COMB_N = (1 shl 4);
-{$EXTERNALSYM ADL_STANDARD_PAL_COMB_N}
-const ADL_STANDARD_PAL_D = (1 shl 5);
-{$EXTERNALSYM ADL_STANDARD_PAL_D}
-const ADL_STANDARD_PAL_G = (1 shl 6);
-{$EXTERNALSYM ADL_STANDARD_PAL_G}
-const ADL_STANDARD_PAL_H = (1 shl 7);
-{$EXTERNALSYM ADL_STANDARD_PAL_H}
-const ADL_STANDARD_PAL_I = (1 shl 8);
-{$EXTERNALSYM ADL_STANDARD_PAL_I}
-const ADL_STANDARD_PAL_K = (1 shl 9);
-{$EXTERNALSYM ADL_STANDARD_PAL_K}
-const ADL_STANDARD_PAL_K1 = (1 shl 10);
-{$EXTERNALSYM ADL_STANDARD_PAL_K1}
-const ADL_STANDARD_PAL_L = (1 shl 11);
-{$EXTERNALSYM ADL_STANDARD_PAL_L}
-const ADL_STANDARD_PAL_M = (1 shl 12);
-{$EXTERNALSYM ADL_STANDARD_PAL_M}
-const ADL_STANDARD_PAL_N = (1 shl 13);
-{$EXTERNALSYM ADL_STANDARD_PAL_N}
-const ADL_STANDARD_PAL_SECAM_D = (1 shl 14);
-{$EXTERNALSYM ADL_STANDARD_PAL_SECAM_D}
-const ADL_STANDARD_PAL_SECAM_K = (1 shl 15);
-{$EXTERNALSYM ADL_STANDARD_PAL_SECAM_K}
-const ADL_STANDARD_PAL_SECAM_K1 = (1 shl 16);
-{$EXTERNALSYM ADL_STANDARD_PAL_SECAM_K1}
-const ADL_STANDARD_PAL_SECAM_L = (1 shl 17);
-{$EXTERNALSYM ADL_STANDARD_PAL_SECAM_L}
-// @}
-
-
-/// \defgroup define_video_custom_mode Video Custom Mode flags
-/// Component Video Custom Mode flags. This is used by the iFlags parameter in ADLCustomMode
-// @{
-const ADL_CUSTOMIZEDMODEFLAG_MODESUPPORTED = (1 shl 0);
-{$EXTERNALSYM ADL_CUSTOMIZEDMODEFLAG_MODESUPPORTED}
-const ADL_CUSTOMIZEDMODEFLAG_NOTDELETETABLE = (1 shl 1);
-{$EXTERNALSYM ADL_CUSTOMIZEDMODEFLAG_NOTDELETETABLE}
-const ADL_CUSTOMIZEDMODEFLAG_INSERTBYDRIVER = (1 shl 2);
-{$EXTERNALSYM ADL_CUSTOMIZEDMODEFLAG_INSERTBYDRIVER}
-const ADL_CUSTOMIZEDMODEFLAG_INTERLACED = (1 shl 3);
-{$EXTERNALSYM ADL_CUSTOMIZEDMODEFLAG_INTERLACED}
-const ADL_CUSTOMIZEDMODEFLAG_BASEMODE = (1 shl 4);
-{$EXTERNALSYM ADL_CUSTOMIZEDMODEFLAG_BASEMODE}
-// @}
-
-/// \defgroup define_cv_dongle Values used by ADL_CV_DongleSettings_xxx
-/// The following is applicable to ADL_DISPLAY_CONTYPE_ATICVDONGLE_JP and ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C_D only
-/// \deprecated Dropping support for Component Video displays
-// @{
-const ADL_DISPLAY_CV_DONGLE_D1 = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_D1}
-const ADL_DISPLAY_CV_DONGLE_D2 = (1 shl 1);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_D2}
-const ADL_DISPLAY_CV_DONGLE_D3 = (1 shl 2);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_D3}
-const ADL_DISPLAY_CV_DONGLE_D4 = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_D4}
-const ADL_DISPLAY_CV_DONGLE_D5 = (1 shl 4);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_D5}
-
-/// The following is applicable to ADL_DISPLAY_CONTYPE_ATICVDONGLE_NA and ADL_DISPLAY_CONTYPE_ATICVDONGLE_NONI2C only
-
-const ADL_DISPLAY_CV_DONGLE_480I = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_480I}
-const ADL_DISPLAY_CV_DONGLE_480P = (1 shl 1);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_480P}
-const ADL_DISPLAY_CV_DONGLE_540P = (1 shl 2);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_540P}
-const ADL_DISPLAY_CV_DONGLE_720P = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_720P}
-const ADL_DISPLAY_CV_DONGLE_1080I = (1 shl 4);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080I}
-const ADL_DISPLAY_CV_DONGLE_1080P = (1 shl 5);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080P}
-const ADL_DISPLAY_CV_DONGLE_16_9 = (1 shl 6);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_16_9}
-const ADL_DISPLAY_CV_DONGLE_720P50 = (1 shl 7);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_720P50}
-const ADL_DISPLAY_CV_DONGLE_1080I25 = (1 shl 8);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080I25}
-const ADL_DISPLAY_CV_DONGLE_576I25 = (1 shl 9);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_576I25}
-const ADL_DISPLAY_CV_DONGLE_576P50 = (1 shl 10);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_576P50}
-const ADL_DISPLAY_CV_DONGLE_1080P24 = (1 shl 11);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080P24}
-const ADL_DISPLAY_CV_DONGLE_1080P25 = (1 shl 12);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080P25}
-const ADL_DISPLAY_CV_DONGLE_1080P30 = (1 shl 13);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080P30}
-const ADL_DISPLAY_CV_DONGLE_1080P50 = (1 shl 14);
-{$EXTERNALSYM ADL_DISPLAY_CV_DONGLE_1080P50}
-// @}
-
-/// \defgroup define_formats_ovr Formats Override Settings
-/// Display force modes flags
-// @{
-///
-const ADL_DISPLAY_FORMAT_FORCE_720P = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_720P}
-const ADL_DISPLAY_FORMAT_FORCE_1080I = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080I}
-const ADL_DISPLAY_FORMAT_FORCE_1080P = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080P}
-const ADL_DISPLAY_FORMAT_FORCE_720P50 = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_720P50}
-const ADL_DISPLAY_FORMAT_FORCE_1080I25 = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080I25}
-const ADL_DISPLAY_FORMAT_FORCE_576I25 = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_576I25}
-const ADL_DISPLAY_FORMAT_FORCE_576P50 = $00000040;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_576P50}
-const ADL_DISPLAY_FORMAT_FORCE_1080P24 = $00000080;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080P24}
-const ADL_DISPLAY_FORMAT_FORCE_1080P25 = $00000100;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080P25}
-const ADL_DISPLAY_FORMAT_FORCE_1080P30 = $00000200;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080P30}
-const ADL_DISPLAY_FORMAT_FORCE_1080P50 = $00000400;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCE_1080P50}
-
-///< Below are \b EXTENDED display mode flags
-
-const ADL_DISPLAY_FORMAT_CVDONGLEOVERIDE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_CVDONGLEOVERIDE}
-const ADL_DISPLAY_FORMAT_CVMODEUNDERSCAN = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_CVMODEUNDERSCAN}
-const ADL_DISPLAY_FORMAT_FORCECONNECT_SUPPORTED = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCECONNECT_SUPPORTED}
-const ADL_DISPLAY_FORMAT_RESTRICT_FORMAT_SELECTION = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_RESTRICT_FORMAT_SELECTION}
-const ADL_DISPLAY_FORMAT_SETASPECRATIO = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_SETASPECRATIO}
-const ADL_DISPLAY_FORMAT_FORCEMODES = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_FORCEMODES}
-const ADL_DISPLAY_FORMAT_LCDRTCCOEFF = $00000040;
-{$EXTERNALSYM ADL_DISPLAY_FORMAT_LCDRTCCOEFF}
-// @}
-
-/// Defines used by OD5
-const ADL_PM_PARAM_DONT_CHANGE = 0;
-{$EXTERNALSYM ADL_PM_PARAM_DONT_CHANGE}
-
-/// The following defines Bus types
-// @{
-const ADL_BUSTYPE_PCI = 0; (* PCI bus *)
-{$EXTERNALSYM ADL_BUSTYPE_PCI}
-const ADL_BUSTYPE_AGP = 1; (* AGP bus *)
-{$EXTERNALSYM ADL_BUSTYPE_AGP}
-const ADL_BUSTYPE_PCIE = 2; (* PCI Express bus *)
-{$EXTERNALSYM ADL_BUSTYPE_PCIE}
-const ADL_BUSTYPE_PCIE_GEN2 = 3; (* PCI Express 2nd generation bus *)
-{$EXTERNALSYM ADL_BUSTYPE_PCIE_GEN2}
-const ADL_BUSTYPE_PCIE_GEN3 = 4; (* PCI Express 3rd generation bus *)
-{$EXTERNALSYM ADL_BUSTYPE_PCIE_GEN3}
-// @}
-
-/// \defgroup define_ws_caps Workstation Capabilities
-/// Workstation values
-// @{
-
-/// This value indicates that the workstation card supports active stereo though stereo output connector
-const ADL_STEREO_SUPPORTED = (1 shl 2);
-{$EXTERNALSYM ADL_STEREO_SUPPORTED}
-/// This value indicates that the workstation card supports active stereo via "blue-line"
-const ADL_STEREO_BLUE_LINE = (1 shl 3);
-{$EXTERNALSYM ADL_STEREO_BLUE_LINE}
-/// This value is used to turn off stereo mode.
-const ADL_STEREO_OFF = 0;
-{$EXTERNALSYM ADL_STEREO_OFF}
-/// This value indicates that the workstation card supports active stereo. This is also used to set the stereo mode to active though the stereo output connector
-const ADL_STEREO_ACTIVE = (1 shl 1);
-{$EXTERNALSYM ADL_STEREO_ACTIVE}
-/// This value indicates that the workstation card supports auto-stereo monitors with horizontal interleave. This is also used to set the stereo mode to use the auto-stereo monitor with horizontal interleave
-const ADL_STEREO_AUTO_HORIZONTAL = (1 shl 30);
-{$EXTERNALSYM ADL_STEREO_AUTO_HORIZONTAL}
-/// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
-const ADL_STEREO_AUTO_VERTICAL = (1 shl 31);
-{$EXTERNALSYM ADL_STEREO_AUTO_VERTICAL}
-/// This value indicates that the workstation card supports passive stereo, ie. non stereo sync
-const ADL_STEREO_PASSIVE = (1 shl 6);
-{$EXTERNALSYM ADL_STEREO_PASSIVE}
-/// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
-const ADL_STEREO_PASSIVE_HORIZ = (1 shl 7);
-{$EXTERNALSYM ADL_STEREO_PASSIVE_HORIZ}
-/// This value indicates that the workstation card supports auto-stereo monitors with vertical interleave. This is also used to set the stereo mode to use the auto-stereo monitor with vertical interleave
-const ADL_STEREO_PASSIVE_VERT = (1 shl 8);
-{$EXTERNALSYM ADL_STEREO_PASSIVE_VERT}
-/// This value indicates that the workstation card supports auto-stereo monitors with Samsung.
-const ADL_STEREO_AUTO_SAMSUNG = (1 shl 11);
-{$EXTERNALSYM ADL_STEREO_AUTO_SAMSUNG}
-/// This value indicates that the workstation card supports auto-stereo monitors with Tridility.
-const ADL_STEREO_AUTO_TSL = (1 shl 12);
-{$EXTERNALSYM ADL_STEREO_AUTO_TSL}
-/// This value indicates that the workstation card supports DeepBitDepth (10 bpp)
-const ADL_DEEPBITDEPTH_10BPP_SUPPORTED = (1 shl 5);
-{$EXTERNALSYM ADL_DEEPBITDEPTH_10BPP_SUPPORTED}
-
-/// This value indicates that the workstation supports 8-Bit Grayscale
-const ADL_8BIT_GREYSCALE_SUPPORTED = (1 shl 9);
-{$EXTERNALSYM ADL_8BIT_GREYSCALE_SUPPORTED}
-/// This value indicates that the workstation supports CUSTOM TIMING
-const ADL_CUSTOM_TIMING_SUPPORTED = (1 shl 10);
-{$EXTERNALSYM ADL_CUSTOM_TIMING_SUPPORTED}
-
-/// Load balancing is supported.
-const ADL_WORKSTATION_LOADBALANCING_SUPPORTED = $00000001;
-{$EXTERNALSYM ADL_WORKSTATION_LOADBALANCING_SUPPORTED}
-/// Load balancing is available.
-const ADL_WORKSTATION_LOADBALANCING_AVAILABLE = $00000002;
-{$EXTERNALSYM ADL_WORKSTATION_LOADBALANCING_AVAILABLE}
-
-/// Load balancing is disabled.
-const ADL_WORKSTATION_LOADBALANCING_DISABLED = $00000000;
-{$EXTERNALSYM ADL_WORKSTATION_LOADBALANCING_DISABLED}
-/// Load balancing is Enabled.
-const ADL_WORKSTATION_LOADBALANCING_ENABLED = $00000001;
-{$EXTERNALSYM ADL_WORKSTATION_LOADBALANCING_ENABLED}
-
-
-
-// @}
-
-/// \defgroup define_adapterspeed speed setting from the adapter
-// @{
-const ADL_CONTEXT_SPEED_UNFORCED = 0; (* default asic running speed *)
-{$EXTERNALSYM ADL_CONTEXT_SPEED_UNFORCED}
-const ADL_CONTEXT_SPEED_FORCEHIGH = 1; (* asic running speed is forced to high *)
-{$EXTERNALSYM ADL_CONTEXT_SPEED_FORCEHIGH}
-const ADL_CONTEXT_SPEED_FORCELOW = 2; (* asic running speed is forced to low *)
-{$EXTERNALSYM ADL_CONTEXT_SPEED_FORCELOW}
-
-const ADL_ADAPTER_SPEEDCAPS_SUPPORTED = (1 shl 0); (* change asic running speed setting is supported *)
-{$EXTERNALSYM ADL_ADAPTER_SPEEDCAPS_SUPPORTED}
-// @}
-
-/// \defgroup define_glsync Genlock related values
-/// GL-Sync port types (unique values)
-// @{
-/// Unknown port of GL-Sync module
-const ADL_GLSYNC_PORT_UNKNOWN = 0;
-{$EXTERNALSYM ADL_GLSYNC_PORT_UNKNOWN}
-/// BNC port of of GL-Sync module
-const ADL_GLSYNC_PORT_BNC = 1;
-{$EXTERNALSYM ADL_GLSYNC_PORT_BNC}
-/// RJ45(1) port of of GL-Sync module
-const ADL_GLSYNC_PORT_RJ45PORT1 = 2;
-{$EXTERNALSYM ADL_GLSYNC_PORT_RJ45PORT1}
-/// RJ45(2) port of of GL-Sync module
-const ADL_GLSYNC_PORT_RJ45PORT2 = 3;
-{$EXTERNALSYM ADL_GLSYNC_PORT_RJ45PORT2}
-
-// GL-Sync Genlock settings mask (bit-vector)
-
-/// None of the ADLGLSyncGenlockConfig members are valid
-const ADL_GLSYNC_CONFIGMASK_NONE = 0;
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_NONE}
-/// The ADLGLSyncGenlockConfig.lSignalSource member is valid
-const ADL_GLSYNC_CONFIGMASK_SIGNALSOURCE = (1 shl 0);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_SIGNALSOURCE}
-/// The ADLGLSyncGenlockConfig.iSyncField member is valid
-const ADL_GLSYNC_CONFIGMASK_SYNCFIELD = (1 shl 1);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_SYNCFIELD}
-/// The ADLGLSyncGenlockConfig.iSampleRate member is valid
-const ADL_GLSYNC_CONFIGMASK_SAMPLERATE = (1 shl 2);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_SAMPLERATE}
-/// The ADLGLSyncGenlockConfig.lSyncDelay member is valid
-const ADL_GLSYNC_CONFIGMASK_SYNCDELAY = (1 shl 3);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_SYNCDELAY}
-/// The ADLGLSyncGenlockConfig.iTriggerEdge member is valid
-const ADL_GLSYNC_CONFIGMASK_TRIGGEREDGE = (1 shl 4);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_TRIGGEREDGE}
-/// The ADLGLSyncGenlockConfig.iScanRateCoeff member is valid
-const ADL_GLSYNC_CONFIGMASK_SCANRATECOEFF = (1 shl 5);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_SCANRATECOEFF}
-/// The ADLGLSyncGenlockConfig.lFramelockCntlVector member is valid
-const ADL_GLSYNC_CONFIGMASK_FRAMELOCKCNTL = (1 shl 6);
-{$EXTERNALSYM ADL_GLSYNC_CONFIGMASK_FRAMELOCKCNTL}
-
-
-// GL-Sync Framelock control mask (bit-vector)
-
-/// Framelock is disabled
-const ADL_GLSYNC_FRAMELOCKCNTL_NONE = 0;
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_NONE}
-/// Framelock is enabled
-const ADL_GLSYNC_FRAMELOCKCNTL_ENABLE = ( 1 shl 0);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_ENABLE}
-
-const ADL_GLSYNC_FRAMELOCKCNTL_DISABLE = ( 1 shl 1);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_DISABLE}
-const ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_RESET = ( 1 shl 2);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_RESET}
-const ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_ACK = ( 1 shl 3);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_SWAP_COUNTER_ACK}
-const ADL_GLSYNC_FRAMELOCKCNTL_VERSION_KMD = (1 shl 4);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_VERSION_KMD}
-
-const ADL_GLSYNC_FRAMELOCKCNTL_STATE_ENABLE = ( 1 shl 0);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_STATE_ENABLE}
-const ADL_GLSYNC_FRAMELOCKCNTL_STATE_KMD = (1 shl 4);
-{$EXTERNALSYM ADL_GLSYNC_FRAMELOCKCNTL_STATE_KMD}
-
-// GL-Sync Framelock counters mask (bit-vector)
-const ADL_GLSYNC_COUNTER_SWAP = ( 1 shl 0 );
-{$EXTERNALSYM ADL_GLSYNC_COUNTER_SWAP}
-
-// GL-Sync Signal Sources (unique values)
-
-/// GL-Sync signal source is undefined
-const ADL_GLSYNC_SIGNALSOURCE_UNDEFINED = $00000100;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALSOURCE_UNDEFINED}
-/// GL-Sync signal source is Free Run
-const ADL_GLSYNC_SIGNALSOURCE_FREERUN = $00000101;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALSOURCE_FREERUN}
-/// GL-Sync signal source is the BNC GL-Sync port
-const ADL_GLSYNC_SIGNALSOURCE_BNCPORT = $00000102;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALSOURCE_BNCPORT}
-/// GL-Sync signal source is the RJ45(1) GL-Sync port
-const ADL_GLSYNC_SIGNALSOURCE_RJ45PORT1 = $00000103;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALSOURCE_RJ45PORT1}
-/// GL-Sync signal source is the RJ45(2) GL-Sync port
-const ADL_GLSYNC_SIGNALSOURCE_RJ45PORT2 = $00000104;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALSOURCE_RJ45PORT2}
-
-
-// GL-Sync Signal Types (unique values)
-
-/// GL-Sync signal type is unknown
-const ADL_GLSYNC_SIGNALTYPE_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_UNDEFINED}
-/// GL-Sync signal type is 480I
-const ADL_GLSYNC_SIGNALTYPE_480I = 1;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_480I}
-/// GL-Sync signal type is 576I
-const ADL_GLSYNC_SIGNALTYPE_576I = 2;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_576I}
-/// GL-Sync signal type is 480P
-const ADL_GLSYNC_SIGNALTYPE_480P = 3;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_480P}
-/// GL-Sync signal type is 576P
-const ADL_GLSYNC_SIGNALTYPE_576P = 4;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_576P}
-/// GL-Sync signal type is 720P
-const ADL_GLSYNC_SIGNALTYPE_720P = 5;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_720P}
-/// GL-Sync signal type is 1080P
-const ADL_GLSYNC_SIGNALTYPE_1080P = 6;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_1080P}
-/// GL-Sync signal type is 1080I
-const ADL_GLSYNC_SIGNALTYPE_1080I = 7;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_1080I}
-/// GL-Sync signal type is SDI
-const ADL_GLSYNC_SIGNALTYPE_SDI = 8;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_SDI}
-/// GL-Sync signal type is TTL
-const ADL_GLSYNC_SIGNALTYPE_TTL = 9;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_TTL}
-/// GL_Sync signal type is Analog
-const ADL_GLSYNC_SIGNALTYPE_ANALOG = 10;
-{$EXTERNALSYM ADL_GLSYNC_SIGNALTYPE_ANALOG}
-
-// GL-Sync Sync Field options (unique values)
-
-///GL-Sync sync field option is undefined
-const ADL_GLSYNC_SYNCFIELD_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_SYNCFIELD_UNDEFINED}
-///GL-Sync sync field option is Sync to Field 1 (used for Interlaced signal types)
-const ADL_GLSYNC_SYNCFIELD_BOTH = 1;
-{$EXTERNALSYM ADL_GLSYNC_SYNCFIELD_BOTH}
-///GL-Sync sync field option is Sync to Both fields (used for Interlaced signal types)
-const ADL_GLSYNC_SYNCFIELD_1 = 2;
-{$EXTERNALSYM ADL_GLSYNC_SYNCFIELD_1}
-
-
-// GL-Sync trigger edge options (unique values)
-
-/// GL-Sync trigger edge is undefined
-const ADL_GLSYNC_TRIGGEREDGE_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_TRIGGEREDGE_UNDEFINED}
-/// GL-Sync trigger edge is the rising edge
-const ADL_GLSYNC_TRIGGEREDGE_RISING = 1;
-{$EXTERNALSYM ADL_GLSYNC_TRIGGEREDGE_RISING}
-/// GL-Sync trigger edge is the falling edge
-const ADL_GLSYNC_TRIGGEREDGE_FALLING = 2;
-{$EXTERNALSYM ADL_GLSYNC_TRIGGEREDGE_FALLING}
-/// GL-Sync trigger edge is both the rising and the falling edge
-const ADL_GLSYNC_TRIGGEREDGE_BOTH = 3;
-{$EXTERNALSYM ADL_GLSYNC_TRIGGEREDGE_BOTH}
-
-
-// GL-Sync scan rate coefficient/multiplier options (unique values)
-
-/// GL-Sync scan rate coefficient/multiplier is undefined
-const ADL_GLSYNC_SCANRATECOEFF_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_UNDEFINED}
-/// GL-Sync scan rate coefficient/multiplier is 5
-const ADL_GLSYNC_SCANRATECOEFF_x5 = 1;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x5}
-/// GL-Sync scan rate coefficient/multiplier is 4
-const ADL_GLSYNC_SCANRATECOEFF_x4 = 2;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x4}
-/// GL-Sync scan rate coefficient/multiplier is 3
-const ADL_GLSYNC_SCANRATECOEFF_x3 = 3;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x3}
-/// GL-Sync scan rate coefficient/multiplier is 5:2 (SMPTE)
-const ADL_GLSYNC_SCANRATECOEFF_x5_DIV_2 = 4;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x5_DIV_2}
-/// GL-Sync scan rate coefficient/multiplier is 2
-const ADL_GLSYNC_SCANRATECOEFF_x2 = 5;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x2}
-/// GL-Sync scan rate coefficient/multiplier is 3 : 2
-const ADL_GLSYNC_SCANRATECOEFF_x3_DIV_2 = 6;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x3_DIV_2}
-/// GL-Sync scan rate coefficient/multiplier is 5 : 4
-const ADL_GLSYNC_SCANRATECOEFF_x5_DIV_4 = 7;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x5_DIV_4}
-/// GL-Sync scan rate coefficient/multiplier is 1 (default)
-const ADL_GLSYNC_SCANRATECOEFF_x1 = 8;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x1}
-/// GL-Sync scan rate coefficient/multiplier is 4 : 5
-const ADL_GLSYNC_SCANRATECOEFF_x4_DIV_5 = 9;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x4_DIV_5}
-/// GL-Sync scan rate coefficient/multiplier is 2 : 3
-const ADL_GLSYNC_SCANRATECOEFF_x2_DIV_3 = 10;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x2_DIV_3}
-/// GL-Sync scan rate coefficient/multiplier is 1 : 2
-const ADL_GLSYNC_SCANRATECOEFF_x1_DIV_2 = 11;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x1_DIV_2}
-/// GL-Sync scan rate coefficient/multiplier is 2 : 5 (SMPTE)
-const ADL_GLSYNC_SCANRATECOEFF_x2_DIV_5 = 12;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x2_DIV_5}
-/// GL-Sync scan rate coefficient/multiplier is 1 : 3
-const ADL_GLSYNC_SCANRATECOEFF_x1_DIV_3 = 13;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x1_DIV_3}
-/// GL-Sync scan rate coefficient/multiplier is 1 : 4
-const ADL_GLSYNC_SCANRATECOEFF_x1_DIV_4 = 14;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x1_DIV_4}
-/// GL-Sync scan rate coefficient/multiplier is 1 : 5
-const ADL_GLSYNC_SCANRATECOEFF_x1_DIV_5 = 15;
-{$EXTERNALSYM ADL_GLSYNC_SCANRATECOEFF_x1_DIV_5}
-
-
-// GL-Sync port (signal presence) states (unique values)
-
-/// GL-Sync port state is undefined
-const ADL_GLSYNC_PORTSTATE_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_PORTSTATE_UNDEFINED}
-/// GL-Sync port is not connected
-const ADL_GLSYNC_PORTSTATE_NOCABLE = 1;
-{$EXTERNALSYM ADL_GLSYNC_PORTSTATE_NOCABLE}
-/// GL-Sync port is Idle
-const ADL_GLSYNC_PORTSTATE_IDLE = 2;
-{$EXTERNALSYM ADL_GLSYNC_PORTSTATE_IDLE}
-/// GL-Sync port has an Input signal
-const ADL_GLSYNC_PORTSTATE_INPUT = 3;
-{$EXTERNALSYM ADL_GLSYNC_PORTSTATE_INPUT}
-/// GL-Sync port is Output
-const ADL_GLSYNC_PORTSTATE_OUTPUT = 4;
-{$EXTERNALSYM ADL_GLSYNC_PORTSTATE_OUTPUT}
-
-
-// GL-Sync LED types (used index within ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array) (unique values)
-
-/// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the one LED of the BNC port
-const ADL_GLSYNC_LEDTYPE_BNC = 0;
-{$EXTERNALSYM ADL_GLSYNC_LEDTYPE_BNC}
-/// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the Left LED of the RJ45(1) or RJ45(2) port
-const ADL_GLSYNC_LEDTYPE_RJ45_LEFT = 0;
-{$EXTERNALSYM ADL_GLSYNC_LEDTYPE_RJ45_LEFT}
-/// Index into the ADL_Workstation_GLSyncPortState_Get returned ppGlSyncLEDs array for the Right LED of the RJ45(1) or RJ45(2) port
-const ADL_GLSYNC_LEDTYPE_RJ45_RIGHT = 1;
-{$EXTERNALSYM ADL_GLSYNC_LEDTYPE_RJ45_RIGHT}
-
-
-// GL-Sync LED colors (unique values)
-
-/// GL-Sync LED undefined color
-const ADL_GLSYNC_LEDCOLOR_UNDEFINED = 0;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_UNDEFINED}
-/// GL-Sync LED is unlit
-const ADL_GLSYNC_LEDCOLOR_NOLIGHT = 1;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_NOLIGHT}
-/// GL-Sync LED is yellow
-const ADL_GLSYNC_LEDCOLOR_YELLOW = 2;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_YELLOW}
-/// GL-Sync LED is red
-const ADL_GLSYNC_LEDCOLOR_RED = 3;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_RED}
-/// GL-Sync LED is green
-const ADL_GLSYNC_LEDCOLOR_GREEN = 4;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_GREEN}
-/// GL-Sync LED is flashing green
-const ADL_GLSYNC_LEDCOLOR_FLASH_GREEN = 5;
-{$EXTERNALSYM ADL_GLSYNC_LEDCOLOR_FLASH_GREEN}
-
-
-// GL-Sync Port Control (refers one GL-Sync Port) (unique values)
-
-/// Used to configure the RJ54(1) or RJ42(2) port of GL-Sync is as Idle
-const ADL_GLSYNC_PORTCNTL_NONE = $00000000;
-{$EXTERNALSYM ADL_GLSYNC_PORTCNTL_NONE}
-/// Used to configure the RJ54(1) or RJ42(2) port of GL-Sync is as Output
-const ADL_GLSYNC_PORTCNTL_OUTPUT = $00000001;
-{$EXTERNALSYM ADL_GLSYNC_PORTCNTL_OUTPUT}
-
-
-// GL-Sync Mode Control (refers one Display/Controller) (bitfields)
-
-/// Used to configure the display to use internal timing (not genlocked)
-const ADL_GLSYNC_MODECNTL_NONE = $00000000;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_NONE}
-/// Bitfield used to configure the display as genlocked (either as Timing Client or as Timing Server)
-const ADL_GLSYNC_MODECNTL_GENLOCK = $00000001;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_GENLOCK}
-/// Bitfield used to configure the display as Timing Server
-const ADL_GLSYNC_MODECNTL_TIMINGSERVER = $00000002;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_TIMINGSERVER}
-
-// GL-Sync Mode Status
-/// Display is currently not genlocked
-const ADL_GLSYNC_MODECNTL_STATUS_NONE = $00000000;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_STATUS_NONE}
-/// Display is currently genlocked
-const ADL_GLSYNC_MODECNTL_STATUS_GENLOCK = $00000001;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_STATUS_GENLOCK}
-/// Display requires a mode switch
-const ADL_GLSYNC_MODECNTL_STATUS_SETMODE_REQUIRED = $00000002;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_STATUS_SETMODE_REQUIRED}
-/// Display is capable of being genlocked
-const ADL_GLSYNC_MODECNTL_STATUS_GENLOCK_ALLOWED = $00000004;
-{$EXTERNALSYM ADL_GLSYNC_MODECNTL_STATUS_GENLOCK_ALLOWED}
-
-const ADL_MAX_GLSYNC_PORTS = 8;
-{$EXTERNALSYM ADL_MAX_GLSYNC_PORTS}
-const ADL_MAX_GLSYNC_PORT_LEDS = 8;
-{$EXTERNALSYM ADL_MAX_GLSYNC_PORT_LEDS}
-
-// @}
-
-/// \defgroup define_crossfirestate CrossfireX state of a particular adapter CrossfireX combination
-// @{
-const ADL_XFIREX_STATE_NOINTERCONNECT = ( 1 shl 0 ); (* Dongle / cable is missing *)
-{$EXTERNALSYM ADL_XFIREX_STATE_NOINTERCONNECT}
-const ADL_XFIREX_STATE_DOWNGRADEPIPES = ( 1 shl 1 ); (* CrossfireX can be enabled if pipes are downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DOWNGRADEPIPES}
-const ADL_XFIREX_STATE_DOWNGRADEMEM = ( 1 shl 2 ); (* CrossfireX cannot be enabled unless mem downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DOWNGRADEMEM}
-const ADL_XFIREX_STATE_REVERSERECOMMENDED = ( 1 shl 3 ); (* Card reversal recommended, CrossfireX cannot be enabled. *)
-{$EXTERNALSYM ADL_XFIREX_STATE_REVERSERECOMMENDED}
-const ADL_XFIREX_STATE_3DACTIVE = ( 1 shl 4 ); (* 3D client is active - CrossfireX cannot be safely enabled *)
-{$EXTERNALSYM ADL_XFIREX_STATE_3DACTIVE}
-const ADL_XFIREX_STATE_MASTERONSLAVE = ( 1 shl 5 ); (* Dongle is OK but master is on slave *)
-{$EXTERNALSYM ADL_XFIREX_STATE_MASTERONSLAVE}
-const ADL_XFIREX_STATE_NODISPLAYCONNECT = ( 1 shl 6 ); (* No (valid) display connected to master card. *)
-{$EXTERNALSYM ADL_XFIREX_STATE_NODISPLAYCONNECT}
-const ADL_XFIREX_STATE_NOPRIMARYVIEW = ( 1 shl 7 ); (* CrossfireX is enabled but master is not current primary device *)
-{$EXTERNALSYM ADL_XFIREX_STATE_NOPRIMARYVIEW}
-const ADL_XFIREX_STATE_DOWNGRADEVISMEM = ( 1 shl 8 ); (* CrossfireX cannot be enabled unless visible mem downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DOWNGRADEVISMEM}
-const ADL_XFIREX_STATE_LESSTHAN8LANE_MASTER = ( 1 shl 9 ); (* CrossfireX can be enabled however performance not optimal due to <8 lanes *)
-{$EXTERNALSYM ADL_XFIREX_STATE_LESSTHAN8LANE_MASTER}
-const ADL_XFIREX_STATE_LESSTHAN8LANE_SLAVE = ( 1 shl 10 ); (* CrossfireX can be enabled however performance not optimal due to <8 lanes *)
-{$EXTERNALSYM ADL_XFIREX_STATE_LESSTHAN8LANE_SLAVE}
-const ADL_XFIREX_STATE_PEERTOPEERFAILED = ( 1 shl 11 ); (* CrossfireX cannot be enabled due to failed peer to peer test *)
-{$EXTERNALSYM ADL_XFIREX_STATE_PEERTOPEERFAILED}
-const ADL_XFIREX_STATE_MEMISDOWNGRADED = ( 1 shl 16 ); (* Notification that memory is currently downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_MEMISDOWNGRADED}
-const ADL_XFIREX_STATE_PIPESDOWNGRADED = ( 1 shl 17 ); (* Notification that pipes are currently downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_PIPESDOWNGRADED}
-const ADL_XFIREX_STATE_XFIREXACTIVE = ( 1 shl 18 ); (* CrossfireX is enabled on current device *)
-{$EXTERNALSYM ADL_XFIREX_STATE_XFIREXACTIVE}
-const ADL_XFIREX_STATE_VISMEMISDOWNGRADED = ( 1 shl 19 ); (* Notification that visible FB memory is currently downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_VISMEMISDOWNGRADED}
-const ADL_XFIREX_STATE_INVALIDINTERCONNECTION = ( 1 shl 20 ); (* Cannot support current inter-connection configuration *)
-{$EXTERNALSYM ADL_XFIREX_STATE_INVALIDINTERCONNECTION}
-const ADL_XFIREX_STATE_NONP2PMODE = ( 1 shl 21 ); (* CrossfireX will only work with clients supporting non P2P mode *)
-{$EXTERNALSYM ADL_XFIREX_STATE_NONP2PMODE}
-const ADL_XFIREX_STATE_DOWNGRADEMEMBANKS = ( 1 shl 22 ); (* CrossfireX cannot be enabled unless memory banks downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DOWNGRADEMEMBANKS}
-const ADL_XFIREX_STATE_MEMBANKSDOWNGRADED = ( 1 shl 23 ); (* Notification that memory banks are currently downgraded *)
-{$EXTERNALSYM ADL_XFIREX_STATE_MEMBANKSDOWNGRADED}
-const ADL_XFIREX_STATE_DUALDISPLAYSALLOWED = ( 1 shl 24 ); (* Extended desktop or clone mode is allowed. *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DUALDISPLAYSALLOWED}
-const ADL_XFIREX_STATE_P2P_APERTURE_MAPPING = ( 1 shl 25 ); (* P2P mapping was through peer aperture *)
-{$EXTERNALSYM ADL_XFIREX_STATE_P2P_APERTURE_MAPPING}
-const ADL_XFIREX_STATE_P2PFLUSH_REQUIRED = ADL_XFIREX_STATE_P2P_APERTURE_MAPPING; (* For back compatible *)
-{$EXTERNALSYM ADL_XFIREX_STATE_P2PFLUSH_REQUIRED}
-const ADL_XFIREX_STATE_XSP_CONNECTED = ( 1 shl 26 ); (* There is CrossfireX side port connection between GPUs *)
-{$EXTERNALSYM ADL_XFIREX_STATE_XSP_CONNECTED}
-const ADL_XFIREX_STATE_ENABLE_CF_REBOOT_REQUIRED = ( 1 shl 27 ); (* System needs a reboot bofore enable CrossfireX *)
-{$EXTERNALSYM ADL_XFIREX_STATE_ENABLE_CF_REBOOT_REQUIRED}
-const ADL_XFIREX_STATE_DISABLE_CF_REBOOT_REQUIRED = ( 1 shl 28 ); (* System needs a reboot after disable CrossfireX *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DISABLE_CF_REBOOT_REQUIRED}
-const ADL_XFIREX_STATE_DRV_HANDLE_DOWNGRADE_KEY = ( 1 shl 29 ); (* Indicate base driver handles the downgrade key updating *)
-{$EXTERNALSYM ADL_XFIREX_STATE_DRV_HANDLE_DOWNGRADE_KEY}
-const ADL_XFIREX_STATE_CF_RECONFIG_REQUIRED = ( 1 shl 30 ); (* CrossfireX need to be reconfigured by CCC because of a LDA chain broken *)
-{$EXTERNALSYM ADL_XFIREX_STATE_CF_RECONFIG_REQUIRED}
-const ADL_XFIREX_STATE_ERRORGETTINGSTATUS = ( 1 shl 31 ); (* Could not obtain current status *)
-{$EXTERNALSYM ADL_XFIREX_STATE_ERRORGETTINGSTATUS}
-// @}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_ADJUSTMENT_PIXELFORMAT adjustment values
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-/// \defgroup define_pixel_formats Pixel Formats values
-/// This group defines the various Pixel Formats that a particular digital display can support. \n
-/// Since a display can support multiple formats, these values can be bit-or'ed to indicate the various formats \n
-// @{
-const ADL_DISPLAY_PIXELFORMAT_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_UNKNOWN}
-const ADL_DISPLAY_PIXELFORMAT_RGB = (1 shl 0);
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_RGB}
-const ADL_DISPLAY_PIXELFORMAT_YCRCB444 = (1 shl 1); //Limited range
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_YCRCB444}
-const ADL_DISPLAY_PIXELFORMAT_YCRCB422 = (1 shl 2); //Limited range
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_YCRCB422}
-const ADL_DISPLAY_PIXELFORMAT_RGB_LIMITED_RANGE = (1 shl 3);
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_RGB_LIMITED_RANGE}
-const ADL_DISPLAY_PIXELFORMAT_RGB_FULL_RANGE = ADL_DISPLAY_PIXELFORMAT_RGB; //Full range
-{$EXTERNALSYM ADL_DISPLAY_PIXELFORMAT_RGB_FULL_RANGE}
-// @}
-
-/// \defgroup define_contype Connector Type Values
-/// ADLDisplayConfig.ulConnectorType defines
-// @{
-const ADL_DL_DISPLAYCONFIG_CONTYPE_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_UNKNOWN}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_JP = 1;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_JP}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_CV_JPN = 2;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_CV_JPN}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NA = 3;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NA}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_NA = 4;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_CV_NONI2C_NA}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_VGA = 5;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_VGA}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_D = 6;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_D}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_I = 7;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_DVI_I}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_A = 8;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_A}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_B = 9;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_HDMI_TYPE_B}
-const ADL_DL_DISPLAYCONFIG_CONTYPE_DISPLAYPORT = 10;
-{$EXTERNALSYM ADL_DL_DISPLAYCONFIG_CONTYPE_DISPLAYPORT}
-// @}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_DISPLAYINFO_ Definitions
-// for ADLDisplayInfo.iDisplayInfoMask and ADLDisplayInfo.iDisplayInfoValue
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-/// \defgroup define_displayinfomask Display Info Mask Values
-// @{
-const ADL_DISPLAY_DISPLAYINFO_DISPLAYCONNECTED = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_DISPLAYCONNECTED}
-const ADL_DISPLAY_DISPLAYINFO_DISPLAYMAPPED = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_DISPLAYMAPPED}
-const ADL_DISPLAY_DISPLAYINFO_NONLOCAL = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_NONLOCAL}
-const ADL_DISPLAY_DISPLAYINFO_FORCIBLESUPPORTED = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_FORCIBLESUPPORTED}
-const ADL_DISPLAY_DISPLAYINFO_GENLOCKSUPPORTED = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_GENLOCKSUPPORTED}
-const ADL_DISPLAY_DISPLAYINFO_MULTIVPU_SUPPORTED = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MULTIVPU_SUPPORTED}
-const ADL_DISPLAY_DISPLAYINFO_LDA_DISPLAY = $00000040;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_LDA_DISPLAY}
-const ADL_DISPLAY_DISPLAYINFO_MODETIMING_OVERRIDESSUPPORTED = $00000080;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MODETIMING_OVERRIDESSUPPORTED}
-
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_SINGLE = $00000100;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_SINGLE}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_CLONE = $00000200;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_CLONE}
-
-/// Legacy support for XP
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2VSTRETCH = $00000400;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2VSTRETCH}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2HSTRETCH = $00000800;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_2HSTRETCH}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_EXTENDED = $00001000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_EXTENDED}
-
-/// More support manners
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCH1GPU = $00010000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCH1GPU}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCHNGPU = $00020000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_NSTRETCHNGPU}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED2 = $00040000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED2}
-const ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED3 = $00080000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_MANNER_SUPPORTED_RESERVED3}
-
-/// Projector display type
-const ADL_DISPLAY_DISPLAYINFO_SHOWTYPE_PROJECTOR = $00100000;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYINFO_SHOWTYPE_PROJECTOR}
-
-// @}
-
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_ADAPTER_DISPLAY_MANNER_SUPPORTED_ Definitions
-// for ADLAdapterDisplayCap of ADL_Adapter_Display_Cap()
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-/// \defgroup define_adaptermanner Adapter Manner Support Values
-// @{
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NOTACTIVE = $00000001;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NOTACTIVE}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_SINGLE = $00000002;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_SINGLE}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_CLONE = $00000004;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_CLONE}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCH1GPU = $00000008;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCH1GPU}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCHNGPU = $00000010;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_NSTRETCHNGPU}
-
-/// Legacy support for XP
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2VSTRETCH = $00000020;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2VSTRETCH}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2HSTRETCH = $00000040;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_2HSTRETCH}
-const ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_EXTENDED = $00000080;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_MANNER_SUPPORTED_EXTENDED}
-
-const ADL_ADAPTER_DISPLAYCAP_PREFERDISPLAY_SUPPORTED = $00000100;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_PREFERDISPLAY_SUPPORTED}
-const ADL_ADAPTER_DISPLAYCAP_BEZEL_SUPPORTED = $00000200;
-{$EXTERNALSYM ADL_ADAPTER_DISPLAYCAP_BEZEL_SUPPORTED}
-
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_DISPLAYMAP_MANNER_ Definitions
-// for ADLDisplayMap.iDisplayMapMask and ADLDisplayMap.iDisplayMapValue
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-const ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_NOTACTIVE = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_NOTACTIVE}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_SINGLE = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_SINGLE}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_CLONE = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_CLONE}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED1 = $00000010; // Removed NSTRETCH
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_RESERVED1}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_HSTRETCH = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_HSTRETCH}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_VSTRETCH = $00000040;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_VSTRETCH}
-const ADL_DISPLAY_DISPLAYMAP_MANNER_VLD = $00000080;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_MANNER_VLD}
-
-// @}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_DISPLAYMAP_OPTION_ Definitions
-// for iOption in function ADL_Display_DisplayMapConfig_Get
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-const ADL_DISPLAY_DISPLAYMAP_OPTION_GPUINFO = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYMAP_OPTION_GPUINFO}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_DISPLAYTARGET_ Definitions
-// for ADLDisplayTarget.iDisplayTargetMask and ADLDisplayTarget.iDisplayTargetValue
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-const ADL_DISPLAY_DISPLAYTARGET_PREFERRED = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_DISPLAYTARGET_PREFERRED}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_POSSIBLEMAPRESULT_VALID Definitions
-// for ADLPossibleMapResult.iPossibleMapResultMask and ADLPossibleMapResult.iPossibleMapResultValue
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-const ADL_DISPLAY_POSSIBLEMAPRESULT_VALID = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_POSSIBLEMAPRESULT_VALID}
-const ADL_DISPLAY_POSSIBLEMAPRESULT_BEZELSUPPORTED = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_POSSIBLEMAPRESULT_BEZELSUPPORTED}
-const ADL_DISPLAY_POSSIBLEMAPRESULT_OVERLAPSUPPORTED = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_POSSIBLEMAPRESULT_OVERLAPSUPPORTED}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_DISPLAY_MODE_ Definitions
-// for ADLMode.iModeMask, ADLMode.iModeValue, and ADLMode.iModeFlag
-// (bit-vector)
-///////////////////////////////////////////////////////////////////////////
-/// \defgroup define_displaymode Display Mode Values
-// @{
-const ADL_DISPLAY_MODE_COLOURFORMAT_565 = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_MODE_COLOURFORMAT_565}
-const ADL_DISPLAY_MODE_COLOURFORMAT_8888 = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_MODE_COLOURFORMAT_8888}
-const ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_000 = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_000}
-const ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_090 = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_090}
-const ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_180 = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_180}
-const ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_270 = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_MODE_ORIENTATION_SUPPORTED_270}
-const ADL_DISPLAY_MODE_REFRESHRATE_ROUNDED = $00000040;
-{$EXTERNALSYM ADL_DISPLAY_MODE_REFRESHRATE_ROUNDED}
-const ADL_DISPLAY_MODE_REFRESHRATE_ONLY = $00000080;
-{$EXTERNALSYM ADL_DISPLAY_MODE_REFRESHRATE_ONLY}
-
-const ADL_DISPLAY_MODE_PROGRESSIVE_FLAG = 0;
-{$EXTERNALSYM ADL_DISPLAY_MODE_PROGRESSIVE_FLAG}
-const ADL_DISPLAY_MODE_INTERLACED_FLAG = 2;
-{$EXTERNALSYM ADL_DISPLAY_MODE_INTERLACED_FLAG}
-// @}
-
-///////////////////////////////////////////////////////////////////////////
-// ADL_OSMODEINFO Definitions
-///////////////////////////////////////////////////////////////////////////
-/// \defgroup define_osmode OS Mode Values
-// @{
-const ADL_OSMODEINFOXPOS_DEFAULT = -640;
-{$EXTERNALSYM ADL_OSMODEINFOXPOS_DEFAULT}
-const ADL_OSMODEINFOYPOS_DEFAULT = 0;
-{$EXTERNALSYM ADL_OSMODEINFOYPOS_DEFAULT}
-const ADL_OSMODEINFOXRES_DEFAULT = 640;
-{$EXTERNALSYM ADL_OSMODEINFOXRES_DEFAULT}
-const ADL_OSMODEINFOYRES_DEFAULT = 480;
-{$EXTERNALSYM ADL_OSMODEINFOYRES_DEFAULT}
-const ADL_OSMODEINFOXRES_DEFAULT800 = 800;
-{$EXTERNALSYM ADL_OSMODEINFOXRES_DEFAULT800}
-const ADL_OSMODEINFOYRES_DEFAULT600 = 600;
-{$EXTERNALSYM ADL_OSMODEINFOYRES_DEFAULT600}
-const ADL_OSMODEINFOREFRESHRATE_DEFAULT = 60;
-{$EXTERNALSYM ADL_OSMODEINFOREFRESHRATE_DEFAULT}
-const ADL_OSMODEINFOCOLOURDEPTH_DEFAULT = 8;
-{$EXTERNALSYM ADL_OSMODEINFOCOLOURDEPTH_DEFAULT}
-const ADL_OSMODEINFOCOLOURDEPTH_DEFAULT16 = 16;
-{$EXTERNALSYM ADL_OSMODEINFOCOLOURDEPTH_DEFAULT16}
-const ADL_OSMODEINFOCOLOURDEPTH_DEFAULT24 = 24;
-{$EXTERNALSYM ADL_OSMODEINFOCOLOURDEPTH_DEFAULT24}
-const ADL_OSMODEINFOCOLOURDEPTH_DEFAULT32 = 32;
-{$EXTERNALSYM ADL_OSMODEINFOCOLOURDEPTH_DEFAULT32}
-const ADL_OSMODEINFOORIENTATION_DEFAULT = 0;
-{$EXTERNALSYM ADL_OSMODEINFOORIENTATION_DEFAULT}
-const ADL_OSMODEINFOORIENTATION_DEFAULT_WIN7 = $FFFFFFFF;
-{$EXTERNALSYM ADL_OSMODEINFOORIENTATION_DEFAULT_WIN7}
-const ADL_OSMODEFLAG_DEFAULT = 0;
-{$EXTERNALSYM ADL_OSMODEFLAG_DEFAULT}
-// @}
-
-
///////////////////////////////////////////////////////////////////////////
// ADLThreadingModel Enumeration
///////////////////////////////////////////////////////////////////////////
-/// \defgroup thread_model
-/// Used with \ref ADL_Main_ControlX2_Create and \ref ADL2_Main_ControlX2_Create to specify how ADL handles API calls when executed by multiple threads concurrently.
-/// \brief Declares ADL threading behavior.
+/// \defgroup thread_model
+/// Used with \ref ADL_Main_ControlX2_Create and \ref ADL2_Main_ControlX2_Create to specify how ADL handles API calls when executed by multiple threads concurrently.
+/// \brief Declares ADL threading behavior.
// @{
-const ADL_THREADING_UNLOCKED = 0; //*!< Default behavior. ADL will not enforce serialization of ADL API executions by multiple threads. Multiple threads will be allowed to enter to ADL at the same time. Note that ADL library is not guaranteed to be thread-safe. Client that calls ADL_Main_Control_Create have to provide its own mechanism for ADL calls serialization. *)
-const ADL_THREADING_LOCKED = 1; //*!< ADL will enforce serialization of ADL API when called by multiple threads. Only single thread will be allowed to enter ADL API at the time. This option makes ADL calls thread-safe. You shouldn't use this option if ADL calls will be executed on Linux on x-server rendering thread. It can cause the application to hung. */
-
type
- ADLThreadingModel = ADL_THREADING_UNLOCKED..ADL_THREADING_LOCKED;
- {$EXTERNALSYM ADLThreadingModel}
-
+ ADLThreadingModel = (
+ ADL_THREADING_UNLOCKED = 0,
+ //; //*!< Default behavior. ADL will not enforce serialization of ADL API executions by multiple threads. Multiple threads will be allowed to enter to ADL at the same time. Note that ADL library is not guaranteed to be thread-safe. Client that calls ADL_Main_Control_Create have to provide its own mechanism for ADL calls serialization. */;
+ ADL_THREADING_LOCKED);
+//*!< ADL will enforce serialization of ADL API when called by multiple threads. Only single thread will be allowed to enter ADL API at the time. This option makes ADL calls thread-safe. You shouldn't use this option if ADL calls will be executed on Linux on x-server rendering thread. It can cause the application to hung. */;
// @}
///////////////////////////////////////////////////////////////////////////
// ADLPurposeCode Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADL_PURPOSECODE_NORMAL = 0;
-const ADL_PURPOSECODE_HIDE_MODE_SWITCH = 0;
-const ADL_PURPOSECODE_MODE_SWITCH = 1;
-const ADL_PURPOSECODE_ATTATCH_DEVICE = 2;
-const ADL_PURPOSECODE_DETACH_DEVICE = 3;
-const ADL_PURPOSECODE_SETPRIMARY_DEVICE = 4;
-const ADL_PURPOSECODE_GDI_ROTATION = 5;
-const ADL_PURPOSECODE_ATI_ROTATION = 6;
-
type
- ADLPurposeCode = ADL_PURPOSECODE_NORMAL..ADL_PURPOSECODE_ATI_ROTATION;
- {$EXTERNALSYM ADLPurposeCode}
-
+ ADLPurposeCode = (
+ ADL_PURPOSECODE_NORMAL = 0,
+ ADL_PURPOSECODE_HIDE_MODE_SWITCH,
+ ADL_PURPOSECODE_MODE_SWITCH,
+ ADL_PURPOSECODE_ATTATCH_DEVICE,
+ ADL_PURPOSECODE_DETACH_DEVICE,
+ ADL_PURPOSECODE_SETPRIMARY_DEVICE,
+ ADL_PURPOSECODE_GDI_ROTATION,
+ ADL_PURPOSECODE_ATI_ROTATION);
///////////////////////////////////////////////////////////////////////////
// ADLAngle Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADL_ANGLE_LANDSCAPE = 0;
-const ADL_ANGLE_ROTATERIGHT = 90;
-const ADL_ANGLE_ROTATE180 = 180;
-const ADL_ANGLE_ROTATELEFT = 270;
-
type
- ADLAngle = ADL_ANGLE_LANDSCAPE..ADL_ANGLE_ROTATELEFT;
- {$EXTERNALSYM ADLAngle}
-
+ ADLAngle = (
+ ADL_ANGLE_LANDSCAPE = 0,
+ ADL_ANGLE_ROTATERIGHT = 90,
+ ADL_ANGLE_ROTATE180 = 180,
+ ADL_ANGLE_ROTATELEFT = 270);
///////////////////////////////////////////////////////////////////////////
// ADLOrientationDataType Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADL_ORIENTATIONTYPE_OSDATATYPE = 0;
-const ADL_ORIENTATIONTYPE_NONOSDATATYPE = 1;
-
type
- ADLOrientationDataType = ADL_ORIENTATIONTYPE_OSDATATYPE..ADL_ORIENTATIONTYPE_NONOSDATATYPE;
- {$EXTERNALSYM ADLOrientationDataType}
-
+ ADLOrientationDataType = (
+ ADL_ORIENTATIONTYPE_OSDATATYPE,
+ ADL_ORIENTATIONTYPE_NONOSDATATYPE);
///////////////////////////////////////////////////////////////////////////
// ADLPanningMode Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADL_PANNINGMODE_NO_PANNING = 0;
-const ADL_PANNINGMODE_AT_LEAST_ONE_NO_PANNING = 1;
-const ADL_PANNINGMODE_ALLOW_PANNING = 2;
-
type
- ADLPanningMode = ADL_PANNINGMODE_NO_PANNING..ADL_PANNINGMODE_ALLOW_PANNING;
- {$EXTERNALSYM ADLPanningMode}
-
+ ADLPanningMode = (
+ ADL_PANNINGMODE_NO_PANNING = 0,
+ ADL_PANNINGMODE_AT_LEAST_ONE_NO_PANNING = 1,
+ ADL_PANNINGMODE_ALLOW_PANNING = 2);
///////////////////////////////////////////////////////////////////////////
// ADLLARGEDESKTOPTYPE Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADL_LARGEDESKTOPTYPE_NORMALDESKTOP = 0;
-const ADL_LARGEDESKTOPTYPE_PSEUDOLARGEDESKTOP = 1;
-const ADL_LARGEDESKTOPTYPE_VERYLARGEDESKTOP = 2;
-
type
- ADLLARGEDESKTOPTYPE = ADL_LARGEDESKTOPTYPE_NORMALDESKTOP..ADL_LARGEDESKTOPTYPE_VERYLARGEDESKTOP;
- {$EXTERNALSYM ADLLARGEDESKTOPTYPE}
-
+ ADLLARGEDESKTOPTYPE = (
+ ADL_LARGEDESKTOPTYPE_NORMALDESKTOP = 0,
+ ADL_LARGEDESKTOPTYPE_PSEUDOLARGEDESKTOP = 1,
+ ADL_LARGEDESKTOPTYPE_VERYLARGEDESKTOP = 2);
///////////////////////////////////////////////////////////////////////////
// ADLPlatform Enumeration
///////////////////////////////////////////////////////////////////////////
-const GRAPHICS_PLATFORM_DESKTOP = 0;
-const GRAPHICS_PLATFORM_MOBILE = 1;
+type
+ ADLPlatForm = (
+ GRAPHICS_PLATFORM_DESKTOP = 0,
+ GRAPHICS_PLATFORM_MOBILE = 1);
+///////////////////////////////////////////////////////////////////////////
+// ADLGraphicCoreGeneration Enumeration
+///////////////////////////////////////////////////////////////////////////
type
- ADLPlatForm = GRAPHICS_PLATFORM_DESKTOP..GRAPHICS_PLATFORM_MOBILE;
- {$EXTERNALSYM ADLPlatForm}
-
+ ADLGraphicCoreGeneration = (
+ ADL_GRAPHIC_CORE_GENERATION_UNDEFINED = 0,
+ ADL_GRAPHIC_CORE_GENERATION_PRE_GCN = 1,
+ ADL_GRAPHIC_CORE_GENERATION_GCN = 2);
+
// Other Definitions for internal use
// Values for ADL_Display_WriteAndReadI2CRev_Get()
-const ADL_I2C_MAJOR_API_REV = $00000001;
-{$EXTERNALSYM ADL_I2C_MAJOR_API_REV}
-const ADL_I2C_MINOR_DEFAULT_API_REV = $00000000;
-{$EXTERNALSYM ADL_I2C_MINOR_DEFAULT_API_REV}
-const ADL_I2C_MINOR_OEM_API_REV = $00000001;
-{$EXTERNALSYM ADL_I2C_MINOR_OEM_API_REV}
-
-// Values for ADL_Display_WriteAndReadI2C()
-const ADL_DL_I2C_LINE_OEM = $00000001;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM}
-const ADL_DL_I2C_LINE_OD_CONTROL = $00000002;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OD_CONTROL}
-const ADL_DL_I2C_LINE_OEM2 = $00000003;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM2}
-const ADL_DL_I2C_LINE_OEM3 = $00000004;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM3}
-const ADL_DL_I2C_LINE_OEM4 = $00000005;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM4}
-const ADL_DL_I2C_LINE_OEM5 = $00000006;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM5}
-const ADL_DL_I2C_LINE_OEM6 = $00000007;
-{$EXTERNALSYM ADL_DL_I2C_LINE_OEM6}
-
-// Max size of I2C data buffer
-const ADL_DL_I2C_MAXDATASIZE = $00000040;
-{$EXTERNALSYM ADL_DL_I2C_MAXDATASIZE}
-const ADL_DL_I2C_MAXWRITEDATASIZE = $0000000C;
-{$EXTERNALSYM ADL_DL_I2C_MAXWRITEDATASIZE}
-const ADL_DL_I2C_MAXADDRESSLENGTH = $00000006;
-{$EXTERNALSYM ADL_DL_I2C_MAXADDRESSLENGTH}
-const ADL_DL_I2C_MAXOFFSETLENGTH = $00000004;
-{$EXTERNALSYM ADL_DL_I2C_MAXOFFSETLENGTH}
-
-
-/// Values for ADLDisplayProperty.iPropertyType
-const ADL_DL_DISPLAYPROPERTY_TYPE_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_TYPE_UNKNOWN}
-const ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE = 1;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE}
-const ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING = 2;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING}
-/// Enables ITC processing for HDMI panels that are capable of the feature
-const ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE = 9;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE}
-
-
-/// Values for ADLDisplayContent.iContentType
-/// Certain HDMI panels that support ITC have support for a feature such that, the display on the panel
-/// can be adjusted to optimize the view of the content being displayed, depending on the type of content.
-const ADL_DL_DISPLAYCONTENT_TYPE_GRAPHICS = 1;
-{$EXTERNALSYM ADL_DL_DISPLAYCONTENT_TYPE_GRAPHICS}
-const ADL_DL_DISPLAYCONTENT_TYPE_PHOTO = 2;
-{$EXTERNALSYM ADL_DL_DISPLAYCONTENT_TYPE_PHOTO}
-const ADL_DL_DISPLAYCONTENT_TYPE_CINEMA = 4;
-{$EXTERNALSYM ADL_DL_DISPLAYCONTENT_TYPE_CINEMA}
-const ADL_DL_DISPLAYCONTENT_TYPE_GAME = 8;
-{$EXTERNALSYM ADL_DL_DISPLAYCONTENT_TYPE_GAME}
-
-
-
-
-
-//values for ADLDisplayProperty.iExpansionMode
-const ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER = 0;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER}
-const ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN = 1;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN}
-const ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO = 2;
-{$EXTERNALSYM ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO}
-
-//values for ADL_Display_DitherState_Get
-const ADL_DL_DISPLAY_DITHER_UNKNOWN = 0;
-{$EXTERNALSYM ADL_DL_DISPLAY_DITHER_UNKNOWN}
-const ADL_DL_DISPLAY_DITHER_DISABLED = 1;
-{$EXTERNALSYM ADL_DL_DISPLAY_DITHER_DISABLED}
-const ADL_DL_DISPLAY_DITHER_ENABLED = 2;
-{$EXTERNALSYM ADL_DL_DISPLAY_DITHER_ENABLED}
-
-/// Display Get Cached EDID flag
-const ADL_MAX_EDIDDATA_SIZE = 256; // number of UCHAR
-{$EXTERNALSYM ADL_MAX_EDIDDATA_SIZE}
-const ADL_MAX_OVERRIDEEDID_SIZE = 512; // number of UCHAR
-{$EXTERNALSYM ADL_MAX_OVERRIDEEDID_SIZE}
-const ADL_MAX_EDID_EXTENSION_BLOCKS = 3;
-{$EXTERNALSYM ADL_MAX_EDID_EXTENSION_BLOCKS}
-
-const ADL_DL_CONTROLLER_OVERLAY_ALPHA = 0;
-{$EXTERNALSYM ADL_DL_CONTROLLER_OVERLAY_ALPHA}
-const ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX = 1;
-{$EXTERNALSYM ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX}
-
-const ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_RESET = $00000000;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_RESET}
-const ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SET = $00000001;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SET}
-const ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SCAN = $00000002;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SCAN}
-
-///\defgroup define_display_packet Display Data Packet Types
-// @{
-const ADL_DL_DISPLAY_DATA_PACKET__TYPE__AVI = $00000001;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__TYPE__AVI}
-const ADL_DL_DISPLAY_DATA_PACKET__TYPE__RESERVED = $00000002;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__TYPE__RESERVED}
-const ADL_DL_DISPLAY_DATA_PACKET__TYPE__VENDORINFO = $00000004;
-{$EXTERNALSYM ADL_DL_DISPLAY_DATA_PACKET__TYPE__VENDORINFO}
-// @}
-
-// matrix types
-const ADL_GAMUT_MATRIX_SD = 1; // SD matrix i.e. BT601
-{$EXTERNALSYM ADL_GAMUT_MATRIX_SD}
-const ADL_GAMUT_MATRIX_HD = 2; // HD matrix i.e. BT709
-{$EXTERNALSYM ADL_GAMUT_MATRIX_HD}
-
-///\defgroup define_clockinfo_flags Clock flags
-/// Used by ADLAdapterODClockInfo.iFlag
-// @{
-const ADL_DL_CLOCKINFO_FLAG_FULLSCREEN3DONLY = $00000001;
-{$EXTERNALSYM ADL_DL_CLOCKINFO_FLAG_FULLSCREEN3DONLY}
-const ADL_DL_CLOCKINFO_FLAG_ALWAYSFULLSCREEN3D = $00000002;
-{$EXTERNALSYM ADL_DL_CLOCKINFO_FLAG_ALWAYSFULLSCREEN3D}
-const ADL_DL_CLOCKINFO_FLAG_VPURECOVERYREDUCED = $00000004;
-{$EXTERNALSYM ADL_DL_CLOCKINFO_FLAG_VPURECOVERYREDUCED}
-const ADL_DL_CLOCKINFO_FLAG_THERMALPROTECTION = $00000008;
-{$EXTERNALSYM ADL_DL_CLOCKINFO_FLAG_THERMALPROTECTION}
-// @}
-
-// Supported GPUs
-// ADL_Display_PowerXpressActiveGPU_Get()
-const ADL_DL_POWERXPRESS_GPU_INTEGRATED = 1;
-{$EXTERNALSYM ADL_DL_POWERXPRESS_GPU_INTEGRATED}
-const ADL_DL_POWERXPRESS_GPU_DISCRETE = 2;
-{$EXTERNALSYM ADL_DL_POWERXPRESS_GPU_DISCRETE}
-
-// Possible values for lpOperationResult
-// ADL_Display_PowerXpressActiveGPU_Get()
-const ADL_DL_POWERXPRESS_SWITCH_RESULT_STARTED = 1; // Switch procedure has been started - Windows platform only
-{$EXTERNALSYM ADL_DL_POWERXPRESS_SWITCH_RESULT_STARTED}
-const ADL_DL_POWERXPRESS_SWITCH_RESULT_DECLINED = 2; // Switch procedure cannot be started - All platforms
-{$EXTERNALSYM ADL_DL_POWERXPRESS_SWITCH_RESULT_DECLINED}
-const ADL_DL_POWERXPRESS_SWITCH_RESULT_ALREADY = 3; // System already has required status - All platforms
-{$EXTERNALSYM ADL_DL_POWERXPRESS_SWITCH_RESULT_ALREADY}
-const ADL_DL_POWERXPRESS_SWITCH_RESULT_DEFERRED = 5; // Switch was deferred and requires an X restart - Linux platform only
-{$EXTERNALSYM ADL_DL_POWERXPRESS_SWITCH_RESULT_DEFERRED}
-
-// PowerXpress support version
-// ADL_Display_PowerXpressVersion_Get()
-const ADL_DL_POWERXPRESS_VERSION_MAJOR = 2; // Current PowerXpress support version 2.0
-{$EXTERNALSYM ADL_DL_POWERXPRESS_VERSION_MAJOR}
-const ADL_DL_POWERXPRESS_VERSION_MINOR = 0;
-{$EXTERNALSYM ADL_DL_POWERXPRESS_VERSION_MINOR}
-
-//ADL_DL_POWERXPRESS_VERSION (((ADL_DL_POWERXPRESS_VERSION_MAJOR) << 16) | ADL_DL_POWERXPRESS_VERSION_MINOR)
-const ADL_DL_POWERXPRESS_VERSION = (((ADL_DL_POWERXPRESS_VERSION_MAJOR shl 16) or ADL_DL_POWERXPRESS_VERSION_MINOR));
-{$EXTERNALSYM ADL_DL_POWERXPRESS_VERSION}
-
-//values for ADLThermalControllerInfo.iThermalControllerDomain
-const ADL_DL_THERMAL_DOMAIN_OTHER = 0;
-{$EXTERNALSYM ADL_DL_THERMAL_DOMAIN_OTHER}
-const ADL_DL_THERMAL_DOMAIN_GPU = 1;
-{$EXTERNALSYM ADL_DL_THERMAL_DOMAIN_GPU}
-
-//values for ADLThermalControllerInfo.iFlags
-const ADL_DL_THERMAL_FLAG_INTERRUPT = 1;
-{$EXTERNALSYM ADL_DL_THERMAL_FLAG_INTERRUPT}
-const ADL_DL_THERMAL_FLAG_FANCONTROL = 2;
-{$EXTERNALSYM ADL_DL_THERMAL_FLAG_FANCONTROL}
-
-///\defgroup define_fanctrl Fan speed cotrol
-/// Values for ADLFanSpeedInfo.iFlags
-// @{
-const ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ = 1;
-{$EXTERNALSYM ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ}
-const ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE = 2;
-{$EXTERNALSYM ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE}
-const ADL_DL_FANCTRL_SUPPORTS_RPM_READ = 4;
-{$EXTERNALSYM ADL_DL_FANCTRL_SUPPORTS_RPM_READ}
-const ADL_DL_FANCTRL_SUPPORTS_RPM_WRITE = 8;
-{$EXTERNALSYM ADL_DL_FANCTRL_SUPPORTS_RPM_WRITE}
-// @}
-
-//values for ADLFanSpeedValue.iSpeedType
-const ADL_DL_FANCTRL_SPEED_TYPE_PERCENT = 1;
-{$EXTERNALSYM ADL_DL_FANCTRL_SPEED_TYPE_PERCENT}
-const ADL_DL_FANCTRL_SPEED_TYPE_RPM = 2;
-{$EXTERNALSYM ADL_DL_FANCTRL_SPEED_TYPE_RPM}
-
-//values for ADLFanSpeedValue.iFlags
-const ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED = 1;
-{$EXTERNALSYM ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED}
-
-// MVPU interfaces
-const ADL_DL_MAX_MVPU_ADAPTERS = 4;
-{$EXTERNALSYM ADL_DL_MAX_MVPU_ADAPTERS}
-const MVPU_ADAPTER_0 = $00000001;
-{$EXTERNALSYM MVPU_ADAPTER_0}
-const MVPU_ADAPTER_1 = $00000002;
-{$EXTERNALSYM MVPU_ADAPTER_1}
-const MVPU_ADAPTER_2 = $00000004;
-{$EXTERNALSYM MVPU_ADAPTER_2}
-const MVPU_ADAPTER_3 = $00000008;
-{$EXTERNALSYM MVPU_ADAPTER_3}
-const ADL_DL_MAX_REGISTRY_PATH = 256;
-{$EXTERNALSYM ADL_DL_MAX_REGISTRY_PATH}
-
-//values for ADLMVPUStatus.iStatus
-const ADL_DL_MVPU_STATUS_OFF = 0;
-{$EXTERNALSYM ADL_DL_MVPU_STATUS_OFF}
-const ADL_DL_MVPU_STATUS_ON = 1;
-{$EXTERNALSYM ADL_DL_MVPU_STATUS_ON}
-
-// values for ASIC family
-///\defgroup define_Asic_type Detailed asic types
-/// Defines for Adapter ASIC family type
-// @{
-const ADL_ASIC_UNDEFINED = 0;
-{$EXTERNALSYM ADL_ASIC_UNDEFINED}
-const ADL_ASIC_DISCRETE = (1 shl 0);
-{$EXTERNALSYM ADL_ASIC_DISCRETE}
-const ADL_ASIC_INTEGRATED = (1 shl 1);
-{$EXTERNALSYM ADL_ASIC_INTEGRATED}
-const ADL_ASIC_FIREGL = (1 shl 2);
-{$EXTERNALSYM ADL_ASIC_FIREGL}
-const ADL_ASIC_FIREMV = (1 shl 3);
-{$EXTERNALSYM ADL_ASIC_FIREMV}
-const ADL_ASIC_XGP = (1 shl 4);
-{$EXTERNALSYM ADL_ASIC_XGP}
-const ADL_ASIC_FUSION = (1 shl 5);
-{$EXTERNALSYM ADL_ASIC_FUSION}
-const ADL_ASIC_FIRESTREAM = (1 shl 6);
-{$EXTERNALSYM ADL_ASIC_FIRESTREAM}
-// @}
-
-///\defgroup define_detailed_timing_flags Detailed Timimg Flags
-/// Defines for ADLDetailedTiming.sTimingFlags field
-// @{
-const ADL_DL_TIMINGFLAG_DOUBLE_SCAN = $0001;
-{$EXTERNALSYM ADL_DL_TIMINGFLAG_DOUBLE_SCAN}
-//sTimingFlags is set when the mode is INTERLACED, if not PROGRESSIVE
-const ADL_DL_TIMINGFLAG_INTERLACED = $0002;
-{$EXTERNALSYM ADL_DL_TIMINGFLAG_INTERLACED}
-//sTimingFlags is set when the Horizontal Sync is POSITIVE, if not NEGATIVE
-const ADL_DL_TIMINGFLAG_H_SYNC_POLARITY = $0004;
-{$EXTERNALSYM ADL_DL_TIMINGFLAG_H_SYNC_POLARITY}
-//sTimingFlags is set when the Vertical Sync is POSITIVE, if not NEGATIVE
-const ADL_DL_TIMINGFLAG_V_SYNC_POLARITY = $0008;
-{$EXTERNALSYM ADL_DL_TIMINGFLAG_V_SYNC_POLARITY}
-// @}
-
-///\defgroup define_modetiming_standard Timing Standards
-/// Defines for ADLDisplayModeInfo.iTimingStandard field
-// @{
-const ADL_DL_MODETIMING_STANDARD_CVT = $00000001; // CVT Standard
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_CVT}
-const ADL_DL_MODETIMING_STANDARD_GTF = $00000002; // GFT Standard
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_GTF}
-const ADL_DL_MODETIMING_STANDARD_DMT = $00000004; // DMT Standard
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_DMT}
-const ADL_DL_MODETIMING_STANDARD_CUSTOM = $00000008; // User-defined standard
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_CUSTOM}
-const ADL_DL_MODETIMING_STANDARD_DRIVER_DEFAULT = $00000010; // Remove Mode from overriden list
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_DRIVER_DEFAULT}
-const ADL_DL_MODETIMING_STANDARD_CVT_RB = $00000020; // CVT-RB Standard
-{$EXTERNALSYM ADL_DL_MODETIMING_STANDARD_CVT_RB}
-// @}
-
-// \defgroup define_xserverinfo driver x-server info
-/// These flags are used by ADL_XServerInfo_Get()
-// @
-
-/// Xinerama is active in the x-server, Xinerama extension may report it to be active but it
-/// may not be active in x-server
-const ADL_XSERVERINFO_XINERAMAACTIVE = (1 shl 0);
-{$EXTERNALSYM ADL_XSERVERINFO_XINERAMAACTIVE}
-
-/// RandR 1.2 is supported by driver, RandR extension may report version 1.2
-/// but driver may not support it
-const ADL_XSERVERINFO_RANDR12SUPPORTED = (1 shl 1);
-{$EXTERNALSYM ADL_XSERVERINFO_RANDR12SUPPORTED}
-// @
+const
+
+ ADL_I2C_MAJOR_API_REV = $00000001;
+ ADL_I2C_MINOR_DEFAULT_API_REV = $00000000;
+ ADL_I2C_MINOR_OEM_API_REV = $00000001;
+
+ // Values for ADL_Display_WriteAndReadI2C()
+ ADL_DL_I2C_LINE_OEM = $00000001;
+ ADL_DL_I2C_LINE_OD_CONTROL = $00000002;
+ ADL_DL_I2C_LINE_OEM2 = $00000003;
+ ADL_DL_I2C_LINE_OEM3 = $00000004;
+ ADL_DL_I2C_LINE_OEM4 = $00000005;
+ ADL_DL_I2C_LINE_OEM5 = $00000006;
+ ADL_DL_I2C_LINE_OEM6 = $00000007;
+
+ // Max size of I2C data buffer
+ ADL_DL_I2C_MAXDATASIZE = $00000040;
+ ADL_DL_I2C_MAXWRITEDATASIZE = $0000000C;
+ ADL_DL_I2C_MAXADDRESSLENGTH = $00000006;
+ ADL_DL_I2C_MAXOFFSETLENGTH = $00000004;
+
+ /// Values for ADLDisplayProperty.iPropertyType
+ ADL_DL_DISPLAYPROPERTY_TYPE_UNKNOWN = 0;
+ ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE = 1;
+ ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING = 2;
+ /// Enables ITC processing for HDMI panels that are capable of the feature
+ ADL_DL_DISPLAYPROPERTY_TYPE_ITCFLAGENABLE = 9;
+ ADL_DL_DISPLAYPROPERTY_TYPE_DOWNSCALE = 11;
+
+ /// Values for ADLDisplayContent.iContentType
+ /// Certain HDMI panels that support ITC have support for a feature such that, the display on the panel
+ /// can be adjusted to optimize the view of the content being displayed, depending on the type of content.
+ ADL_DL_DISPLAYCONTENT_TYPE_GRAPHICS = 1;
+ ADL_DL_DISPLAYCONTENT_TYPE_PHOTO = 2;
+ ADL_DL_DISPLAYCONTENT_TYPE_CINEMA = 4;
+ ADL_DL_DISPLAYCONTENT_TYPE_GAME = 8;
+
+ //values for ADLDisplayProperty.iExpansionMode
+ ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_CENTER = 0;
+ ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_FULLSCREEN = 1;
+ ADL_DL_DISPLAYPROPERTY_EXPANSIONMODE_ASPECTRATIO = 2;
+
+ ///\defgroup define_dither_states Dithering options
+ // @{
+ /// Dithering disabled.
+ ADL_DL_DISPLAY_DITHER_DISABLED = 0;
+ /// Use default driver settings for dithering. Note that the default setting could be dithering disabled.
+ ADL_DL_DISPLAY_DITHER_DRIVER_DEFAULT = 1;
+ /// Temporal dithering to 6 bpc. Note that if the input is 12 bits, the two least significant bits will be truncated.
+ ADL_DL_DISPLAY_DITHER_FM6 = 2;
+ /// Temporal dithering to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_FM8 = 3;
+ /// Temporal dithering to 10 bpc.
+ ADL_DL_DISPLAY_DITHER_FM10 = 4;
+ /// Spatial dithering to 6 bpc. Note that if the input is 12 bits, the two least significant bits will be truncated.
+ ADL_DL_DISPLAY_DITHER_DITH6 = 5;
+ /// Spatial dithering to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_DITH8 = 6;
+ /// Spatial dithering to 10 bpc.
+ ADL_DL_DISPLAY_DITHER_DITH10 = 7;
+ /// Spatial dithering to 6 bpc. Random number generators are reset every frame, so the same input value of a certain pixel will always be dithered to the same output value. Note that if the input is 12 bits, the two least significant bits will be truncated.
+ ADL_DL_DISPLAY_DITHER_DITH6_NO_FRAME_RAND = 8;
+ /// Spatial dithering to 8 bpc. Random number generators are reset every frame, so the same input value of a certain pixel will always be dithered to the same output value.
+ ADL_DL_DISPLAY_DITHER_DITH8_NO_FRAME_RAND = 9;
+ /// Spatial dithering to 10 bpc. Random number generators are reset every frame, so the same input value of a certain pixel will always be dithered to the same output value.
+ ADL_DL_DISPLAY_DITHER_DITH10_NO_FRAME_RAND = 10;
+ /// Truncation to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN6 = 11;
+ /// Truncation to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN8 = 12;
+ /// Truncation to 10 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10 = 13;
+ /// Truncation to 10 bpc followed by spatial dithering to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10_DITH8 = 14;
+ /// Truncation to 10 bpc followed by spatial dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10_DITH6 = 15;
+ /// Truncation to 10 bpc followed by temporal dithering to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10_FM8 = 16;
+ /// Truncation to 10 bpc followed by temporal dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10_FM6 = 17;
+ /// Truncation to 10 bpc followed by spatial dithering to 8 bpc and temporal dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN10_DITH8_FM6 = 18;
+ /// Spatial dithering to 10 bpc followed by temporal dithering to 8 bpc.
+ ADL_DL_DISPLAY_DITHER_DITH10_FM8 = 19;
+ /// Spatial dithering to 10 bpc followed by temporal dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_DITH10_FM6 = 20;
+ /// Truncation to 8 bpc followed by spatial dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN8_DITH6 = 21;
+ /// Truncation to 8 bpc followed by temporal dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_TRUN8_FM6 = 22;
+ /// Spatial dithering to 8 bpc followed by temporal dithering to 6 bpc.
+ ADL_DL_DISPLAY_DITHER_DITH8_FM6 = 23;
+ ADL_DL_DISPLAY_DITHER_LAST = ADL_DL_DISPLAY_DITHER_DITH8_FM6;
+ // @}
+
+ /// Display Get Cached EDID flag
+ ADL_MAX_EDIDDATA_SIZE = 256; // number of UCHAR;
+ ADL_MAX_OVERRIDEEDID_SIZE = 512; // number of UCHAR;
+ ADL_MAX_EDID_EXTENSION_BLOCKS = 3;
+
+ ADL_DL_CONTROLLER_OVERLAY_ALPHA = 0;
+ ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX = 1;
+
+ ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_RESET = $00000000;
+ ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SET = $00000001;
+ ADL_DL_DISPLAY_DATA_PACKET__INFO_PACKET_SCAN = $00000002;
+
+ ///\defgroup define_display_packet Display Data Packet Types
+ // @{
+ ADL_DL_DISPLAY_DATA_PACKET__TYPE__AVI = $00000001;
+ ADL_DL_DISPLAY_DATA_PACKET__TYPE__GAMMUT = $00000002;
+ ADL_DL_DISPLAY_DATA_PACKET__TYPE__VENDORINFO = $00000004;
+ ADL_DL_DISPLAY_DATA_PACKET__TYPE__HDR = $00000008;
+ ADL_DL_DISPLAY_DATA_PACKET__TYPE__SPD = $00000010;
+ // @}
+
+ // matrix types
+ ADL_GAMUT_MATRIX_SD = 1; // SD matrix i.e. BT601;
+ ADL_GAMUT_MATRIX_HD = 2; // HD matrix i.e. BT709;
+
+ ///\defgroup define_clockinfo_flags Clock flags
+ /// Used by ADLAdapterODClockInfo.iFlag
+ // @{
+ ADL_DL_CLOCKINFO_FLAG_FULLSCREEN3DONLY = $00000001;
+ ADL_DL_CLOCKINFO_FLAG_ALWAYSFULLSCREEN3D = $00000002;
+ ADL_DL_CLOCKINFO_FLAG_VPURECOVERYREDUCED = $00000004;
+ ADL_DL_CLOCKINFO_FLAG_THERMALPROTECTION = $00000008;
+ // @}
+
+ // Supported GPUs
+ // ADL_Display_PowerXpressActiveGPU_Get()
+ ADL_DL_POWERXPRESS_GPU_INTEGRATED = 1;
+ ADL_DL_POWERXPRESS_GPU_DISCRETE = 2;
+
+ // Possible values for lpOperationResult
+ // ADL_Display_PowerXpressActiveGPU_Get()
+ ADL_DL_POWERXPRESS_SWITCH_RESULT_STARTED = 1; // Switch procedure has been started - Windows platform only;
+ ADL_DL_POWERXPRESS_SWITCH_RESULT_DECLINED = 2; // Switch procedure cannot be started - All platforms;
+ ADL_DL_POWERXPRESS_SWITCH_RESULT_ALREADY = 3; // System already has required status - All platforms;
+ ADL_DL_POWERXPRESS_SWITCH_RESULT_DEFERRED = 5;
+ // Switch was deferred and requires an X restart - Linux platform only;
+
+ // PowerXpress support version
+ // ADL_Display_PowerXpressVersion_Get()
+ ADL_DL_POWERXPRESS_VERSION_MAJOR = 2; // Current PowerXpress support version 2.0;
+ ADL_DL_POWERXPRESS_VERSION_MINOR = 0;
+
+ ADL_DL_POWERXPRESS_VERSION = (((ADL_DL_POWERXPRESS_VERSION_MAJOR) shl 16) or ADL_DL_POWERXPRESS_VERSION_MINOR);
+
+ //values for ADLThermalControllerInfo.iThermalControllerDomain
+ ADL_DL_THERMAL_DOMAIN_OTHER = 0;
+ ADL_DL_THERMAL_DOMAIN_GPU = 1;
+
+ //values for ADLThermalControllerInfo.iFlags
+ ADL_DL_THERMAL_FLAG_INTERRUPT = 1;
+ ADL_DL_THERMAL_FLAG_FANCONTROL = 2;
+
+ ///\defgroup define_fanctrl Fan speed cotrol
+ /// Values for ADLFanSpeedInfo.iFlags
+ // @{
+ ADL_DL_FANCTRL_SUPPORTS_PERCENT_READ = 1;
+ ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE = 2;
+ ADL_DL_FANCTRL_SUPPORTS_RPM_READ = 4;
+ ADL_DL_FANCTRL_SUPPORTS_RPM_WRITE = 8;
+ // @}
+
+ //values for ADLFanSpeedValue.iSpeedType
+ ADL_DL_FANCTRL_SPEED_TYPE_PERCENT = 1;
+ ADL_DL_FANCTRL_SPEED_TYPE_RPM = 2;
+
+ //values for ADLFanSpeedValue.iFlags
+ ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED = 1;
+
+ // MVPU interfaces
+ ADL_DL_MAX_MVPU_ADAPTERS = 4;
+ MVPU_ADAPTER_0 = $00000001;
+ MVPU_ADAPTER_1 = $00000002;
+ MVPU_ADAPTER_2 = $00000004;
+ MVPU_ADAPTER_3 = $00000008;
+ ADL_DL_MAX_REGISTRY_PATH = 256;
+
+ //values for ADLMVPUStatus.iStatus
+ ADL_DL_MVPU_STATUS_OFF = 0;
+ ADL_DL_MVPU_STATUS_ON = 1;
+
+ // values for ASIC family
+ ///\defgroup define_Asic_type Detailed asic types
+ /// Defines for Adapter ASIC family type
+ // @{
+ ADL_ASIC_UNDEFINED = 0;
+ ADL_ASIC_DISCRETE = (1 shl 0);
+ ADL_ASIC_INTEGRATED = (1 shl 1);
+ ADL_ASIC_FIREGL = (1 shl 2);
+ ADL_ASIC_FIREMV = (1 shl 3);
+ ADL_ASIC_XGP = (1 shl 4);
+ ADL_ASIC_FUSION = (1 shl 5);
+ ADL_ASIC_FIRESTREAM = (1 shl 6);
+ ADL_ASIC_EMBEDDED = (1 shl 7);
+ // @}
+
+ ///\defgroup define_detailed_timing_flags Detailed Timimg Flags
+ /// Defines for ADLDetailedTiming.sTimingFlags field
+ // @{
+ ADL_DL_TIMINGFLAG_DOUBLE_SCAN = $0001;
+ //sTimingFlags is set when the mode is INTERLACED, if not PROGRESSIVE
+ ADL_DL_TIMINGFLAG_INTERLACED = $0002;
+ //sTimingFlags is set when the Horizontal Sync is POSITIVE, if not NEGATIVE
+ ADL_DL_TIMINGFLAG_H_SYNC_POLARITY = $0004;
+ //sTimingFlags is set when the Vertical Sync is POSITIVE, if not NEGATIVE
+ ADL_DL_TIMINGFLAG_V_SYNC_POLARITY = $0008;
+ // @}
+
+ ///\defgroup define_modetiming_standard Timing Standards
+ /// Defines for ADLDisplayModeInfo.iTimingStandard field
+ // @{
+ ADL_DL_MODETIMING_STANDARD_CVT = $00000001; // CVT Standard;
+ ADL_DL_MODETIMING_STANDARD_GTF = $00000002; // GFT Standard;
+ ADL_DL_MODETIMING_STANDARD_DMT = $00000004; // DMT Standard;
+ ADL_DL_MODETIMING_STANDARD_CUSTOM = $00000008; // User-defined standard;
+ ADL_DL_MODETIMING_STANDARD_DRIVER_DEFAULT = $00000010; // Remove Mode from overriden list;
+ ADL_DL_MODETIMING_STANDARD_CVT_RB = $00000020; // CVT-RB Standard;
+ // @}
+
+ // \defgroup define_xserverinfo driver x-server info
+ /// These flags are used by ADL_XServerInfo_Get()
+ // @
+
+ /// Xinerama is active in the x-server, Xinerama extension may report it to be active but it
+ /// may not be active in x-server
+ ADL_XSERVERINFO_XINERAMAACTIVE = (1 shl 0);
+
+ /// RandR 1.2 is supported by driver, RandR extension may report version 1.2
+ /// but driver may not support it
+ ADL_XSERVERINFO_RANDR12SUPPORTED = (1 shl 1);
+ // @
+
+ ///\defgroup define_eyefinity_constants Eyefinity Definitions
+ // @{
+
+ ADL_CONTROLLERVECTOR_0 = 1; // ADL_CONTROLLERINDEX_0 = 0, (1 shl ADL_CONTROLLERINDEX_0);
+ ADL_CONTROLLERVECTOR_1 = 2; // ADL_CONTROLLERINDEX_1 = 1, (1 shl ADL_CONTROLLERINDEX_1);
+
+ ADL_DISPLAY_SLSGRID_ORIENTATION_000 = $00000001;
+ ADL_DISPLAY_SLSGRID_ORIENTATION_090 = $00000002;
+ ADL_DISPLAY_SLSGRID_ORIENTATION_180 = $00000004;
+ ADL_DISPLAY_SLSGRID_ORIENTATION_270 = $00000008;
+ ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_LANDSCAPE = $00000001;
+ ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
+ ADL_DISPLAY_SLSGRID_PORTAIT_MODE = $00000004;
+ ADL_DISPLAY_SLSGRID_KEEPTARGETROTATION = $00000080;
+
+ ADL_DISPLAY_SLSGRID_SAMEMODESLS_SUPPORT = $00000010;
+ ADL_DISPLAY_SLSGRID_MIXMODESLS_SUPPORT = $00000020;
+ ADL_DISPLAY_SLSGRID_DISPLAYROTATION_SUPPORT = $00000040;
+ ADL_DISPLAY_SLSGRID_DESKTOPROTATION_SUPPORT = $00000080;
+
+ ADL_DISPLAY_SLSMAP_SLSLAYOUTMODE_FIT = $0100;
+ ADL_DISPLAY_SLSMAP_SLSLAYOUTMODE_FILL = $0200;
+ ADL_DISPLAY_SLSMAP_SLSLAYOUTMODE_EXPAND = $0400;
+
+ ADL_DISPLAY_SLSMAP_IS_SLS = $1000;
+ ADL_DISPLAY_SLSMAP_IS_SLSBUILDER = $2000;
+ ADL_DISPLAY_SLSMAP_IS_CLONEVT = $4000;
+
+ ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_LANDSCAPE = $00000001;
+ ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
+
+ ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_LANDSCAPE = $00000001;
+ ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
+
+ ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_LANDSCAPE = $00000001;
+ ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
+
+ ADL_SLS_SAMEMODESLS_SUPPORT = $0001;
+ ADL_SLS_MIXMODESLS_SUPPORT = $0002;
+ ADL_SLS_DISPLAYROTATIONSLS_SUPPORT = $0004;
+ ADL_SLS_DESKTOPROTATIONSLS_SUPPORT = $0008;
+
+ ADL_SLS_TARGETS_INVALID = $0001;
+ ADL_SLS_MODES_INVALID = $0002;
+ ADL_SLS_ROTATIONS_INVALID = $0004;
+ ADL_SLS_POSITIONS_INVALID = $0008;
+ ADL_SLS_LAYOUTMODE_INVALID = $0010;
+
+ ADL_DISPLAY_SLSDISPLAYOFFSET_VALID = $0002;
+
+ ADL_DISPLAY_SLSGRID_RELATIVETO_LANDSCAPE = $00000010;
+ ADL_DISPLAY_SLSGRID_RELATIVETO_CURRENTANGLE = $00000020;
+
+ /// The bit mask identifies displays is currently in bezel mode.
+ ADL_DISPLAY_SLSMAP_BEZELMODE = $00000010;
+ /// The bit mask identifies displays from this map is arranged.
+ ADL_DISPLAY_SLSMAP_DISPLAYARRANGED = $00000002;
+ /// The bit mask identifies this map is currently in used for the current adapter.
+ ADL_DISPLAY_SLSMAP_CURRENTCONFIG = $00000004;
+
+ ///For onlay active SLS map info
+ ADL_DISPLAY_SLSMAPINDEXLIST_OPTION_ACTIVE = $00000001;
+
+ ///For Bezel
+ ADL_DISPLAY_BEZELOFFSET_STEPBYSTEPSET = $00000004;
+ ADL_DISPLAY_BEZELOFFSET_COMMIT = $00000008;
+type
+ SLS_ImageCropType = (
+ Fit = 1,
+ Fill = 2,
+ Expand = 3);
-///\defgroup define_eyefinity_constants Eyefinity Definitions
-// @{
+type
+ DceSettingsType = (
+ DceSetting_HdmiLq,
+ DceSetting_DpSettings,
+ DceSetting_Protection);
-const ADL_CONTROLLERVECTOR_0 = 1; // ADL_CONTROLLERINDEX_0 = 0, (1 << ADL_CONTROLLERINDEX_0)
-{$EXTERNALSYM ADL_CONTROLLERVECTOR_0}
-const ADL_CONTROLLERVECTOR_1 = 2; // ADL_CONTROLLERINDEX_1 = 1, (1 << ADL_CONTROLLERINDEX_1)
-{$EXTERNALSYM ADL_CONTROLLERVECTOR_1}
-
-const ADL_DISPLAY_SLSGRID_ORIENTATION_000 = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_ORIENTATION_000}
-const ADL_DISPLAY_SLSGRID_ORIENTATION_090 = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_ORIENTATION_090}
-const ADL_DISPLAY_SLSGRID_ORIENTATION_180 = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_ORIENTATION_180}
-const ADL_DISPLAY_SLSGRID_ORIENTATION_270 = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_ORIENTATION_270}
-const ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_LANDSCAPE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_LANDSCAPE}
-const ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_CAP_OPTION_RELATIVETO_CURRENTANGLE}
-const ADL_DISPLAY_SLSGRID_PORTAIT_MODE = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_PORTAIT_MODE}
-
-
-const ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_LANDSCAPE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_LANDSCAPE}
-const ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_GET_OPTION_RELATIVETO_CURRENTANGLE}
-
-const ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_LANDSCAPE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_LANDSCAPE}
-const ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_CREATE_OPTION_RELATIVETO_CURRENTANGLE}
-
-const ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_LANDSCAPE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_LANDSCAPE}
-const ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_CURRENTANGLE = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPCONFIG_REARRANGE_OPTION_RELATIVETO_CURRENTANGLE}
-
-
-const ADL_DISPLAY_SLSGRID_RELATIVETO_LANDSCAPE = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_RELATIVETO_LANDSCAPE}
-const ADL_DISPLAY_SLSGRID_RELATIVETO_CURRENTANGLE = $00000020;
-{$EXTERNALSYM ADL_DISPLAY_SLSGRID_RELATIVETO_CURRENTANGLE}
-
-
-/// The bit mask identifies displays is currently in bezel mode.
-const ADL_DISPLAY_SLSMAP_BEZELMODE = $00000010;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAP_BEZELMODE}
-/// The bit mask identifies displays from this map is arranged.
-const ADL_DISPLAY_SLSMAP_DISPLAYARRANGED = $00000002;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAP_DISPLAYARRANGED}
-/// The bit mask identifies this map is currently in used for the current adapter.
-const ADL_DISPLAY_SLSMAP_CURRENTCONFIG = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAP_CURRENTCONFIG}
-
- ///For onlay active SLS map info
-const ADL_DISPLAY_SLSMAPINDEXLIST_OPTION_ACTIVE = $00000001;
-{$EXTERNALSYM ADL_DISPLAY_SLSMAPINDEXLIST_OPTION_ACTIVE}
-
-///For Bezel
-const ADL_DISPLAY_BEZELOFFSET_STEPBYSTEPSET = $00000004;
-{$EXTERNALSYM ADL_DISPLAY_BEZELOFFSET_STEPBYSTEPSET}
-const ADL_DISPLAY_BEZELOFFSET_COMMIT = $00000008;
-{$EXTERNALSYM ADL_DISPLAY_BEZELOFFSET_COMMIT}
+type
+ DpLinkRate = (
+ DPLinkRate_Unknown,
+ DPLinkRate_RBR,
+ DPLinkRate_HBR,
+ DPLinkRate_HBR2,
+ DPLinkRate_HBR3);
// @}
///\defgroup define_powerxpress_constants PowerXpress Definitions
-// @{
+/// @{
/// The bit mask identifies PX caps for ADLPXConfigCaps.iPXConfigCapMask and ADLPXConfigCaps.iPXConfigCapValue
-const ADL_PX_CONFIGCAPS_SPLASHSCREEN_SUPPORT = $0001;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_SPLASHSCREEN_SUPPORT}
-const ADL_PX_CONFIGCAPS_CF_SUPPORT = $0002;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_CF_SUPPORT}
-const ADL_PX_CONFIGCAPS_MUXLESS = $0004;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_MUXLESS}
-const ADL_PX_CONFIGCAPS_PROFILE_COMPLIANT = $0008;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_PROFILE_COMPLIANT}
-const ADL_PX_CONFIGCAPS_NON_AMD_DRIVEN_DISPLAYS = $0010;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_NON_AMD_DRIVEN_DISPLAYS}
-const ADL_PX_CONFIGCAPS_FIXED_SUPPORT = $0020;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_FIXED_SUPPORT}
-const ADL_PX_CONFIGCAPS_DYNAMIC_SUPPORT = $0040;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_DYNAMIC_SUPPORT}
-const ADL_PX_CONFIGCAPS_HIDE_AUTO_SWITCH = $0080;
-{$EXTERNALSYM ADL_PX_CONFIGCAPS_HIDE_AUTO_SWITCH}
-
-/// The bit mask identifies PX schemes for ADLPXSchemeRange
-const ADL_PX_SCHEMEMASK_FIXED = $0001;
-{$EXTERNALSYM ADL_PX_SCHEMEMASK_FIXED}
-const ADL_PX_SCHEMEMASK_DYNAMIC = $0002;
-{$EXTERNALSYM ADL_PX_SCHEMEMASK_DYNAMIC}
+const
-/// PX Schemes
-const ADL_PX_SCHEME_INVALID = 0;
-const ADL_PX_SCHEME_FIXED = ADL_PX_SCHEMEMASK_FIXED;
-const ADL_PX_SCHEME_DYNAMIC = ADL_PX_SCHEMEMASK_DYNAMIC;
+ ADL_PX_CONFIGCAPS_SPLASHSCREEN_SUPPORT = $0001;
+ ADL_PX_CONFIGCAPS_CF_SUPPORT = $0002;
+ ADL_PX_CONFIGCAPS_MUXLESS = $0004;
+ ADL_PX_CONFIGCAPS_PROFILE_COMPLIANT = $0008;
+ ADL_PX_CONFIGCAPS_NON_AMD_DRIVEN_DISPLAYS = $0010;
+ ADL_PX_CONFIGCAPS_FIXED_SUPPORT = $0020;
+ ADL_PX_CONFIGCAPS_DYNAMIC_SUPPORT = $0040;
+ ADL_PX_CONFIGCAPS_HIDE_AUTO_SWITCH = $0080;
+ /// The bit mask identifies PX schemes for ADLPXSchemeRange
+ ADL_PX_SCHEMEMASK_FIXED = $0001;
+ ADL_PX_SCHEMEMASK_DYNAMIC = $0002;
+
+/// PX Schemes
type
- ADLPXScheme = ADL_PX_SCHEME_INVALID..ADL_PX_SCHEME_DYNAMIC;
- {$EXTERNALSYM ADLPXScheme}
-
+ ADLPXScheme = (
+ ADL_PX_SCHEME_INVALID = 0,
+ ADL_PX_SCHEME_FIXED = ADL_PX_SCHEMEMASK_FIXED,
+ ADL_PX_SCHEME_DYNAMIC = ADL_PX_SCHEMEMASK_DYNAMIC);
/// Just keep the old definitions for compatibility, need to be removed later
-const PX_SCHEME_INVALID = 0;
-const PX_SCHEME_FIXED = 1;
-const PX_SCHEME_DYNAMIC = 2;
-
type
- PXScheme = PX_SCHEME_INVALID..PX_SCHEME_DYNAMIC;
- {$EXTERNALSYM PXScheme}
-
-
+ PXScheme = (
+ PX_SCHEME_INVALID = 0,
+ PX_SCHEME_FIXED = 1,
+ PX_SCHEME_DYNAMIC = 2);
-// @}
+/// @}
///\defgroup define_appprofiles For Application Profiles
-// @{
-
-const ADL_APP_PROFILE_FILENAME_LENGTH = 64;
-{$EXTERNALSYM ADL_APP_PROFILE_FILENAME_LENGTH}
-const ADL_APP_PROFILE_TIMESTAMP_LENGTH = 32;
-{$EXTERNALSYM ADL_APP_PROFILE_TIMESTAMP_LENGTH}
-const ADL_APP_PROFILE_VERSION_LENGTH = 32;
-{$EXTERNALSYM ADL_APP_PROFILE_VERSION_LENGTH}
-const ADL_APP_PROFILE_PROPERTY_LENGTH = 64;
-{$EXTERNALSYM ADL_APP_PROFILE_PROPERTY_LENGTH}
-
-const ADL_PX40_MRU = 0;
-const ADL_PX40_MISSED = 1;
-const ADL_PX40_DISCRETE = 2;
-const ADL_PX40_INTEGRATED = 3;
-const ADL_PX40_TOTAL = 4;
+/// @{
+const
+ ADL_APP_PROFILE_FILENAME_LENGTH = 64;
+ ADL_APP_PROFILE_TIMESTAMP_LENGTH = 32;
+ ADL_APP_PROFILE_VERSION_LENGTH = 32;
+ ADL_APP_PROFILE_PROPERTY_LENGTH = 64;
type
- ApplicationListType = ADL_PX40_MRU..ADL_PX40_TOTAL;
- {$EXTERNALSYM ApplicationListType}
-
-
-const ADL_PROFILEPROPERTY_TYPE_BINARY = 0;
-const ADL_PROFILEPROPERTY_TYPE_BOOLEAN = 1;
-const ADL_PROFILEPROPERTY_TYPE_DWORD = 2;
-const ADL_PROFILEPROPERTY_TYPE_QWORD = 3;
-const ADL_PROFILEPROPERTY_TYPE_ENUMERATED = 4;
-const ADL_PROFILEPROPERTY_TYPE_STRING = 5;
+ ApplicationListType = (
+ ADL_PX40_MRU,
+ ADL_PX40_MISSED,
+ ADL_PX40_DISCRETE,
+ ADL_PX40_INTEGRATED,
+ ADL_MMD_PROFILED,
+ ADL_PX40_TOTAL);
type
- ADLProfilePropertyType = ADL_PROFILEPROPERTY_TYPE_BINARY..ADL_PROFILEPROPERTY_TYPE_STRING;
- {$EXTERNALSYM ADLProfilePropertyType}
-
-
-
-// @}
-
-///\defgroup define_dp12 For Display Port 1.2
-// @{
-
-/// Maximum Relative Address Link
-const ADL_MAX_RAD_LINK_COUNT = 15;
-{$EXTERNALSYM ADL_MAX_RAD_LINK_COUNT}
+ ADLProfilePropertyType = (
+ ADL_PROFILEPROPERTY_TYPE_BINARY = 0,
+ ADL_PROFILEPROPERTY_TYPE_BOOLEAN,
+ ADL_PROFILEPROPERTY_TYPE_DWORD,
+ ADL_PROFILEPROPERTY_TYPE_QWORD,
+ ADL_PROFILEPROPERTY_TYPE_ENUMERATED,
+ ADL_PROFILEPROPERTY_TYPE_STRING);
-// @}
-
-///\defgroup defines_gamutspace Driver Supported Gamut Space
-// @{
-
-/// The flags desribes that gamut is related to source or to destination and to overlay or to graphics
-const ADL_GAMUT_REFERENCE_SOURCE = (1 shl 0);
-{$EXTERNALSYM ADL_GAMUT_REFERENCE_SOURCE}
-const ADL_GAMUT_GAMUT_VIDEO_CONTENT = (1 shl 1);
-{$EXTERNALSYM ADL_GAMUT_GAMUT_VIDEO_CONTENT}
-
-/// The flags are used to describe the source of gamut and how read information from struct ADLGamutData
-const ADL_CUSTOM_WHITE_POINT = (1 shl 0);
-{$EXTERNALSYM ADL_CUSTOM_WHITE_POINT}
-const ADL_CUSTOM_GAMUT = (1 shl 1);
-{$EXTERNALSYM ADL_CUSTOM_GAMUT}
-
-/// The define means the predefined gamut values .
-///Driver uses to find entry in the table and apply appropriate gamut space.
-const ADL_GAMUT_SPACE_CCIR_709 = (1 shl 0);
-{$EXTERNALSYM ADL_GAMUT_SPACE_CCIR_709}
-const ADL_GAMUT_SPACE_CCIR_601 = (1 shl 1);
-{$EXTERNALSYM ADL_GAMUT_SPACE_CCIR_601}
-const ADL_GAMUT_SPACE_ADOBE_RGB = (1 shl 2);
-{$EXTERNALSYM ADL_GAMUT_SPACE_ADOBE_RGB}
-const ADL_GAMUT_SPACE_CIE_RGB = (1 shl 3);
-{$EXTERNALSYM ADL_GAMUT_SPACE_CIE_RGB}
-const ADL_GAMUT_SPACE_CUSTOM = (1 shl 4);
-{$EXTERNALSYM ADL_GAMUT_SPACE_CUSTOM}
-
-/// Predefine white point values are structed similar to gamut .
-const ADL_WHITE_POINT_5000K = (1 shl 0);
-{$EXTERNALSYM ADL_WHITE_POINT_5000K}
-const ADL_WHITE_POINT_6500K = (1 shl 1);
-{$EXTERNALSYM ADL_WHITE_POINT_6500K}
-const ADL_WHITE_POINT_7500K = (1 shl 2);
-{$EXTERNALSYM ADL_WHITE_POINT_7500K}
-const ADL_WHITE_POINT_9300K = (1 shl 3);
-{$EXTERNALSYM ADL_WHITE_POINT_9300K}
-const ADL_WHITE_POINT_CUSTOM = (1 shl 4);
-{$EXTERNALSYM ADL_WHITE_POINT_CUSTOM}
-
-///gamut and white point coordinates are from 0.0 -1.0 and divider is used to find the real value .
-/// X float = X int /divider
-const ADL_GAMUT_WHITEPOINT_DIVIDER = 10000;
-{$EXTERNALSYM ADL_GAMUT_WHITEPOINT_DIVIDER}
-
-///gamma a0 coefficient uses the following divider:
-const ADL_REGAMMA_COEFFICIENT_A0_DIVIDER = 10000000;
-{$EXTERNALSYM ADL_REGAMMA_COEFFICIENT_A0_DIVIDER}
-///gamma a1 ,a2,a3 coefficients use the following divider:
-const ADL_REGAMMA_COEFFICIENT_A1A2A3_DIVIDER = 1000;
-{$EXTERNALSYM ADL_REGAMMA_COEFFICIENT_A1A2A3_DIVIDER}
-
-///describes whether the coefficients are from EDID or custom user values.
-const ADL_EDID_REGAMMA_COEFFICIENTS = (1 shl 0);
-{$EXTERNALSYM ADL_EDID_REGAMMA_COEFFICIENTS}
-///Used for struct ADLRegamma. Feature if set use gamma ramp, if missing use regamma coefficents
-const ADL_USE_GAMMA_RAMP = (1 shl 4);
-{$EXTERNALSYM ADL_USE_GAMMA_RAMP}
-///Used for struct ADLRegamma. If the gamma ramp flag is used then the driver could apply de gamma corretion to the supplied curve and this depends on this flag
-const ADL_APPLY_DEGAMMA = (1 shl 5);
-{$EXTERNALSYM ADL_APPLY_DEGAMMA}
-
-// @}
-
-/// \defgroup define_ddcinfo_pixelformats DDCInfo Pixel Formats
-// @{
-/// defines for iPanelPixelFormat in struct ADLDDCInfo2
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB656 = LongInt($00000001);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB656}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB666 = LongInt($00000002);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB666}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB888 = LongInt($00000004);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB888}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB101010 = LongInt($00000008);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB101010}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB161616 = LongInt($00000010);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB161616}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED1 = LongInt($00000020);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED1}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED2 = LongInt($00000040);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED2}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED3 = LongInt($00000080);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED3}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_XRGB_BIAS101010 = LongInt($00000100);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_XRGB_BIAS101010}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_8BPCC = LongInt($00000200);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_8BPCC}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_10BPCC = LongInt($00000400);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_10BPCC}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_12BPCC = LongInt($00000800);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_12BPCC}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_8BPCC = LongInt($00001000);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_8BPCC}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_10BPCC = LongInt($00002000);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_10BPCC}
-const ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_12BPCC = LongInt($00004000);
-{$EXTERNALSYM ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_12BPCC}
-// @}
-
-
-
-/// \defgroup define_dbd_state Deep Bit Depth
-// @{
-
-/// defines for ADL_Workstation_DeepBitDepth_Get and ADL_Workstation_DeepBitDepth_Set functions
-// This value indicates that the deep bit depth state is forced off
-const ADL_DEEPBITDEPTH_FORCEOFF = 0;
-{$EXTERNALSYM ADL_DEEPBITDEPTH_FORCEOFF}
-/// This value indicates that the deep bit depth state is set to auto, the driver will automatically enable the
-/// appropriate deep bit depth state depending on what connected display supports.
-const ADL_DEEPBITDEPTH_10BPP_AUTO = 1;
-{$EXTERNALSYM ADL_DEEPBITDEPTH_10BPP_AUTO}
-/// This value indicates that the deep bit depth state is forced on to 10 bits per pixel, this is regardless if the display
-/// supports 10 bpp.
-const ADL_DEEPBITDEPTH_10BPP_FORCEON = 2;
-{$EXTERNALSYM ADL_DEEPBITDEPTH_10BPP_FORCEON}
-
-/// defines for ADLAdapterConfigMemory of ADL_Adapter_ConfigMemory_Get
-/// If this bit is set, it indicates that the Deep Bit Depth pixel is set on the display
-const ADL_ADAPTER_CONFIGMEMORY_DBD = (1 shl 0);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_DBD}
-/// If this bit is set, it indicates that the display is rotated (90, 180 or 270)
-const ADL_ADAPTER_CONFIGMEMORY_ROTATE = (1 shl 1);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_ROTATE}
-/// If this bit is set, it indicates that passive stereo is set on the display
-const ADL_ADAPTER_CONFIGMEMORY_STEREO_PASSIVE = (1 shl 2);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_STEREO_PASSIVE}
-/// If this bit is set, it indicates that the active stereo is set on the display
-const ADL_ADAPTER_CONFIGMEMORY_STEREO_ACTIVE = (1 shl 3);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_STEREO_ACTIVE}
-/// If this bit is set, it indicates that the tear free vsync is set on the display
-const ADL_ADAPTER_CONFIGMEMORY_ENHANCEDVSYNC = (1 shl 4);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_ENHANCEDVSYNC}
-const ADL_ADAPTER_CONFIGMEMORY_TEARFREEVSYNC = (1 shl 4);
-{$EXTERNALSYM ADL_ADAPTER_CONFIGMEMORY_TEARFREEVSYNC}
-/// @}
-
-/// \defgroup define_adl_validmemoryrequiredfields Memory Type
-/// @{
-
-/// This group defines memory types in ADLMemoryRequired struct \n
-/// Indicates that this is the visible memory
-const ADL_MEMORYREQTYPE_VISIBLE = (1 shl 0);
-{$EXTERNALSYM ADL_MEMORYREQTYPE_VISIBLE}
-/// Indicates that this is the invisible memory.
-const ADL_MEMORYREQTYPE_INVISIBLE = (1 shl 1);
-{$EXTERNALSYM ADL_MEMORYREQTYPE_INVISIBLE}
-/// Indicates that this is amount of visible memory per GPU that should be reserved for all other allocations.
-const ADL_MEMORYREQTYPE_GPURESERVEDVISIBLE = (1 shl 2);
-{$EXTERNALSYM ADL_MEMORYREQTYPE_GPURESERVEDVISIBLE}
/// @}
-/// \defgroup define_adapter_tear_free_status
-/// Used in ADL_Adapter_TEAR_FREE_Set and ADL_Adapter_TFD_Get functions to indicate the tear free
-/// desktop status.
-/// @{
-/// Tear free desktop is enabled.
-const ADL_ADAPTER_TEAR_FREE_ON = 1;
-{$EXTERNALSYM ADL_ADAPTER_TEAR_FREE_ON}
-/// Tear free desktop can't be enabled due to a lack of graphic adapter memory.
-const ADL_ADAPTER_TEAR_FREE_NOTENOUGHMEM = -1;
-{$EXTERNALSYM ADL_ADAPTER_TEAR_FREE_NOTENOUGHMEM}
-/// Tear free desktop can't be enabled due to quad buffer stereo being enabled.
-const ADL_ADAPTER_TEAR_FREE_OFF_ERR_QUADBUFFERSTEREO = -2;
-{$EXTERNALSYM ADL_ADAPTER_TEAR_FREE_OFF_ERR_QUADBUFFERSTEREO}
-/// Tear free desktop can't be enabled due to MGPU-SLS being enabled.
-const ADL_ADAPTER_TEAR_FREE_OFF_ERR_MGPUSLD = -3;
-{$EXTERNALSYM ADL_ADAPTER_TEAR_FREE_OFF_ERR_MGPUSLD}
-/// Tear free desktop is disabled.
-const ADL_ADAPTER_TEAR_FREE_OFF = 0;
-{$EXTERNALSYM ADL_ADAPTER_TEAR_FREE_OFF}
-/// @}
-
-/// \defgroup define_adapter_crossdisplay_platforminfo
-/// Used in ADL_Adapter_CrossDisplayPlatformInfo_Get function to indicate the Crossdisplay platform info.
-/// @{
-/// CROSSDISPLAY platform.
-const ADL_CROSSDISPLAY_PLATFORM = (1 shl 0);
-{$EXTERNALSYM ADL_CROSSDISPLAY_PLATFORM}
-/// CROSSDISPLAY platform for Lasso station.
-const ADL_CROSSDISPLAY_PLATFORM_LASSO = (1 shl 1);
-{$EXTERNALSYM ADL_CROSSDISPLAY_PLATFORM_LASSO}
-/// CROSSDISPLAY platform for docking station.
-const ADL_CROSSDISPLAY_PLATFORM_DOCKSTATION = (1 shl 2);
-{$EXTERNALSYM ADL_CROSSDISPLAY_PLATFORM_DOCKSTATION}
-/// @}
-
-/// \defgroup define_adapter_crossdisplay_option
-/// Used in ADL_Adapter_CrossdisplayInfoX2_Set function to indicate cross display options.
-/// @{
-/// Checking if 3D application is runnning. If yes, not to do switch, return ADL_OK_WAIT; otherwise do switch.
-const ADL_CROSSDISPLAY_OPTION_NONE = 0;
-{$EXTERNALSYM ADL_CROSSDISPLAY_OPTION_NONE}
-/// Force switching without checking for running 3D applications
-const ADL_CROSSDISPLAY_OPTION_FORCESWITCH = (1 shl 0);
-{$EXTERNALSYM ADL_CROSSDISPLAY_OPTION_FORCESWITCH}
-/// @}
-
-/// \defgroup define_adapter_states Adapter Capabilities
-/// These defines the capabilities supported by an adapter. It is used by \ref ADL_Adapter_ConfigureState_Get
-/// @{
-/// Indicates that the adapter is headless (i.e. no displays can be connected to it)
-const ADL_ADAPTERCONFIGSTATE_HEADLESS = ( 1 shl 2 );
-{$EXTERNALSYM ADL_ADAPTERCONFIGSTATE_HEADLESS}
-/// Indicates that the adapter is configured to define the main rendering capabilities. For example, adapters
-/// in Crossfire(TM) configuration, this bit would only be set on the adapter driving the display(s).
-const ADL_ADAPTERCONFIGSTATE_REQUISITE_RENDER = ( 1 shl 0 );
-{$EXTERNALSYM ADL_ADAPTERCONFIGSTATE_REQUISITE_RENDER}
-/// Indicates that the adapter is configured to be used to unload some of the rendering work for a particular
-/// requisite rendering adapter. For eample, for adapters in a Crossfire configuration, this bit would be set
-/// on all adapters that are currently not driving the display(s)
-const ADL_ADAPTERCONFIGSTATE_ANCILLARY_RENDER = ( 1 shl 1 );
-{$EXTERNALSYM ADL_ADAPTERCONFIGSTATE_ANCILLARY_RENDER}
-/// @}
-
-/// \defgroup define_controllermode_ulModifiers
-/// These defines the detailed actions supported by set viewport. It is used by \ref ADL_Display_ViewPort_Set
+///\defgroup define_dp12 For Display Port 1.2
/// @{
-/// Indicate that the viewport set will change the view position
-const ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION = $00000001;
-{$EXTERNALSYM ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION}
-/// Indicate that the viewport set will change the view PanLock
-const ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK = $00000002;
-{$EXTERNALSYM ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK}
-/// Indicate that the viewport set will change the view size
-const ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE = $00000008;
-{$EXTERNALSYM ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE}
-/// @}
-/// \defgroup defines for Mirabilis
-/// These defines are used for the Mirabilis feature
-/// @{
-///
-/// Indicates the maximum number of audio sample rates
-const ADL_MAX_AUDIO_SAMPLE_RATE_COUNT = 16;
-{$EXTERNALSYM ADL_MAX_AUDIO_SAMPLE_RATE_COUNT}
+/// Maximum Relative Address Link
+const
+ ADL_MAX_RAD_LINK_COUNT = 15;
+
+ /// @}
+
+ ///\defgroup defines_gamutspace Driver Supported Gamut Space
+ /// @{
+
+ /// The flags desribes that gamut is related to source or to destination and to overlay or to graphics
+ ADL_GAMUT_REFERENCE_SOURCE = (1 shl 0);
+ ADL_GAMUT_GAMUT_VIDEO_CONTENT = (1 shl 1);
+
+ /// The flags are used to describe the source of gamut and how read information from struct ADLGamutData
+ ADL_CUSTOM_WHITE_POINT = (1 shl 0);
+ ADL_CUSTOM_GAMUT = (1 shl 1);
+ ADL_GAMUT_REMAP_ONLY = (1 shl 2);
+
+ /// The define means the predefined gamut values .
+ ///Driver uses to find entry in the table and apply appropriate gamut space.
+ ADL_GAMUT_SPACE_CCIR_709 = (1 shl 0);
+ ADL_GAMUT_SPACE_CCIR_601 = (1 shl 1);
+ ADL_GAMUT_SPACE_ADOBE_RGB = (1 shl 2);
+ ADL_GAMUT_SPACE_CIE_RGB = (1 shl 3);
+ ADL_GAMUT_SPACE_CUSTOM = (1 shl 4);
+ ADL_GAMUT_SPACE_CCIR_2020 = (1 shl 5);
+ ADL_GAMUT_SPACE_APPCTRL = (1 shl 6);
+
+ /// Predefine white point values are structed similar to gamut .
+ ADL_WHITE_POINT_5000K = (1 shl 0);
+ ADL_WHITE_POINT_6500K = (1 shl 1);
+ ADL_WHITE_POINT_7500K = (1 shl 2);
+ ADL_WHITE_POINT_9300K = (1 shl 3);
+ ADL_WHITE_POINT_CUSTOM = (1 shl 4);
+
+ ///gamut and white point coordinates are from 0.0 -1.0 and divider is used to find the real value .
+ /// X float = X int /divider
+ ADL_GAMUT_WHITEPOINT_DIVIDER = 10000;
+
+ ///gamma a0 coefficient uses the following divider:
+ ADL_REGAMMA_COEFFICIENT_A0_DIVIDER = 10000000;
+ ///gamma a1 ,a2,a3 coefficients use the following divider:
+ ADL_REGAMMA_COEFFICIENT_A1A2A3_DIVIDER = 1000;
+
+ ///describes whether the coefficients are from EDID or custom user values.
+ ADL_EDID_REGAMMA_COEFFICIENTS = (1 shl 0);
+ ///Used for struct ADLRegamma. Feature if set use gamma ramp, if missing use regamma coefficents
+ ADL_USE_GAMMA_RAMP = (1 shl 4);
+ ///Used for struct ADLRegamma. If the gamma ramp flag is used then the driver could apply de gamma corretion to the supplied curve and this depends on this flag
+ ADL_APPLY_DEGAMMA = (1 shl 5);
+ ///specifies that standard SRGB gamma should be applied
+ ADL_EDID_REGAMMA_PREDEFINED_SRGB = (1 shl 1);
+ ///specifies that PQ gamma curve should be applied
+ ADL_EDID_REGAMMA_PREDEFINED_PQ = (1 shl 2);
+ ///specifies that PQ gamma curve should be applied, lower max nits
+ ADL_EDID_REGAMMA_PREDEFINED_PQ_2084_INTERIM = (1 shl 3);
+ ///specifies that 3.6 gamma should be applied
+ ADL_EDID_REGAMMA_PREDEFINED_36 = (1 shl 6);
+ ///specifies that BT709 gama should be applied
+ ADL_EDID_REGAMMA_PREDEFINED_BT709 = (1 shl 7);
+ ///specifies that regamma should be disabled, and application controls regamma content (of the whole screen)
+ ADL_EDID_REGAMMA_PREDEFINED_APPCTRL = (1 shl 8);
+
+ /// @}
+
+ /// \defgroup define_ddcinfo_pixelformats DDCInfo Pixel Formats
+ /// @{
+ /// defines for iPanelPixelFormat in struct ADLDDCInfo2
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB656 = $00000001;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB666 = $00000002;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB888 = $00000004;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB101010 = $00000008;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB161616 = $00000010;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED1 = $00000020;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED2 = $00000040;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_RGB_RESERVED3 = $00000080;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_XRGB_BIAS101010 = $00000100;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_8BPCC = $00000200;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_10BPCC = $00000400;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR444_12BPCC = $00000800;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_8BPCC = $00001000;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_10BPCC = $00002000;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR422_12BPCC = $00004000;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR420_8BPCC = $00008000;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR420_10BPCC = $00010000;
+ ADL_DISPLAY_DDCINFO_PIXEL_FORMAT_YCBCR420_12BPCC = $00020000;
+ /// @}
+
+ /// \defgroup define_source_content_TF ADLSourceContentAttributes transfer functions (gamma)
+ /// @{
+ /// defines for iTransferFunction in ADLSourceContentAttributes
+ ADL_TF_sRGB = $0001; ///< sRGB;
+ ADL_TF_BT709 = $0002; ///< BT.709;
+ ADL_TF_PQ2084 = $0004; ///< PQ2084;
+ ADL_TF_PQ2084_INTERIM = $0008; ///< PQ2084-Interim;
+ ADL_TF_LINEAR_0_1 = $0010; ///< Linear 0 - 1;
+ ADL_TF_LINEAR_0_125 = $0020; ///< Linear 0 - 125;
+ ADL_TF_DOLBYVISION = $0040; ///< DolbyVision;
+ ADL_TF_GAMMA_22 = $0080; ///< Plain 2.2 gamma curve;
+ /// @}
+
+ /// \defgroup define_source_content_CS ADLSourceContentAttributes color spaces
+ /// @{
+ /// defines for iColorSpace in ADLSourceContentAttributes
+ ADL_CS_sRGB = $0001; ///< sRGB;
+ ADL_CS_BT601 = $0002; ///< BT.601;
+ ADL_CS_BT709 = $0004; ///< BT.709;
+ ADL_CS_BT2020 = $0008; ///< BT.2020;
+ ADL_CS_ADOBE = $0010; ///< Adobe RGB;
+ ADL_CS_P3 = $0020; ///< DCI-P3;
+ ADL_CS_scRGB_MS_REF = $0040; ///< scRGB (MS Reference);
+ ADL_CS_DISPLAY_NATIVE = $0080; ///< Display Native;
+ ADL_CS_APP_CONTROL = $0100; ///< Application Controlled;
+ ADL_CS_DOLBYVISION = $0200; ///< DolbyVision;
+ /// @}
+
+ /// \defgroup define_HDR_support ADLDDCInfo2 HDR support options
+ /// @{
+ /// defines for iSupportedHDR in ADLDDCInfo2
+ ADL_HDR_CEA861_3 = $0001; ///< HDR10/CEA861.3 HDR supported;
+ ADL_HDR_DOLBYVISION = $0002; ///< DolbyVision HDR supported;
+ ADL_HDR_FREESYNC_HDR = $0004; ///< FreeSync HDR supported;
+ /// @}
+
+ /// \defgroup define_FreesyncFlags ADLDDCInfo2 Freesync HDR flags
+ /// @{
+ /// defines for iFreesyncFlags in ADLDDCInfo2
+ ADL_HDR_FREESYNC_BACKLIGHT_SUPPORT = $0001; ///< Backlight supported;
+ /// @}
+
+ /// \defgroup define_dbd_state Deep Bit Depth
+ /// @{
+
+ /// defines for ADL_Workstation_DeepBitDepth_Get and ADL_Workstation_DeepBitDepth_Set functions
+ // This value indicates that the deep bit depth state is forced off
+ ADL_DEEPBITDEPTH_FORCEOFF = 0;
+ /// This value indicates that the deep bit depth state is set to auto, the driver will automatically enable the
+ /// appropriate deep bit depth state depending on what connected display supports.
+ ADL_DEEPBITDEPTH_10BPP_AUTO = 1;
+ /// This value indicates that the deep bit depth state is forced on to 10 bits per pixel, this is regardless if the display
+ /// supports 10 bpp.
+ ADL_DEEPBITDEPTH_10BPP_FORCEON = 2;
+
+ /// defines for ADLAdapterConfigMemory of ADL_Adapter_ConfigMemory_Get
+ /// If this bit is set, it indicates that the Deep Bit Depth pixel is set on the display
+ ADL_ADAPTER_CONFIGMEMORY_DBD = (1 shl 0);
+ /// If this bit is set, it indicates that the display is rotated (90, 180 or 270)
+ ADL_ADAPTER_CONFIGMEMORY_ROTATE = (1 shl 1);
+ /// If this bit is set, it indicates that passive stereo is set on the display
+ ADL_ADAPTER_CONFIGMEMORY_STEREO_PASSIVE = (1 shl 2);
+ /// If this bit is set, it indicates that the active stereo is set on the display
+ ADL_ADAPTER_CONFIGMEMORY_STEREO_ACTIVE = (1 shl 3);
+ /// If this bit is set, it indicates that the tear free vsync is set on the display
+ ADL_ADAPTER_CONFIGMEMORY_ENHANCEDVSYNC = (1 shl 4);
+ ADL_ADAPTER_CONFIGMEMORY_TEARFREEVSYNC = (1 shl 4);
+ /// @}
+
+ /// \defgroup define_adl_validmemoryrequiredfields Memory Type
+ /// @{
+
+ /// This group defines memory types in ADLMemoryRequired struct \n
+ /// Indicates that this is the visible memory
+ ADL_MEMORYREQTYPE_VISIBLE = (1 shl 0);
+ /// Indicates that this is the invisible memory.
+ ADL_MEMORYREQTYPE_INVISIBLE = (1 shl 1);
+ /// Indicates that this is amount of visible memory per GPU that should be reserved for all other allocations.
+ ADL_MEMORYREQTYPE_GPURESERVEDVISIBLE = (1 shl 2);
+ /// @}
+
+ /// \defgroup define_adapter_tear_free_status
+ /// Used in ADL_Adapter_TEAR_FREE_Set and ADL_Adapter_TFD_Get functions to indicate the tear free
+ /// desktop status.
+ /// @{
+ /// Tear free desktop is enabled.
+ ADL_ADAPTER_TEAR_FREE_ON = 1;
+ /// Tear free desktop can't be enabled due to a lack of graphic adapter memory.
+ ADL_ADAPTER_TEAR_FREE_NOTENOUGHMEM = -1;
+ /// Tear free desktop can't be enabled due to quad buffer stereo being enabled.
+ ADL_ADAPTER_TEAR_FREE_OFF_ERR_QUADBUFFERSTEREO = -2;
+ /// Tear free desktop can't be enabled due to MGPU-SLS being enabled.
+ ADL_ADAPTER_TEAR_FREE_OFF_ERR_MGPUSLD = -3;
+ /// Tear free desktop is disabled.
+ ADL_ADAPTER_TEAR_FREE_OFF = 0;
+ /// @}
+
+ /// \defgroup define_adapter_crossdisplay_platforminfo
+ /// Used in ADL_Adapter_CrossDisplayPlatformInfo_Get function to indicate the Crossdisplay platform info.
+ /// @{
+ /// CROSSDISPLAY platform.
+ ADL_CROSSDISPLAY_PLATFORM = (1 shl 0);
+ /// CROSSDISPLAY platform for Lasso station.
+ ADL_CROSSDISPLAY_PLATFORM_LASSO = (1 shl 1);
+ /// CROSSDISPLAY platform for docking station.
+ ADL_CROSSDISPLAY_PLATFORM_DOCKSTATION = (1 shl 2);
+ /// @}
+
+ /// \defgroup define_adapter_crossdisplay_option
+ /// Used in ADL_Adapter_CrossdisplayInfoX2_Set function to indicate cross display options.
+ /// @{
+ /// Checking if 3D application is runnning. If yes, not to do switch, return ADL_OK_WAIT; otherwise do switch.
+ ADL_CROSSDISPLAY_OPTION_NONE = 0;
+ /// Force switching without checking for running 3D applications
+ ADL_CROSSDISPLAY_OPTION_FORCESWITCH = (1 shl 0);
+ /// @}
+
+ /// \defgroup define_adapter_states Adapter Capabilities
+ /// These defines the capabilities supported by an adapter. It is used by \ref ADL_Adapter_ConfigureState_Get
+ /// @{
+ /// Indicates that the adapter is headless (i.e. no displays can be connected to it)
+ ADL_ADAPTERCONFIGSTATE_HEADLESS = (1 shl 2);
+ /// Indicates that the adapter is configured to define the main rendering capabilities. For example, adapters
+ /// in Crossfire(TM) configuration, this bit would only be set on the adapter driving the display(s).
+ ADL_ADAPTERCONFIGSTATE_REQUISITE_RENDER = (1 shl 0);
+ /// Indicates that the adapter is configured to be used to unload some of the rendering work for a particular
+ /// requisite rendering adapter. For eample, for adapters in a Crossfire configuration, this bit would be set
+ /// on all adapters that are currently not driving the display(s)
+ ADL_ADAPTERCONFIGSTATE_ANCILLARY_RENDER = (1 shl 1);
+ /// Indicates that scatter gather feature enabled on the adapter
+ ADL_ADAPTERCONFIGSTATE_SCATTERGATHER = (1 shl 4);
+ /// @}
+
+ /// \defgroup define_controllermode_ulModifiers
+ /// These defines the detailed actions supported by set viewport. It is used by \ref ADL_Display_ViewPort_Set
+ /// @{
+ /// Indicate that the viewport set will change the view position
+ ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION = $00000001;
+ /// Indicate that the viewport set will change the view PanLock
+ ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK = $00000002;
+ /// Indicate that the viewport set will change the view size
+ ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE = $00000008;
+ /// @}
+
+ /// \defgroup defines for Mirabilis
+ /// These defines are used for the Mirabilis feature
+ /// @{
+ ///
+ /// Indicates the maximum number of audio sample rates
+ ADL_MAX_AUDIO_SAMPLE_RATE_COUNT = 16;
/// @}
///////////////////////////////////////////////////////////////////////////
// ADLMultiChannelSplitStateFlag Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADLMultiChannelSplit_Unitialized = 0;
-const ADLMultiChannelSplit_Disabled = 1;
-const ADLMultiChannelSplit_Enabled = 2;
-const ADLMultiChannelSplit_SaveProfile = 3;
-
type
- ADLMultiChannelSplitStateFlag = ADLMultiChannelSplit_Unitialized..ADLMultiChannelSplit_SaveProfile;
- {$EXTERNALSYM ADLMultiChannelSplitStateFlag}
-
+ ADLMultiChannelSplitStateFlag = (
+ ADLMultiChannelSplit_Unitialized = 0,
+ ADLMultiChannelSplit_Disabled = 1,
+ ADLMultiChannelSplit_Enabled = 2,
+ ADLMultiChannelSplit_SaveProfile = 3);
///////////////////////////////////////////////////////////////////////////
// ADLSampleRate Enumeration
///////////////////////////////////////////////////////////////////////////
-const ADLSampleRate_32KHz =0;
-const ADLSampleRate_44P1KHz = 0;
-const ADLSampleRate_48KHz = 1;
-const ADLSampleRate_88P2KHz = 2;
-const ADLSampleRate_96KHz = 3;
-const ADLSampleRate_176P4KHz = 4;
-const ADLSampleRate_192KHz = 5;
-const ADLSampleRate_384KHz = 6; //DP1.2
-const ADLSampleRate_768KHz = 7; //DP1.2
-const ADLSampleRate_Undefined = 8;
-
type
- ADLSampleRate = ADLSampleRate_32KHz..ADLSampleRate_Undefined;
- {$EXTERNALSYM ADLSampleRate}
-
-
-/// \defgroup define_overdrive6_capabilities
+ ADLSampleRate = (
+ ADLSampleRate_32KHz = 0,
+ ADLSampleRate_44P1KHz,
+ ADLSampleRate_48KHz,
+ ADLSampleRate_88P2KHz,
+ ADLSampleRate_96KHz,
+ ADLSampleRate_176P4KHz,
+ ADLSampleRate_192KHz,
+ ADLSampleRate_384KHz, //DP1.2;
+ ADLSampleRate_768KHz, //DP1.2;
+ ADLSampleRate_Undefined);
+
+/// \defgroup define_overdrive6_capabilities
/// These defines the capabilities supported by Overdrive 6. It is used by \ref ADL_Overdrive6_Capabilities_Get
// @{
/// Indicate that core (engine) clock can be changed.
-const ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION = $00000001;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION}
-/// Indicate that memory clock can be changed.
-const ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION = $00000002;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION}
-/// Indicate that graphics activity reporting is supported.
-const ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR = $00000004;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR}
-/// Indicate that power limit can be customized.
-const ADL_OD6_CAPABILITY_POWER_CONTROL = $00000008;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_POWER_CONTROL}
-/// Indicate that SVI2 Voltage Control is supported.
-const ADL_OD6_CAPABILITY_VOLTAGE_CONTROL = $00000010;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_VOLTAGE_CONTROL}
-/// Indicate that OD6+ percentage adjustment is supported.
-const ADL_OD6_CAPABILITY_PERCENT_ADJUSTMENT = $00000020;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_PERCENT_ADJUSTMENT}
-/// Indicate that Thermal Limit Unlock is supported.
-const ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK = $00000040;
-{$EXTERNALSYM ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK}
+const
+ ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION = $00000001;
+ /// Indicate that memory clock can be changed.
+ ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION = $00000002;
+ /// Indicate that graphics activity reporting is supported.
+ ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR = $00000004;
+ /// Indicate that power limit can be customized.
+ ADL_OD6_CAPABILITY_POWER_CONTROL = $00000008;
+ /// Indicate that SVI2 Voltage Control is supported.
+ ADL_OD6_CAPABILITY_VOLTAGE_CONTROL = $00000010;
+ /// Indicate that OD6+ percentage adjustment is supported.
+ ADL_OD6_CAPABILITY_PERCENT_ADJUSTMENT = $00000020;
+ /// Indicate that Thermal Limit Unlock is supported.
+ ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK = $00000040;
+ ///Indicate that Fan speed needs to be displayed in RPM
+ ADL_OD6_CAPABILITY_FANSPEED_IN_RPM = $00000080;
+ // @}
+
+ /// \defgroup define_overdrive6_supported_states
+ /// These defines the power states supported by Overdrive 6. It is used by \ref ADL_Overdrive6_Capabilities_Get
+ // @{
+ /// Indicate that overdrive is supported in the performance state. This is currently the only state supported.
+ ADL_OD6_SUPPORTEDSTATE_PERFORMANCE = $00000001;
+ /// Do not use. Reserved for future use.
+ ADL_OD6_SUPPORTEDSTATE_POWER_SAVING = $00000002;
+ // @}
+
+ /// \defgroup define_overdrive6_getstateinfo
+ /// These defines the power states to get information about. It is used by \ref ADL_Overdrive6_StateInfo_Get
+ // @{
+ /// Get default clocks for the performance state.
+ ADL_OD6_GETSTATEINFO_DEFAULT_PERFORMANCE = $00000001;
+ /// Do not use. Reserved for future use.
+ ADL_OD6_GETSTATEINFO_DEFAULT_POWER_SAVING = $00000002;
+ /// Get clocks for current state. Currently this is the same as \ref ADL_OD6_GETSTATEINFO_CUSTOM_PERFORMANCE
+ /// since only performance state is supported.
+ ADL_OD6_GETSTATEINFO_CURRENT = $00000003;
+ /// Get the modified clocks (if any) for the performance state. If clocks were not modified
+ /// through Overdrive 6, then this will return the same clocks as \ref ADL_OD6_GETSTATEINFO_DEFAULT_PERFORMANCE.
+ ADL_OD6_GETSTATEINFO_CUSTOM_PERFORMANCE = $00000004;
+ /// Do not use. Reserved for future use.
+ ADL_OD6_GETSTATEINFO_CUSTOM_POWER_SAVING = $00000005;
+ // @}
+
+ /// \defgroup define_overdrive6_getstate and define_overdrive6_getmaxclockadjust
+ /// These defines the power states to get information about. It is used by \ref ADL_Overdrive6_StateEx_Get and \ref ADL_Overdrive6_MaxClockAdjust_Get
+ // @{
+ /// Get default clocks for the performance state. Only performance state is currently supported.
+ ADL_OD6_STATE_PERFORMANCE = $00000001;
+ // @}
+
+ /// \defgroup define_overdrive6_setstate
+ /// These define which power state to set customized clocks on. It is used by \ref ADL_Overdrive6_State_Set
+ // @{
+ /// Set customized clocks for the performance state.
+ ADL_OD6_SETSTATE_PERFORMANCE = $00000001;
+ /// Do not use. Reserved for future use.
+ ADL_OD6_SETSTATE_POWER_SAVING = $00000002;
+ // @}
+
+ /// \defgroup define_overdrive6_thermalcontroller_caps
+ /// These defines the capabilities of the GPU thermal controller. It is used by \ref ADL_Overdrive6_ThermalController_Caps
+ // @{
+ /// GPU thermal controller is supported.
+ ADL_OD6_TCCAPS_THERMAL_CONTROLLER = $00000001;
+ /// GPU fan speed control is supported.
+ ADL_OD6_TCCAPS_FANSPEED_CONTROL = $00000002;
+ /// Fan speed percentage can be read.
+ ADL_OD6_TCCAPS_FANSPEED_PERCENT_READ = $00000100;
+ /// Fan speed can be set by specifying a percentage value.
+ ADL_OD6_TCCAPS_FANSPEED_PERCENT_WRITE = $00000200;
+ /// Fan speed RPM (revolutions-per-minute) can be read.
+ ADL_OD6_TCCAPS_FANSPEED_RPM_READ = $00000400;
+ /// Fan speed can be set by specifying an RPM value.
+ ADL_OD6_TCCAPS_FANSPEED_RPM_WRITE = $00000800;
+ // @}
+
+ /// \defgroup define_overdrive6_fanspeed_type
+ /// These defines the fan speed type being reported. It is used by \ref ADL_Overdrive6_FanSpeed_Get
+ // @{
+ /// Fan speed reported in percentage.
+ ADL_OD6_FANSPEED_TYPE_PERCENT = $00000001;
+ /// Fan speed reported in RPM.
+ ADL_OD6_FANSPEED_TYPE_RPM = $00000002;
+ /// Fan speed has been customized by the user, and fan is not running in automatic mode.
+ ADL_OD6_FANSPEED_USER_DEFINED = $00000100;
+ // @}
+
+ /// \defgroup define_overdrive_EventCounter_type
+ /// These defines the EventCounter type being reported. It is used by \ref ADL2_OverdriveN_CountOfEvents_Get ,can be used on older OD version supported ASICs also.
+ // @{
+ ADL_ODN_EVENTCOUNTER_THERMAL = 0;
+ ADL_ODN_EVENTCOUNTER_VPURECOVERY = 1;
// @}
-/// \defgroup define_overdrive6_supported_states
-/// These defines the power states supported by Overdrive 6. It is used by \ref ADL_Overdrive6_Capabilities_Get
-// @{
-/// Indicate that overdrive is supported in the performance state. This is currently the only state supported.
-const ADL_OD6_SUPPORTEDSTATE_PERFORMANCE = $00000001;
-{$EXTERNALSYM ADL_OD6_SUPPORTEDSTATE_PERFORMANCE}
-/// Do not use. Reserved for future use.
-const ADL_OD6_SUPPORTEDSTATE_POWER_SAVING = $00000002;
-{$EXTERNALSYM ADL_OD6_SUPPORTEDSTATE_POWER_SAVING}
-// @}
+///////////////////////////////////////////////////////////////////////////
+// ADLODNControlType Enumeration
+///////////////////////////////////////////////////////////////////////////
+type
+ ADLODNControlType = (
+ ODNControlType_Current = 0,
+ ODNControlType_Default,
+ ODNControlType_Auto,
+ ODNControlType_Manual);
-/// \defgroup define_overdrive6_getstateinfo
-/// These defines the power states to get information about. It is used by \ref ADL_Overdrive6_StateInfo_Get
+/// \defgroup define_ecc_mode_states
+/// These defines the ECC(Error Correction Code) state. It is used by \ref ADL_Workstation_ECC_Get,ADL_Workstation_ECC_Set
// @{
-/// Get default clocks for the performance state.
-const ADL_OD6_GETSTATEINFO_DEFAULT_PERFORMANCE = $00000001;
-{$EXTERNALSYM ADL_OD6_GETSTATEINFO_DEFAULT_PERFORMANCE}
-/// Do not use. Reserved for future use.
-const ADL_OD6_GETSTATEINFO_DEFAULT_POWER_SAVING = $00000002;
-{$EXTERNALSYM ADL_OD6_GETSTATEINFO_DEFAULT_POWER_SAVING}
-/// Get clocks for current state. Currently this is the same as \ref ADL_OD6_GETSTATEINFO_CUSTOM_PERFORMANCE
-/// since only performance state is supported.
-const ADL_OD6_GETSTATEINFO_CURRENT = $00000003;
-{$EXTERNALSYM ADL_OD6_GETSTATEINFO_CURRENT}
-/// Get the modified clocks (if any) for the performance state. If clocks were not modified
-/// through Overdrive 6, then this will return the same clocks as \ref ADL_OD6_GETSTATEINFO_DEFAULT_PERFORMANCE.
-const ADL_OD6_GETSTATEINFO_CUSTOM_PERFORMANCE = $00000004;
-{$EXTERNALSYM ADL_OD6_GETSTATEINFO_CUSTOM_PERFORMANCE}
-/// Do not use. Reserved for future use.
-const ADL_OD6_GETSTATEINFO_CUSTOM_POWER_SAVING = $00000005;
-{$EXTERNALSYM ADL_OD6_GETSTATEINFO_CUSTOM_POWER_SAVING}
-// @}
+/// Error Correction is OFF.
+const
+ ECC_MODE_OFF = 0;
+ /// Error Correction is ECCV2.
+ ECC_MODE_ON = 2;
+ /// Error Correction is HBM.
+ ECC_MODE_HBM = 3;
+ // @}
+
+ /// \defgroup define_board_layout_flags
+ /// These defines are the board layout flags state which indicates what are the valid properties of \ref ADLBoardLayoutInfo . It is used by \ref ADL_Adapter_BoardLayout_Get
+ // @{
+ /// Indicates the number of slots is valid.
+ ADL_BLAYOUT_VALID_NUMBER_OF_SLOTS = $1;
+ /// Indicates the slot sizes are valid. Size of the slot consists of the length and width.
+ ADL_BLAYOUT_VALID_SLOT_SIZES = $2;
+ /// Indicates the connector offsets are valid.
+ ADL_BLAYOUT_VALID_CONNECTOR_OFFSETS = $4;
+ /// Indicates the connector lengths is valid.
+ ADL_BLAYOUT_VALID_CONNECTOR_LENGTHS = $8;
+ // @}
+
+ /// \defgroup define_max_constants
+ /// These defines are the maximum value constants.
+ // @{
+ /// Indicates the Maximum supported slots on board.
+ ADL_ADAPTER_MAX_SLOTS = 4;
+ /// Indicates the Maximum supported connectors on slot.
+ ADL_ADAPTER_MAX_CONNECTORS = 10;
+ /// Indicates the Maximum supported properties of connection
+ ADL_MAX_CONNECTION_TYPES = 32;
+ /// Indicates the Maximum relative address link count.
+ ADL_MAX_RELATIVE_ADDRESS_LINK_COUNT = 15;
+ /// Indicates the Maximum size of EDID data block size
+ ADL_MAX_DISPLAY_EDID_DATA_SIZE = 1024;
+ /// Indicates the Maximum count of Error Records.
+ ADL_MAX_ERROR_RECORDS_COUNT = 256;
+ /// Indicates the maximum number of power states supported
+ ADL_MAX_POWER_POLICY = 6;
+ // @}
+
+ /// \defgroup define_connection_types
+ /// These defines are the connection types constants which indicates what are the valid connection type of given connector. It is used by \ref ADL_Adapter_SupportedConnections_Get
+ // @{
+ /// Indicates the VGA connection type is valid.
+ ADL_CONNECTION_TYPE_VGA = 0;
+ /// Indicates the DVI_I connection type is valid.
+ ADL_CONNECTION_TYPE_DVI = 1;
+ /// Indicates the DVI_SL connection type is valid.
+ ADL_CONNECTION_TYPE_DVI_SL = 2;
+ /// Indicates the HDMI connection type is valid.
+ ADL_CONNECTION_TYPE_HDMI = 3;
+ /// Indicates the DISPLAY PORT connection type is valid.
+ ADL_CONNECTION_TYPE_DISPLAY_PORT = 4;
+ /// Indicates the Active dongle DP->DVI(single link) connection type is valid.
+ ADL_CONNECTION_TYPE_ACTIVE_DONGLE_DP_DVI_SL = 5;
+ /// Indicates the Active dongle DP->DVI(double link) connection type is valid.
+ ADL_CONNECTION_TYPE_ACTIVE_DONGLE_DP_DVI_DL = 6;
+ /// Indicates the Active dongle DP->HDMI connection type is valid.
+ ADL_CONNECTION_TYPE_ACTIVE_DONGLE_DP_HDMI = 7;
+ /// Indicates the Active dongle DP->VGA connection type is valid.
+ ADL_CONNECTION_TYPE_ACTIVE_DONGLE_DP_VGA = 8;
+ /// Indicates the Passive dongle DP->HDMI connection type is valid.
+ ADL_CONNECTION_TYPE_PASSIVE_DONGLE_DP_HDMI = 9;
+ /// Indicates the Active dongle DP->VGA connection type is valid.
+ ADL_CONNECTION_TYPE_PASSIVE_DONGLE_DP_DVI = 10;
+ /// Indicates the MST type is valid.
+ ADL_CONNECTION_TYPE_MST = 11;
+ /// Indicates the active dongle, all types.
+ ADL_CONNECTION_TYPE_ACTIVE_DONGLE = 12;
+ /// Indicates the Virtual Connection Type.
+ ADL_CONNECTION_TYPE_VIRTUAL = 13;
+ /// Macros for generating bitmask from index.
+ // ADL_CONNECTION_BITMAST_FROM_INDEX[index] = (1 shl index); OOPS
+ // @}
+
+ /// \defgroup define_connection_properties
+ /// These defines are the connection properties which indicates what are the valid properties of given connection type. It is used by \ref ADL_Adapter_SupportedConnections_Get
+ // @{
+ /// Indicates the property Bitrate is valid.
+ ADL_CONNECTION_PROPERTY_BITRATE = $1;
+ /// Indicates the property number of lanes is valid.
+ ADL_CONNECTION_PROPERTY_NUMBER_OF_LANES = $2;
+ /// Indicates the property 3D caps is valid.
+ ADL_CONNECTION_PROPERTY_3DCAPS = $4;
+ /// Indicates the property output bandwidth is valid.
+ ADL_CONNECTION_PROPERTY_OUTPUT_BANDWIDTH = $8;
+ /// Indicates the property colordepth is valid.
+ ADL_CONNECTION_PROPERTY_COLORDEPTH = $10;
+ // @}
+
+ /// \defgroup define_lanecount_constants
+ /// These defines are the Lane count constants which will be used in DP & etc.
+ // @{
+ /// Indicates if lane count is unknown
+ ADL_LANECOUNT_UNKNOWN = 0;
+ /// Indicates if lane count is 1
+ ADL_LANECOUNT_ONE = 1;
+ /// Indicates if lane count is 2
+ ADL_LANECOUNT_TWO = 2;
+ /// Indicates if lane count is 4
+ ADL_LANECOUNT_FOUR = 4;
+ /// Indicates if lane count is 8
+ ADL_LANECOUNT_EIGHT = 8;
+ /// Indicates default value of lane count
+ ADL_LANECOUNT_DEF = ADL_LANECOUNT_FOUR;
+ // @}
+
+ /// \defgroup define_linkrate_constants
+ /// These defines are the link rate constants which will be used in DP & etc.
+ // @{
+ /// Indicates if link rate is unknown
+ ADL_LINK_BITRATE_UNKNOWN = 0;
+ /// Indicates if link rate is 1.62Ghz
+ ADL_LINK_BITRATE_1_62_GHZ = $06;
+ /// Indicates if link rate is 2.7Ghz
+ ADL_LINK_BITRATE_2_7_GHZ = $0A;
+ /// Indicates if link rate is 3.24Ghz
+ ADL_LINK_BTIRATE_3_24_GHZ = $0C;
+ /// Indicates if link rate is 5.4Ghz
+ ADL_LINK_BITRATE_5_4_GHZ = $14;
+ /// Indicates default value of link rate
+ ADL_LINK_BITRATE_DEF = ADL_LINK_BITRATE_2_7_GHZ;
+ // @}
+
+ /// \defgroup define_colordepth_constants
+ /// These defines are the color depth constants which will be used in DP & etc.
+ // @{
+ ADL_CONNPROP_S3D_ALTERNATE_TO_FRAME_PACK = $00000001;
+ // @}
+
+ /// \defgroup define_colordepth_constants
+ /// These defines are the color depth constants which will be used in DP & etc.
+ // @{
+ /// Indicates if color depth is unknown
+ ADL_COLORDEPTH_UNKNOWN = 0;
+ /// Indicates if color depth is 666
+ ADL_COLORDEPTH_666 = 1;
+ /// Indicates if color depth is 888
+ ADL_COLORDEPTH_888 = 2;
+ /// Indicates if color depth is 101010
+ ADL_COLORDEPTH_101010 = 3;
+ /// Indicates if color depth is 121212
+ ADL_COLORDEPTH_121212 = 4;
+ /// Indicates if color depth is 141414
+ ADL_COLORDEPTH_141414 = 5;
+ /// Indicates if color depth is 161616
+ ADL_COLORDEPTH_161616 = 6;
+ /// Indicates default value of color depth
+ ADL_COLOR_DEPTH_DEF = ADL_COLORDEPTH_888;
+ // @}
+
+ /// \defgroup define_emulation_status
+ /// These defines are the status of emulation
+ // @{
+ /// Indicates if real device is connected.
+ ADL_EMUL_STATUS_REAL_DEVICE_CONNECTED = $1;
+ /// Indicates if emulated device is presented.
+ ADL_EMUL_STATUS_EMULATED_DEVICE_PRESENT = $2;
+ /// Indicates if emulated device is used.
+ ADL_EMUL_STATUS_EMULATED_DEVICE_USED = $4;
+ /// In case when last active real/emulated device used (when persistence is enabled but no emulation enforced then persistence will use last connected/emulated device).
+ ADL_EMUL_STATUS_LAST_ACTIVE_DEVICE_USED = $8;
+ // @}
+
+ /// \defgroup define_emulation_mode
+ /// These defines are the modes of emulation
+ // @{
+ /// Indicates if no emulation is used
+ ADL_EMUL_MODE_OFF = 0;
+ /// Indicates if emulation is used when display connected
+ ADL_EMUL_MODE_ON_CONNECTED = 1;
+ /// Indicates if emulation is used when display dis connected
+ ADL_EMUL_MODE_ON_DISCONNECTED = 2;
+ /// Indicates if emulation is used always
+ ADL_EMUL_MODE_ALWAYS = 3;
+ // @}
+
+ /// \defgroup define_emulation_query
+ /// These defines are the modes of emulation
+ // @{
+ /// Indicates Data from real device
+ ADL_QUERY_REAL_DATA = 0;
+ /// Indicates Emulated data
+ ADL_QUERY_EMULATED_DATA = 1;
+ /// Indicates Data currently in use
+ ADL_QUERY_CURRENT_DATA = 2;
+ // @}
+
+ /// \defgroup define_persistence_state
+ /// These defines are the states of persistence
+ // @{
+ /// Indicates persistence is disabled
+ ADL_EDID_PERSISTANCE_DISABLED = 0;
+ /// Indicates persistence is enabled
+ ADL_EDID_PERSISTANCE_ENABLED = 1;
+ // @}
+
+ /// \defgroup define_connector_types Connector Type
+ /// defines for ADLConnectorInfo.iType
+ // @{
+ /// Indicates unknown Connector type
+ ADL_CONNECTOR_TYPE_UNKNOWN = 0;
+ /// Indicates VGA Connector type
+ ADL_CONNECTOR_TYPE_VGA = 1;
+ /// Indicates DVI-D Connector type
+ ADL_CONNECTOR_TYPE_DVI_D = 2;
+ /// Indicates DVI-I Connector type
+ ADL_CONNECTOR_TYPE_DVI_I = 3;
+ /// Indicates Active Dongle-NA Connector type
+ ADL_CONNECTOR_TYPE_ATICVDONGLE_NA = 4;
+ /// Indicates Active Dongle-JP Connector type
+ ADL_CONNECTOR_TYPE_ATICVDONGLE_JP = 5;
+ /// Indicates Active Dongle-NONI2C Connector type
+ ADL_CONNECTOR_TYPE_ATICVDONGLE_NONI2C = 6;
+ /// Indicates Active Dongle-NONI2C-D Connector type
+ ADL_CONNECTOR_TYPE_ATICVDONGLE_NONI2C_D = 7;
+ /// Indicates HDMI-Type A Connector type
+ ADL_CONNECTOR_TYPE_HDMI_TYPE_A = 8;
+ /// Indicates HDMI-Type B Connector type
+ ADL_CONNECTOR_TYPE_HDMI_TYPE_B = 9;
+ /// Indicates Display port Connector type
+ ADL_CONNECTOR_TYPE_DISPLAYPORT = 10;
+ /// Indicates EDP Connector type
+ ADL_CONNECTOR_TYPE_EDP = 11;
+ /// Indicates MiniDP Connector type
+ ADL_CONNECTOR_TYPE_MINI_DISPLAYPORT = 12;
+ /// Indicates Virtual Connector type
+ ADL_CONNECTOR_TYPE_VIRTUAL = 13;
+ // @}
+
+ /// \defgroup define_freesync_usecase
+ /// These defines are to specify use cases in which FreeSync should be enabled
+ /// They are a bit mask. To specify FreeSync for more than one use case, the input value
+ /// should be set to include multiple bits set
+ // @{
+ /// Indicates FreeSync is enabled for Static Screen case
+ ADL_FREESYNC_USECASE_STATIC = $1;
+ /// Indicates FreeSync is enabled for Video use case
+ ADL_FREESYNC_USECASE_VIDEO = $2;
+ /// Indicates FreeSync is enabled for Gaming use case
+ ADL_FREESYNC_USECASE_GAMING = $4;
+ // @}
+
+ /// \defgroup define_freesync_caps
+ /// These defines are used to retrieve FreeSync display capabilities.
+ /// GPU support flag also indicates whether the display is
+ /// connected to a GPU that actually supports FreeSync
+ // @{
+ ADL_FREESYNC_CAP_SUPPORTED = (1 shl 0);
+ ADL_FREESYNC_CAP_GPUSUPPORTED = (1 shl 1);
+ ADL_FREESYNC_CAP_DISPLAYSUPPORTED = (1 shl 2);
+ ADL_FREESYNC_CAP_CURRENTMODESUPPORTED = (1 shl 3);
+ ADL_FREESYNC_CAP_NOCFXORCFXSUPPORTED = (1 shl 4);
+ ADL_FREESYNC_CAP_NOGENLOCKORGENLOCKSUPPORTED = (1 shl 5);
+ ADL_FREESYNC_CAP_BORDERLESSWINDOWSUPPORTED = (1 shl 6);
+ // @}
+
+ /// \defgroup define_MST_CommandLine_execute
+ // @{
+ /// Indicates the MST command line for branch message if the bit is set. Otherwise, it is display message
+ ADL_MST_COMMANDLINE_PATH_MSG = $1;
+ /// Indicates the MST command line to send message in broadcast way it the bit is set
+ ADL_MST_COMMANDLINE_BROADCAST = $2;
+
+ // @}
+
+ /// \defgroup define_Adapter_CloneTypes_Get
+ // @{
+ /// Indicates there is crossGPU clone with non-AMD dispalys
+ ADL_CROSSGPUDISPLAYCLONE_AMD_WITH_NONAMD = $1;
+ /// Indicates there is crossGPU clone
+ ADL_CROSSGPUDISPLAYCLONE = $2;
-/// \defgroup define_overdrive6_getstate and define_overdrive6_getmaxclockadjust
-/// These defines the power states to get information about. It is used by \ref ADL_Overdrive6_StateEx_Get and \ref ADL_Overdrive6_MaxClockAdjust_Get
-// @{
-/// Get default clocks for the performance state. Only performance state is currently supported.
-const ADL_OD6_STATE_PERFORMANCE = $00000001;
-{$EXTERNALSYM ADL_OD6_STATE_PERFORMANCE}
// @}
-/// \defgroup define_overdrive6_setstate
-/// These define which power state to set customized clocks on. It is used by \ref ADL_Overdrive6_State_Set
-// @{
-/// Set customized clocks for the performance state.
-const ADL_OD6_SETSTATE_PERFORMANCE = $00000001;
-{$EXTERNALSYM ADL_OD6_SETSTATE_PERFORMANCE}
-/// Do not use. Reserved for future use.
-const ADL_OD6_SETSTATE_POWER_SAVING = $00000002;
-{$EXTERNALSYM ADL_OD6_SETSTATE_POWER_SAVING}
-// @}
+// End Bracket for Constants and Definitions. Add new groups ABOVE this line!
-/// \defgroup define_overdrive6_thermalcontroller_caps
-/// These defines the capabilities of the GPU thermal controller. It is used by \ref ADL_Overdrive6_ThermalController_Caps
-// @{
-/// GPU thermal controller is supported.
-const ADL_OD6_TCCAPS_THERMAL_CONTROLLER = $00000001;
-{$EXTERNALSYM ADL_OD6_TCCAPS_THERMAL_CONTROLLER}
-/// GPU fan speed control is supported.
-const ADL_OD6_TCCAPS_FANSPEED_CONTROL = $00000002;
-{$EXTERNALSYM ADL_OD6_TCCAPS_FANSPEED_CONTROL}
-/// Fan speed percentage can be read.
-const ADL_OD6_TCCAPS_FANSPEED_PERCENT_READ = $00000100;
-{$EXTERNALSYM ADL_OD6_TCCAPS_FANSPEED_PERCENT_READ}
-/// Fan speed can be set by specifying a percentage value.
-const ADL_OD6_TCCAPS_FANSPEED_PERCENT_WRITE = $00000200;
-{$EXTERNALSYM ADL_OD6_TCCAPS_FANSPEED_PERCENT_WRITE}
-/// Fan speed RPM (revolutions-per-minute) can be read.
-const ADL_OD6_TCCAPS_FANSPEED_RPM_READ = $00000400;
-{$EXTERNALSYM ADL_OD6_TCCAPS_FANSPEED_RPM_READ}
-/// Fan speed can be set by specifying an RPM value.
-const ADL_OD6_TCCAPS_FANSPEED_RPM_WRITE = $00000800;
-{$EXTERNALSYM ADL_OD6_TCCAPS_FANSPEED_RPM_WRITE}
// @}
-/// \defgroup define_overdrive6_fanspeed_type
-/// These defines the fan speed type being reported. It is used by \ref ADL_Overdrive6_FanSpeed_Get
-// @{
-/// Fan speed reported in percentage.
-const ADL_OD6_FANSPEED_TYPE_PERCENT = $00000001;
-{$EXTERNALSYM ADL_OD6_FANSPEED_TYPE_PERCENT}
-/// Fan speed reported in RPM.
-const ADL_OD6_FANSPEED_TYPE_RPM = $00000002;
-{$EXTERNALSYM ADL_OD6_FANSPEED_TYPE_RPM}
-/// Fan speed has been customized by the user, and fan is not running in automatic mode.
-const ADL_OD6_FANSPEED_USER_DEFINED = $00000100;
-{$EXTERNALSYM ADL_OD6_FANSPEED_USER_DEFINED}
-// @}
+const
+ ADL_PMLOG_MAX_SENSORS = 256;
-/// \defgroup define_ecc_mode_states
-/// These defines the ECC(Error Correction Code) state. It is used by \ref ADL_Workstation_ECC_Get,ADL_Workstation_ECC_Set
-// @{
-/// Error Correction is disabled.
-const ECC_MODE_OFF = 0;
-{$EXTERNALSYM ECC_MODE_OFF}
-/// Error Correction is enabled.
-const ECC_MODE_ON = 2;
-{$EXTERNALSYM ECC_MODE_ON}
-// @}
+type
+ ADLOD8SettingId = (
+ OD8_GFXCLK_FMAX = 0,
+ OD8_GFXCLK_FMIN,
+ OD8_GFXCLK_FREQ1,
+ OD8_GFXCLK_VOLTAGE1,
+ OD8_GFXCLK_FREQ2,
+ OD8_GFXCLK_VOLTAGE2,
+ OD8_GFXCLK_FREQ3,
+ OD8_GFXCLK_VOLTAGE3,
+ OD8_UCLK_FMAX,
+ OD8_POWER_PERCENTAGE,
+ OD8_FAN_MIN_SPEED,
+ OD8_FAN_ACOUSTIC_LIMIT,
+ OD8_FAN_TARGET_TEMP,
+ OD8_OPERATING_TEMP_MAX,
+ OD8_AC_TIMING,
+ OD8_FAN_ZERORPM_CONTROL,
+ OD8_AUTO_UV_ENGINE_CONTROL,
+ OD8_AUTO_OC_ENGINE_CONTROL,
+ OD8_AUTO_OC_MEMORY_CONTROL,
+ OD8_FAN_CURVE_TEMPERATURE_1,
+ OD8_FAN_CURVE_SPEED_1,
+ OD8_FAN_CURVE_TEMPERATURE_2,
+ OD8_FAN_CURVE_SPEED_2,
+ OD8_FAN_CURVE_TEMPERATURE_3,
+ OD8_FAN_CURVE_SPEED_3,
+ OD8_FAN_CURVE_TEMPERATURE_4,
+ OD8_FAN_CURVE_SPEED_4,
+ OD8_FAN_CURVE_TEMPERATURE_5,
+ OD8_FAN_CURVE_SPEED_5,
+ OD8_WS_FAN_AUTO_FAN_ACOUSTIC_LIMIT,
+ OD8_POWER_GAUGE, //Starting from this is new features with new capabilities and new interface for limits.
+ OD8_COUNT
+ );
-// End Bracket for Constants and Definitions. Add new groups ABOVE this line!
+type
+ ADLSensorType = (
+ SENSOR_MAXTYPES = 0,
+ PMLOG_CLK_GFXCLK = 1,
+ PMLOG_CLK_MEMCLK = 2,
+ PMLOG_CLK_SOCCLK = 3,
+ PMLOG_CLK_UVDCLK1 = 4,
+ PMLOG_CLK_UVDCLK2 = 5,
+ PMLOG_CLK_VCECLK = 6,
+ PMLOG_CLK_VCNCLK = 7,
+ PMLOG_TEMPERATURE_EDGE = 8,
+ PMLOG_TEMPERATURE_MEM = 9,
+ PMLOG_TEMPERATURE_VRVDDC = 10,
+ PMLOG_TEMPERATURE_VRMVDD = 11,
+ PMLOG_TEMPERATURE_LIQUID = 12,
+ PMLOG_TEMPERATURE_PLX = 13,
+ PMLOG_FAN_RPM = 14,
+ PMLOG_FAN_PERCENTAGE = 15,
+ PMLOG_SOC_VOLTAGE = 16,
+ PMLOG_SOC_POWER = 17,
+ PMLOG_SOC_CURRENT = 18,
+ PMLOG_INFO_ACTIVITY_GFX = 19,
+ PMLOG_INFO_ACTIVITY_MEM = 20,
+ PMLOG_GFX_VOLTAGE = 21,
+ PMLOG_MEM_VOLTAGE = 22,
+ PMLOG_ASIC_POWER = 23,
+ PMLOG_TEMPERATURE_VRSOC = 24,
+ PMLOG_TEMPERATURE_VRMVDD0 = 25,
+ PMLOG_TEMPERATURE_VRMVDD1 = 26,
+ PMLOG_TEMPERATURE_HOTSPOT = 27,
+ PMLOG_TEMPERATURE_GFX = 28,
+ PMLOG_TEMPERATURE_SOC = 29,
+ PMLOG_GFX_POWER = 30,
+ PMLOG_GFX_CURRENT = 31,
+ PMLOG_TEMPERATURE_CPU = 32,
+ PMLOG_CPU_POWER = 33,
+ PMLOG_CLK_CPUCLK = 34,
+ PMLOG_THROTTLER_STATUS = 35,
+ PMLOG_CLK_VCN1CLK1 = 36,
+ PMLOG_CLK_VCN1CLK2 = 37,
+ PMLOG_SMART_POWERSHIFT_CPU = 38,
+ PMLOG_SMART_POWERSHIFT_DGPU = 39,
+ PMLOG_MAX_SENSORS_REAL
+ );
+
+
+//Throttle Status
+type
+ ADL_THROTTLE_NOTIFICATION = (
+ ADL_PMLOG_THROTTLE_POWER = 1 shl 0,
+ ADL_PMLOG_THROTTLE_THERMAL = 1 shl 1,
+ ADL_PMLOG_THROTTLE_CURRENT = 1 shl 2
+ );
-// @}
+type
+ ADL_PMLOG_SENSORS = (
+ ADL_SENSOR_MAXTYPES = 0,
+ ADL_PMLOG_CLK_GFXCLK = 1,
+ ADL_PMLOG_CLK_MEMCLK = 2,
+ ADL_PMLOG_CLK_SOCCLK = 3,
+ ADL_PMLOG_CLK_UVDCLK1 = 4,
+ ADL_PMLOG_CLK_UVDCLK2 = 5,
+ ADL_PMLOG_CLK_VCECLK = 6,
+ ADL_PMLOG_CLK_VCNCLK = 7,
+ ADL_PMLOG_TEMPERATURE_EDGE = 8,
+ ADL_PMLOG_TEMPERATURE_MEM = 9,
+ ADL_PMLOG_TEMPERATURE_VRVDDC = 10,
+ ADL_PMLOG_TEMPERATURE_VRMVDD = 11,
+ ADL_PMLOG_TEMPERATURE_LIQUID = 12,
+ ADL_PMLOG_TEMPERATURE_PLX = 13,
+ ADL_PMLOG_FAN_RPM = 14,
+ ADL_PMLOG_FAN_PERCENTAGE = 15,
+ ADL_PMLOG_SOC_VOLTAGE = 16,
+ ADL_PMLOG_SOC_POWER = 17,
+ ADL_PMLOG_SOC_CURRENT = 18,
+ ADL_PMLOG_INFO_ACTIVITY_GFX = 19,
+ ADL_PMLOG_INFO_ACTIVITY_MEM = 20,
+ ADL_PMLOG_GFX_VOLTAGE = 21,
+ ADL_PMLOG_MEM_VOLTAGE = 22,
+ ADL_PMLOG_ASIC_POWER = 23,
+ ADL_PMLOG_TEMPERATURE_VRSOC = 24,
+ ADL_PMLOG_TEMPERATURE_VRMVDD0 = 25,
+ ADL_PMLOG_TEMPERATURE_VRMVDD1 = 26,
+ ADL_PMLOG_TEMPERATURE_HOTSPOT = 27,
+ ADL_PMLOG_TEMPERATURE_GFX = 28,
+ ADL_PMLOG_TEMPERATURE_SOC = 29,
+ ADL_PMLOG_GFX_POWER = 30,
+ ADL_PMLOG_GFX_CURRENT = 31,
+ ADL_PMLOG_TEMPERATURE_CPU = 32,
+ ADL_PMLOG_CPU_POWER = 33,
+ ADL_PMLOG_CLK_CPUCLK = 34,
+ ADL_PMLOG_THROTTLER_STATUS = 35,
+ ADL_PMLOG_CLK_VCN1CLK1 = 36,
+ ADL_PMLOG_CLK_VCN1CLK2 = 37,
+ ADL_PMLOG_SMART_POWERSHIFT_CPU = 38,
+ ADL_PMLOG_SMART_POWERSHIFT_DGPU = 39
+ );
implementation
diff --git a/Common/adl_sdk.pas b/Common/adl_sdk.pas
index a5f5514..0741ce1 100644
--- a/Common/adl_sdk.pas
+++ b/Common/adl_sdk.pas
@@ -22,7 +22,6 @@ interface
type
ADL_MAIN_MALLOC_CALLBACK = function(v1: Integer): Pointer; stdcall;
-
ADL_MAIN_CONTROL_CREATE = function(v1: ADL_MAIN_MALLOC_CALLBACK; iActiveOnly: Integer): Integer; stdcall;
ADL_MAIN_CONTROL_DESTROY = function: Integer; stdcall;
@@ -34,6 +33,8 @@ interface
ADL_ADAPTER_MEMORYINFO_GET = function(iNum: Integer; var lpMemoryInfo: TADLMemoryInfo): Integer; stdcall;
ADL_ADAPTER_CONFIGMEMORY_GET = function(iAdapterIndex: Integer; iScreenWidth, iScreenHeight, displayFeatureMask, numDisplays: Integer; var displayFeatureList: TADLMemoryDisplayFeatures; var iNumMemTypes: Integer; var lppMemRequired: LPADLMemoryRequired): Integer; stdcall;
+ ADL_ADAPTERX2_CAPS = function(iAdapterIndex: Integer; var iCaps: Integer): Integer; stdcall;
+
ADL_OVERDRIVE_CAPS = function(iAdapterIndex: Integer; var iSupported: Integer; var iEnabled: Integer; var iVersion: Integer): Integer; stdcall;
ADL_OVERDRIVE5_THERMALDEVICES_ENUM = function(iAdapterIndex: Integer; iThermalControllerIndex: Integer; var lpThermalControllerInfo: TADLThermalControllerInfo): Integer; stdcall;
@@ -50,19 +51,53 @@ interface
ADL_OVERDRIVE5_POWERCONTROL_GET = function(iAdapterIndex: Integer; var lpCurrentValue: Integer; var lpDefaultValue: Integer): Integer; stdcall;
ADL_OVERDRIVE5_POWERCONTROL_SET = function(iAdapterIndex: Integer; iValue: Integer): Integer; stdcall;
- ADL_OVERDRIVE6_FANSPEED_GET = function(iAdapterIndex: Integer; var lpFanSpeedInfo: ADLOD6FanSpeedInfo): Integer; stdcall;
- ADL_OVERDRIVE6_THERMALCONTROLLER_CAPS = function(iAdapterIndex: Integer; var lpThermalControllerCaps: ADLOD6ThermalControllerCaps): Integer; stdcall;
+ ADL_OVERDRIVE6_FANSPEED_GET = function(iAdapterIndex: Integer; var lpFanSpeedInfo: TADLOD6FanSpeedInfo): Integer; stdcall;
+ ADL_OVERDRIVE6_THERMALCONTROLLER_CAPS = function(iAdapterIndex: Integer; var lpThermalControllerCaps: TADLOD6ThermalControllerCaps): Integer; stdcall;
ADL_OVERDRIVE6_TEMPERATURE_GET = function(iAdapterIndex: Integer; var lpTemperature: Integer): Integer; stdcall;
- ADL_OVERDRIVE6_CAPABILITIES_GET = function(iAdapterIndex: Integer; var lpODCapabilities: ADLOD6Capabilities): Integer; stdcall;
- ADL_OVERDRIVE6_STATEINFO_GET = function(iAdapterIndex: Integer; iStateType: Integer; var lpStateInfo: ADLOD6StateInfo): Integer; stdcall;
- ADL_OVERDRIVE6_CURRENTSTATUS_GET = function(iAdapterIndex: Integer; var lpCurrentStatus: ADLOD6CurrentStatus): Integer; stdcall;
+ ADL_OVERDRIVE6_CAPABILITIES_GET = function(iAdapterIndex: Integer; var lpODCapabilities: TADLOD6Capabilities): Integer; stdcall;
+ ADL_OVERDRIVE6_STATEINFO_GET = function(iAdapterIndex: Integer; iStateType: Integer; var lpStateInfo: TADLOD6StateInfo): Integer; stdcall;
+ ADL_OVERDRIVE6_CURRENTSTATUS_GET = function(iAdapterIndex: Integer; var lpCurrentStatus: TADLOD6CurrentStatus): Integer; stdcall;
ADL_OVERDRIVE6_POWERCONTROL_CAPS = function(iAdapterIndex: Integer; var lpSupported: Integer): Integer; stdcall;
- ADL_OVERDRIVE6_POWERCONTROLINFO_GET = function(iAdapterIndex: Integer; var lpPowerControlInfo: ADLOD6PowerControlInfo): Integer; stdcall;
+ ADL_OVERDRIVE6_POWERCONTROLINFO_GET = function(iAdapterIndex: Integer; var lpPowerControlInfo: TADLOD6PowerControlInfo): Integer; stdcall;
ADL_OVERDRIVE6_POWERCONTROL_GET = function(iAdapterIndex: Integer; var lpCurrentValue: Integer; var lpDefaultValue: Integer): Integer; stdcall;
- ADL_OVERDRIVE6_FANSPEED_SET = function(iAdapterIndex: Integer; var lpFanSpeedValue: ADLOD6FanSpeedValue): Integer; stdcall;
- ADL_OVERDRIVE6_STATE_SET = function(iAdapterIndex: Integer; iStateType: Integer; var lpStateInfo: ADLOD6StateInfo): Integer; stdcall;
+ ADL_OVERDRIVE6_FANSPEED_SET = function(iAdapterIndex: Integer; var lpFanSpeedValue: TADLOD6FanSpeedValue): Integer; stdcall;
+ ADL_OVERDRIVE6_STATE_SET = function(iAdapterIndex: Integer; iStateType: Integer; var lpStateInfo: TADLOD6StateInfo): Integer; stdcall;
ADL_OVERDRIVE6_POWERCONTROL_SET = function(iAdapterIndex: Integer; iValue: Integer): Integer; stdcall;
+ ADL2_MAIN_CONTROL_CREATE = function(funcMemCallback: ADL_MAIN_MALLOC_CALLBACK; iTypes: Integer; var hContext: Pointer): Integer; stdcall;
+ ADL2_MAIN_CONTROL_DESTROY = function(hContext: Pointer): Integer; stdcall;
+
+ ADL2_ADAPTER_ACTIVE_GET = function(hContext: Pointer; iNum: Integer; var iActive: Integer): Integer; stdcall;
+
+ ADL2_OVERDRIVE_CAPS = function(hContext: Pointer; iAdapterIndex: Integer; var iSupported: Integer; var iEnabled: Integer; var iVersion: Integer): Integer; stdcall;
+ ADL2_OVERDRIVEN_CAPABILITIESX2_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpCapabilities: TADLODNCapabilitiesX2): Integer; stdcall;
+ ADL2_OVERDRIVEN_PERFORMANCESTATUS_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpStatus: ADLODNPerformanceStatus): Integer; stdcall;
+ ADL2_OVERDRIVEN_FANCONTROL_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpControl: ADLODNFanControl): Integer; stdcall;
+ ADL2_OVERDRIVEN_FANCONTROL_SET = function(hContext: Pointer; iAdapterIndex: Integer; var lpControl: ADLODNFanControl): Integer; stdcall;
+ ADL2_OVERDRIVEN_POWERLIMIT_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLimit: ADLODNPowerLimitSetting): Integer; stdcall;
+ ADL2_OVERDRIVEN_POWERLIMIT_SET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLimit: ADLODNPowerLimitSetting): Integer; stdcall;
+ ADL2_OVERDRIVEN_TEMPERATURE_GET = function(hContext: Pointer; iAdapterIndex: Integer; iTemperatureType: Integer; var lpTemperature: Integer): Integer; stdcall;
+ ADL2_OVERDRIVEN_SYSTEMCLOCKSX2_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLevels: TADLODNPerformanceLevelsX2): Integer; stdcall;
+ ADL2_OVERDRIVEN_SYSTEMCLOCKSX2_SET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLevels: TADLODNPerformanceLevelsX2): Integer; stdcall;
+ ADL2_OVERDRIVEN_MEMORYCLOCKSX2_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLevels: TADLODNPerformanceLevelsX2): Integer; stdcall;
+ ADL2_OVERDRIVEN_MEMORYCLOCKSX2_SET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLevels: TADLODNPerformanceLevelsX2): Integer; stdcall;
+
+ ADL2_OVERDRIVEN_MEMORYTIMINGLEVEL_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpSupportL: Integer; var lpCurrentValue: Integer; var lpDefaultValue: Integer; var lpNumberLevels: Integer; var lppLevelList: PInteger): Integer; stdcall;
+ ADL2_OVERDRIVEN_MEMORYTIMINGLEVEL_SET = function(hContext: Pointer; iAdapterIndex: Integer; currentValue: Integer): Integer; stdcall;
+ ADL2_OVERDRIVEN_ZERORPMFAN_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpSupport: Integer; var lpCurrentValue: Integer; var lpDefaultValue: Integer): Integer; stdcall;
+ ADL2_OVERDRIVEN_ZERORPMFAN_SET = function(hContext: Pointer; iAdapterIndex: Integer; currentValue: Integer): Integer; stdcall;
+
+ ADL2_OVERDRIVEN_SETTINGSEXT_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpOverdriveNExtCapabilities: Integer; var lpNumberOfODNExtFeatures: Integer; var lppInitSettingList: PADLODNExtSingleInitSetting; var lppCurrentSettingList: PInteger): Integer; stdcall;
+ ADL2_OVERDRIVEN_SETTINGSEXT_SET = function(hContext: Pointer; iAdapterIndex: Integer; iNumberOfODNExtFeatures: Integer; var itemValueValidList: Integer; var lpItemValueList: Integer): Integer; stdcall;
+
+ ADL2_OVERDRIVE8_INIT_SETTING_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpSetting: TADLOD8InitSetting): Integer; stdcall;
+ ADL2_OVERDRIVE8_CURRENT_SETTING_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpSetting: TADLOD8CurrentSetting): Integer; stdcall;
+ ADL2_OVERDRIVE8_SETTING_SET = function(hContext: Pointer; iAdapterIndex: Integer; var lpSetting: TADLOD8SetSetting; var lpSettingCurrent: TADLOD8CurrentSetting): Integer; stdcall;
+ ADL2_NEW_QUERYPMLOGDATA_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpLog: TADLPMLogDataOutput): Integer; stdcall;
+
+ ADL2_OVERDRIVE8_INIT_SETTINGX2_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpOverdrive8Capabilities: Integer; var lpNumberOfFeatures: Integer; var lppInitSettingList: PADLOD8SingleInitSetting): Integer; stdcall;
+ ADL2_OVERDRIVE8_CURRENT_SETTINGX2_GET = function(hContext: Pointer; iAdapterIndex: Integer; var lpNumberOfFeatures: Integer; var lppCurrentSettingList: PInteger): Integer; stdcall;
+
implementation
end.
diff --git a/Common/adl_structures.pas b/Common/adl_structures.pas
index df7fe37..59917bb 100644
--- a/Common/adl_structures.pas
+++ b/Common/adl_structures.pas
@@ -1,16 +1,24 @@
-unit adl_structures;
-
-interface
-
-uses
- adl_defines;
-
-///
-/// Copyright (c) 2008 - 2013 Advanced Micro Devices, Inc.
-
-/// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
-/// EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
-/// WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
+//
+// Copyright (c) 2016 Advanced Micro Devices, Inc. All rights reserved.
+//
+// MIT LICENSE:
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
/// \file adl_structures.h
///\brief This file contains the structure declarations that are used by the public ADL interfaces for \ALL platforms.\n Included in ADL SDK
@@ -18,68 +26,62 @@ interface
/// All data structures used in AMD Display Library (ADL) public interfaces should be defined in this header file.
///
+unit adl_structures;
+
+interface
+
+uses
+ adl_defines;
+
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the graphics adapter.
///
-/// This structure is used to store various information about the graphics adapter. This
+/// This structure is used to store various information about the graphics adapter. This
/// information can be returned to the user. Alternatively, it can be used to access various driver calls to set
/// or fetch various settings upon the user's request.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- AdapterInfo = record
-/// \ALL_STRUCT_MEM
-/// Size of the structure.
- iSize: Integer;
-/// The ADL index handle. One GPU may be associated with one or two index handles
- iAdapterIndex: Integer;
-/// The unique device ID associated with this adapter.
- strUDID : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// The BUS number associated with this adapter.
- iBusNumber: Integer;
-/// The driver number associated with this adapter.
- iDeviceNumber: Integer;
-/// The function number.
- iFunctionNumber: Integer;
-/// The vendor ID associated with this adapter.
- iVendorID: Integer;
-/// Adapter name.
- strAdapterName : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// Display name. For example, "\\Display0" for Windows or ":0:0" for Linux.
- strDisplayName : array[0..ADL_MAX_PATH-1] of AnsiChar;
- /// 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
- iPresent: Integer;
-// @}
-//{$if Defined(_WIN32)) and (_WIN32) defined or defined (_WIN64)}
-/// \WIN_STRUCT_MEM
- /// Exist or not; 1 is exist and 0 is not present.
- iExist: Integer;
-/// Driver registry path.
- strDriverPath : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// Driver registry path Ext for.
- strDriverPathExt : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// PNP string from Windows.
- strPNPString : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// It is generated from EnumDisplayDevices.
- iOSDisplayIndex: Integer;
-// @}
-//{$endif} (* (_WIN32) || (_WIN64) *)
-//{$ifdef LINUX}
-///// \LNX_STRUCT_MEM
-///// Internal X screen number from GPUMapInfo (DEPRICATED use XScreenInfo)
-// iXScreenNum: Integer;
-///// Internal driver index from GPUMapInfo
-// iDrvIndex: Integer;
-///// \deprecated Internal x config file screen identifier name. Use XScreenInfo instead.
-// strXScreenConfigName : array[0..ADL_MAX_PATH-1] of AnsiChar;
-//// @}
-//{$endif} (* (LINUX) *)
- end;
- TAdapterInfo = AdapterInfo;
- {$EXTERNALSYM TAdapterInfo}
- PAdapterInfo = ^TAdapterInfo;
- {$EXTERNALSYM PAdapterInfo}
+type
+ AdapterInfo = record
+ /// \ALL_STRUCT_MEM
+
+ /// Size of the structure.
+ iSize: integer;
+ /// The ADL index handle. One GPU may be associated with one or two index handles
+ iAdapterIndex: integer;
+ /// The unique device ID associated with this adapter.
+ strUDID: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// The BUS number associated with this adapter.
+ iBusNumber: integer;
+ /// The driver number associated with this adapter.
+ iDeviceNumber: integer;
+ /// The function number.
+ iFunctionNumber: integer;
+ /// The vendor ID associated with this adapter.
+ iVendorID: integer;
+ /// Adapter name.
+ strAdapterName: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Display name. For example, "\\\\Display0" for Windows or ":0:0" for Linux.
+ strDisplayName: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// 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
+ iPresent: integer;
+
+ /// \WIN_STRUCT_MEM
+
+ /// Exist or not; 1 is exist and 0 is not present.
+ iExist: integer;
+ /// Driver registry path.
+ strDriverPath: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Driver registry path Ext for.
+ strDriverPathExt: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// PNP string from Windows.
+ strPNPString: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// It is generated from EnumDisplayDevices.
+ iOSDisplayIndex: integer;
+ end;
+ TAdapterInfo = AdapterInfo;
+ PAdapterInfo = ^AdapterInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the Linux X screen information.
@@ -90,43 +92,25 @@ AdapterInfo = record
/// deprecated.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-//{$ifdef LINUX}
-//type
-// XScreenInfo = record
-///// Internal X screen number from GPUMapInfo.
-// iXScreenNum: Integer;
-///// Internal x config file screen identifier name.
-// strXScreenConfigName : array[0..ADL_MAX_PATH-1] of AnsiChar;
-// end;
-// TXScreenInfo = XScreenInfo;
-// {$EXTERNALSYM TXScreenInfo}
-// LPXScreenInfo = ^XScreenInfo;
-// {$EXTERNALSYM LPXScreenInfo}
-//
-//{$endif} (* (LINUX) *)
-
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the ASIC memory.
///
-/// This structure is used to store various information about the ASIC memory. This
+/// This structure is used to store various information about the ASIC memory. This
/// information can be returned to the user.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMemoryInfo = record
-/// Memory size in bytes.
- iMemorySize: Int64;
-/// Memory type in string.
- strMemoryType : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// Memory bandwidth in Mbytes/s.
- iMemoryBandwidth: Int64;
- end;
- TADLMemoryInfo = ADLMemoryInfo;
- {$EXTERNALSYM TADLMemoryInfo}
- LPADLMemoryInfo = ^ADLMemoryInfo;
- {$EXTERNALSYM LPADLMemoryInfo}
-
+type
+ ADLMemoryInfo = record
+ /// Memory size in bytes.
+ iMemorySize: int64;
+ /// Memory type in string.
+ strMemoryType: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Memory bandwidth in Mbytes/s.
+ iMemoryBandwidth: int64;
+ end;
+ TADLMemoryInfo = ADLMemoryInfo;
+ LPADLMemoryInfo = ^ADLMemoryInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about memory required by type
@@ -135,17 +119,13 @@ ADLMemoryInfo = record
/// will return the Memory used.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMemoryRequired = record
- iMemoryReq: Int64; /// Memory in bytes required
- iType: Integer; /// cType of Memory \ref define_adl_validmemoryrequiredfields
- iDisplayFeatureValue: Integer; /// Display features \ref define_adl_visiblememoryfeatures that are using this type of memory
- end;
- TADLMemoryRequired = ADLMemoryRequired;
- {$EXTERNALSYM TADLMemoryRequired}
- LPADLMemoryRequired = ^ADLMemoryRequired;
- {$EXTERNALSYM LPADLMemoryRequired}
-
+type
+ ADLMemoryRequired = (
+ iMemoryReq, /// Memory in bytes required: Int64
+ iType, /// Type of Memory \ref define_adl_validmemoryrequiredfields: Integer
+ iDisplayFeatureValue /// Display features \ref define_adl_visiblememoryfeatures that are using this type of memory: Integer
+ );
+ LPADLMemoryRequired = ^ADLMemoryRequired;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the features associated with a display
@@ -154,16 +134,13 @@ ADLMemoryRequired = record
/// will return the Memory used.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMemoryDisplayFeatures = record
+type
+ ADLMemoryDisplayFeatures = record
iDisplayIndex: Integer; /// ADL Display index
iDisplayFeatureValue: Integer; /// features that the display is using \ref define_adl_visiblememoryfeatures
end;
TADLMemoryDisplayFeatures = ADLMemoryDisplayFeatures;
- {$EXTERNALSYM TADLMemoryDisplayFeatures}
LPADLMemoryDisplayFeatures = ^ADLMemoryDisplayFeatures;
- {$EXTERNALSYM LPADLMemoryDisplayFeatures}
-
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing DDC information.
@@ -172,38 +149,34 @@ ADLMemoryDisplayFeatures = record
/// Note that all fields of type int are actually defined as unsigned int types within the driver.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDDCInfo = record
-/// Size of the structure
- ulSize: Integer;
-/// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC information fields will be used.
- ulSupportsDDC: Integer;
-/// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
- ulManufacturerID: Integer;
-/// Returns the product ID of the display device. Should be zeroed if this information is not available.
- ulProductID: Integer;
-/// Returns the name of the display device. Should be zeroed if this information is not available.
- cDisplayName : array[0..ADL_MAX_DISPLAY_NAME-1] of AnsiChar;
-/// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
- ulMaxHResolution: Integer;
-/// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
- ulMaxVResolution: Integer;
-/// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
- ulMaxRefresh: Integer;
-/// Returns the display device preferred timing mode's horizontal resolution.
- ulPTMCx: Integer;
-/// Returns the display device preferred timing mode's vertical resolution.
- ulPTMCy: Integer;
-/// Returns the display device preferred timing mode's refresh rate.
- ulPTMRefreshRate: Integer;
-/// Return EDID flags.
- ulDDCInfoFlag: Integer;
- end;
- TADLDDCInfo = ADLDDCInfo;
- {$EXTERNALSYM TADLDDCInfo}
- LPADLDDCInfo = ^ADLDDCInfo;
- {$EXTERNALSYM LPADLDDCInfo}
-
+type
+ ADLDDCInfo = record
+ /// Size of the structure
+ ulSize: integer;
+ /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC information fields will be used.
+ ulSupportsDDC: integer;
+ /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
+ ulManufacturerID: integer;
+ /// Returns the product ID of the display device. Should be zeroed if this information is not available.
+ ulProductID: integer;
+ /// Returns the name of the display device. Should be zeroed if this information is not available.
+ cDisplayName: array[0..ADL_MAX_DISPLAY_NAME - 1] of AnsiChar;
+ /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
+ ulMaxHResolution: integer;
+ /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
+ ulMaxVResolution: integer;
+ /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
+ ulMaxRefresh: integer;
+ /// Returns the display device preferred timing mode's horizontal resolution.
+ ulPTMCx: integer;
+ /// Returns the display device preferred timing mode's vertical resolution.
+ ulPTMCy: integer;
+ /// Returns the display device preferred timing mode's refresh rate.
+ ulPTMRefreshRate: integer;
+ /// Return EDID flags.
+ ulDDCInfoFlag: integer;
+ end;
+ LPADLDDCInfo = ^ADLDDCInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing DDC information.
@@ -212,70 +185,100 @@ ADLDDCInfo = record
/// Note that all fields of type int are actually defined as unsigned int types within the driver.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDDCInfo2 = record
-/// Size of the structure
- ulSize: Integer;
-/// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC
-/// information fields will be used.
- ulSupportsDDC: Integer;
-/// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
- ulManufacturerID: Integer;
-/// Returns the product ID of the display device. Should be zeroed if this information is not available.
- ulProductID: Integer;
-/// Returns the name of the display device. Should be zeroed if this information is not available.
- cDisplayName : array[0..ADL_MAX_DISPLAY_NAME-1] of AnsiChar;
-/// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
- ulMaxHResolution: Integer;
-/// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
- ulMaxVResolution: Integer;
-/// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
- ulMaxRefresh: Integer;
-/// Returns the display device preferred timing mode's horizontal resolution.
- ulPTMCx: Integer;
-/// Returns the display device preferred timing mode's vertical resolution.
- ulPTMCy: Integer;
-/// Returns the display device preferred timing mode's refresh rate.
- ulPTMRefreshRate: Integer;
-/// Return EDID flags.
- ulDDCInfoFlag: Integer;
-// Returns 1 if the display supported packed pixel, 0 otherwise
- bPackedPixelSupported: Integer;
-// Returns the Pixel formats the display supports \ref define_ddcinfo_pixelformats
- iPanelPixelFormat: Integer;
-/// Return EDID serial ID.
- ulSerialID: Integer;
-// Reserved for future use
- iReserved : array[0..25] of Integer;
- end;
- TADLDDCInfo2 = ADLDDCInfo2;
- {$EXTERNALSYM TADLDDCInfo2}
- LPADLDDCInfo2 = ^ADLDDCInfo2;
- {$EXTERNALSYM LPADLDDCInfo2}
-
+type
+ ADLDDCInfo2 = record
+ /// Size of the structure
+ ulSize: integer;
+ /// Indicates whether the attached display supports DDC. If this field is zero on return, no other DDC
+ /// information fields will be used.
+ ulSupportsDDC: integer;
+ /// Returns the manufacturer ID of the display device. Should be zeroed if this information is not available.
+ ulManufacturerID: integer;
+ /// Returns the product ID of the display device. Should be zeroed if this information is not available.
+ ulProductID: integer;
+ /// Returns the name of the display device. Should be zeroed if this information is not available.
+ cDisplayName: array[0..ADL_MAX_DISPLAY_NAME - 1] of AnsiChar;
+ /// Returns the maximum Horizontal supported resolution. Should be zeroed if this information is not available.
+ ulMaxHResolution: integer;
+ /// Returns the maximum Vertical supported resolution. Should be zeroed if this information is not available.
+ ulMaxVResolution: integer;
+ /// Returns the maximum supported refresh rate. Should be zeroed if this information is not available.
+ ulMaxRefresh: integer;
+ /// Returns the display device preferred timing mode's horizontal resolution.
+ ulPTMCx: integer;
+ /// Returns the display device preferred timing mode's vertical resolution.
+ ulPTMCy: integer;
+ /// Returns the display device preferred timing mode's refresh rate.
+ ulPTMRefreshRate: integer;
+ /// Return EDID flags.
+ ulDDCInfoFlag: integer;
+ /// Returns 1 if the display supported packed pixel, 0 otherwise
+ bPackedPixelSupported: integer;
+ /// Returns the Pixel formats the display supports \ref define_ddcinfo_pixelformats
+ iPanelPixelFormat: integer;
+ /// Return EDID serial ID.
+ ulSerialID: integer;
+ /// Return minimum monitor luminance data
+ ulMinLuminanceData: integer;
+ /// Return average monitor luminance data
+ ulAvgLuminanceData: integer;
+ /// Return maximum monitor luminance data
+ ulMaxLuminanceData: integer;
+
+ /// Bit vector of supported transfer functions \ref define_source_content_TF
+ iSupportedTransferFunction: integer;
+
+ /// Bit vector of supported color spaces \ref define_source_content_CS
+ iSupportedColorSpace: integer;
+
+ /// Display Red Chromaticity X coordinate multiplied by 10000
+ iNativeDisplayChromaticityRedX: integer;
+ /// Display Red Chromaticity Y coordinate multiplied by 10000
+ iNativeDisplayChromaticityRedY: integer;
+ /// Display Green Chromaticity X coordinate multiplied by 10000
+ iNativeDisplayChromaticityGreenX: integer;
+ /// Display Green Chromaticity Y coordinate multiplied by 10000
+ iNativeDisplayChromaticityGreenY: integer;
+ /// Display Blue Chromaticity X coordinate multiplied by 10000
+ iNativeDisplayChromaticityBlueX: integer;
+ /// Display Blue Chromaticity Y coordinate multiplied by 10000
+ iNativeDisplayChromaticityBlueY: integer;
+ /// Display White Point X coordinate multiplied by 10000
+ iNativeDisplayChromaticityWhitePointX: integer;
+ /// Display White Point Y coordinate multiplied by 10000
+ iNativeDisplayChromaticityWhitePointY: integer;
+ /// Display diffuse screen reflectance 0-1 (100%) in units of 0.01
+ iDiffuseScreenReflectance: integer;
+ /// Display specular screen reflectance 0-1 (100%) in units of 0.01
+ iSpecularScreenReflectance: integer;
+ /// Bit vector of supported color spaces \ref define_HDR_support
+ iSupportedHDR: integer;
+ /// Bit vector for freesync flags
+ iFreesyncFlags: integer;
+
+ // Reserved for future use
+ iReserved: array[1..9] of integer;
+ end;
+ LPADLDDCInfo2 = ^ADLDDCInfo2;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information controller Gamma settings.
///
/// This structure is used to store the red, green and blue color channel information for the.
-/// controller gamma setting. This information is returned by ADL, and it can also be used to
+/// controller gamma setting. This information is returned by ADL, and it can also be used to
/// set the controller gamma setting.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGamma = record
-/// Red color channel gamma value.
- fRed: Single;
-/// Green color channel gamma value.
- fGreen: Single;
-/// Blue color channel gamma value.
- fBlue: Single;
- end;
- TADLGamma = ADLGamma;
- {$EXTERNALSYM TADLGamma}
- LPADLGamma = ^ADLGamma;
- {$EXTERNALSYM LPADLGamma}
-
+type
+ ADLGamma = record
+ /// Red color channel gamma value.
+ fRed: single;
+ /// Green color channel gamma value.
+ fGreen: single;
+ /// Blue color channel gamma value.
+ fBlue: single;
+ end;
+ LPADLGamma = ^ADLGamma;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about component video custom modes.
@@ -283,26 +286,22 @@ ADLGamma = record
/// This structure is used to store the component video custom mode.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLCustomMode = record
-/// Custom mode flags. They are returned by the ADL driver.
- iFlags: Integer;
-/// Custom mode width.
- iModeWidth: Integer;
-/// Custom mode height.
- iModeHeight: Integer;
-/// Custom mode base width.
- iBaseModeWidth: Integer;
-/// Custom mode base height.
- iBaseModeHeight: Integer;
-/// Custom mode refresh rate.
- iRefreshRate: Integer;
- end;
- TADLCustomMode = ADLCustomMode;
- {$EXTERNALSYM TADLCustomMode}
- LPADLCustomMode = ^ADLCustomMode;
- {$EXTERNALSYM LPADLCustomMode}
-
+type
+ ADLCustomMode = record
+ /// Custom mode flags. They are returned by the ADL driver.
+ iFlags: integer;
+ /// Custom mode width.
+ iModeWidth: integer;
+ /// Custom mode height.
+ iModeHeight: integer;
+ /// Custom mode base width.
+ iBaseModeWidth: integer;
+ /// Custom mode base height.
+ iBaseModeHeight: integer;
+ /// Custom mode refresh rate.
+ iRefreshRate: integer;
+ end;
+ LPADLCustomMode = ^ADLCustomMode;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing Clock information for OD5 calls.
@@ -310,23 +309,20 @@ ADLCustomMode = record
/// This structure is used to retrieve clock information for OD5 calls.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGetClocksOUT = record
- ulHighCoreClock: LongInt;
- ulHighMemoryClock: LongInt;
- ulHighVddc: LongInt;
- ulCoreMin: LongInt;
- ulCoreMax: LongInt;
- ulMemoryMin: LongInt;
- ulMemoryMax: LongInt;
- ulActivityPercent: LongInt;
- ulCurrentCoreClock: LongInt;
- ulCurrentMemoryClock: LongInt;
- ulReserved: LongInt;
- end;
- TADLGetClocksOUT = ADLGetClocksOUT;
- {$EXTERNALSYM TADLGetClocksOUT}
-
+type
+ ADLGetClocksOUT = record
+ ulHighCoreClock: cardinal;
+ ulHighMemoryClock: cardinal;
+ ulHighVddc: cardinal;
+ ulCoreMin: cardinal;
+ ulCoreMax: cardinal;
+ ulMemoryMin: cardinal;
+ ulMemoryMax: cardinal;
+ ulActivityPercent: cardinal;
+ ulCurrentCoreClock: cardinal;
+ ulCurrentMemoryClock: cardinal;
+ ulReserved: cardinal;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing HDTV information for display calls.
@@ -334,124 +330,123 @@ ADLGetClocksOUT = record
/// This structure is used to retrieve HDTV information information for display calls.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayConfig = record
-/// Size of the structure
- ulSize: LongInt;
-/// HDTV connector type.
- ulConnectorType: LongInt;
-/// HDTV capabilities.
- ulDeviceData: LongInt;
-/// Overridden HDTV capabilities.
- ulOverridedDeviceData: LongInt;
-/// Reserved field
- ulReserved: LongInt;
- end;
- TADLDisplayConfig = ADLDisplayConfig;
- {$EXTERNALSYM TADLDisplayConfig}
-
-
+type
+ ADLDisplayConfig = record
+ /// Size of the structure
+ ulSize: cardinal;
+ /// HDTV connector type.
+ ulConnectorType: cardinal;
+ /// HDTV capabilities.
+ ulDeviceData: cardinal;
+ /// Overridden HDTV capabilities.
+ ulOverridedDeviceData: cardinal;
+ /// Reserved field
+ ulReserved: cardinal;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display device.
///
/// This structure is used to store display device information
-/// such as display index, type, name, connection status, mapped adapter and controller indexes,
+/// such as display index, type, name, connection status, mapped adapter and controller indexes,
/// whether or not multiple VPUs are supported, local display connections or not (through Lasso), etc.
/// This information can be returned to the user. Alternatively, it can be used to access various driver calls to set
/// or fetch various display device related settings upon the user's request.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayID = record
-/// The logical display index belonging to this adapter.
- iDisplayLogicalIndex: Integer;
-///\brief The physical display index.
-/// For example, display index 2 from adapter 2 can be used by current adapter 1.\n
-/// So current adapter may enumerate this adapter as logical display 7 but the physical display
-/// index is still 2.
- iDisplayPhysicalIndex: Integer;
-/// The persistent logical adapter index for the display.
- iDisplayLogicalAdapterIndex: Integer;
-///\brief The persistent physical adapter index for the display.
-/// It can be the current adapter or a non-local adapter. \n
-/// If this adapter index is different than the current adapter,
-/// the Display Non Local flag is set inside DisplayInfoValue.
- iDisplayPhysicalAdapterIndex: Integer;
- end;
- TADLDisplayID = ADLDisplayID;
- {$EXTERNALSYM TADLDisplayID}
- LPADLDisplayID = ^ADLDisplayID;
- {$EXTERNALSYM LPADLDisplayID}
-
+type
+ ADLDisplayID = record
+ /// The logical display index belonging to this adapter.
+ iDisplayLogicalIndex: integer;
+
+ ///\brief The physical display index.
+ /// For example, display index 2 from adapter 2 can be used by current adapter 1.\n
+ /// So current adapter may enumerate this adapter as logical display 7 but the physical display
+ /// index is still 2.
+ iDisplayPhysicalIndex: integer;
+
+ /// The persistent logical adapter index for the display.
+ iDisplayLogicalAdapterIndex: integer;
+
+ ///\brief The persistent physical adapter index for the display.
+ /// It can be the current adapter or a non-local adapter. \n
+ /// If this adapter index is different than the current adapter,
+ /// the Display Non Local flag is set inside DisplayInfoValue.
+ iDisplayPhysicalAdapterIndex: integer;
+ end;
+ LPADLDisplayID = ^ADLDisplayID;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display device.
///
-/// This structure is used to store various information about the display device. This
+/// This structure is used to store various information about the display device. This
/// information can be returned to the user, or used to access various driver calls to set
/// or fetch various display-device-related settings upon the user's request
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayInfo = record
-/// The DisplayID structure
- displayID: ADLDisplayID;
-///\deprecated The controller index to which the display is mapped.\n Will not be used in the future\n
- iDisplayControllerIndex: Integer;
-/// The display's EDID name.
- strDisplayName : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// The display's manufacturer name.
- strDisplayManufacturerName : array[0..ADL_MAX_PATH-1] of AnsiChar;
-/// The Display type. For example: CRT, TV, CV, DFP.
- iDisplayType: Integer;
-/// The display output type. For example: HDMI, SVIDEO, COMPONMNET VIDEO.
- iDisplayOutputType: Integer;
-/// The connector type for the device.
- iDisplayConnector: Integer;
-///\brief The bit mask identifies the number of bits ADLDisplayInfo is currently using. \n
-/// It will be the sum all the bit definitions in ADL_DISPLAY_DISPLAYINFO_xxx.
- iDisplayInfoMask: Integer;
-/// The bit mask identifies the display status. \ref define_displayinfomask
- iDisplayInfoValue: Integer;
- end;
- TADLDisplayInfo = ADLDisplayInfo;
- {$EXTERNALSYM TADLDisplayInfo}
- LPADLDisplayInfo = ^ADLDisplayInfo;
- {$EXTERNALSYM LPADLDisplayInfo}
+type
+ ADLDisplayInfo = record
+ /// The DisplayID structure
+ displayID: ADLDisplayID;
+
+ ///\deprecated The controller index to which the display is mapped.\n Will not be used in the future\n
+ iDisplayControllerIndex: integer;
+ /// The display's EDID name.
+ strDisplayName: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+
+ /// The display's manufacturer name.
+ strDisplayManufacturerName: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+
+ /// The Display type. For example: CRT, TV, CV, DFP.
+ iDisplayType: integer;
+
+ /// The display output type. For example: HDMI, SVIDEO, COMPONMNET VIDEO.
+ iDisplayOutputType: integer;
+
+ /// The connector type for the device.
+ iDisplayConnector: integer;
+
+ ///\brief The bit mask identifies the number of bits ADLDisplayInfo is currently using. \n
+ /// It will be the sum all the bit definitions in ADL_DISPLAY_DISPLAYINFO_xxx.
+ iDisplayInfoMask: integer;
+
+ /// The bit mask identifies the display status. \ref define_displayinfomask
+ iDisplayInfoValue: integer;
+ end;
+ LPADLDisplayInfo = ^ADLDisplayInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display port MST device.
///
-/// This structure is used to store various MST information about the display port device. This
-/// information can be returned to the user, or used to access various driver calls to
+/// This structure is used to store various MST information about the display port device. This
+/// information can be returned to the user, or used to access various driver calls to
/// fetch various display-device-related settings upon the user's request
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayDPMSTInfo = record
- /// The ADLDisplayID structure
- displayID: ADLDisplayID;
- /// total bandwidth available on the DP connector
- iTotalAvailableBandwidthInMpbs: Integer;
- /// bandwidth allocated to this display
- iAllocatedBandwidthInMbps: Integer;
- // info from DAL DpMstSinkInfo
- /// string identifier for the display
- strGlobalUniqueIdentifier : array[0..ADL_MAX_PATH-1] of AnsiChar;
- /// The link count of relative address, rad[0] upto rad[linkCount] are valid
- radLinkCount: Integer;
- /// The physical connector ID, used to identify the physical DP port
- iPhysicalConnectorID: Integer;
- /// Relative address, address scheme starts from source side
- rad : array[0..ADL_MAX_RAD_LINK_COUNT-1] of AnsiChar;
- end;
- TADLDisplayDPMSTInfo = ADLDisplayDPMSTInfo;
- {$EXTERNALSYM TADLDisplayDPMSTInfo}
- LPADLDisplayDPMSTInfo = ^ADLDisplayDPMSTInfo;
- {$EXTERNALSYM LPADLDisplayDPMSTInfo}
-
+type
+ ADLDisplayDPMSTInfo = record
+ /// The ADLDisplayID structure
+ displayID: ADLDisplayID;
+
+ /// total bandwidth available on the DP connector
+ iTotalAvailableBandwidthInMpbs: integer;
+ /// bandwidth allocated to this display
+ iAllocatedBandwidthInMbps: integer;
+
+ // info from DAL DpMstSinkInfo
+ /// string identifier for the display
+ strGlobalUniqueIdentifier: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+
+ /// The link count of relative address, rad[0] upto rad[linkCount] are valid
+ radLinkCount: integer;
+ /// The physical connector ID, used to identify the physical DP port
+ iPhysicalConnectorID: integer;
+
+ /// Relative address, address scheme starts from source side
+ rad: array[0..ADL_MAX_RAD_LINK_COUNT - 1] of AnsiChar;
+ end;
+ LPADLDisplayDPMSTInfo = ^ADLDisplayDPMSTInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the display mode definition used per controller.
@@ -459,20 +454,17 @@ ADLDisplayDPMSTInfo = record
/// This structure is used to store the display mode definition used per controller.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayMode = record
-/// Vertical resolution (in pixels).
- iPelsHeight: Integer;
-/// Horizontal resolution (in pixels).
- iPelsWidth: Integer;
-/// Color depth.
- iBitsPerPel: Integer;
-/// Refresh rate.
- iDisplayFrequency: Integer;
- end;
- TADLDisplayMode = ADLDisplayMode;
- {$EXTERNALSYM TADLDisplayMode}
-
+type
+ ADLDisplayMode = record
+ /// Vertical resolution (in pixels).
+ iPelsHeight: integer;
+ /// Horizontal resolution (in pixels).
+ iPelsWidth: integer;
+ /// Color depth.
+ iBitsPerPel: integer;
+ /// Refresh rate.
+ iDisplayFrequency: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing detailed timing parameters.
@@ -480,44 +472,41 @@ ADLDisplayMode = record
/// This structure is used to store the detailed timing parameters.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDetailedTiming = record
-/// Size of the structure.
- iSize: Integer;
-/// Timing flags. \ref define_detailed_timing_flags
- sTimingFlags: SmallInt;
-/// Total width (columns).
- sHTotal: SmallInt;
-/// Displayed width.
- sHDisplay: SmallInt;
-/// Horizontal sync signal offset.
- sHSyncStart: SmallInt;
-/// Horizontal sync signal width.
- sHSyncWidth: SmallInt;
-/// Total height (rows).
- sVTotal: SmallInt;
-/// Displayed height.
- sVDisplay: SmallInt;
-/// Vertical sync signal offset.
- sVSyncStart: SmallInt;
-/// Vertical sync signal width.
- sVSyncWidth: SmallInt;
-/// Pixel clock value.
- sPixelClock: SmallInt;
-/// Overscan right.
- sHOverscanRight: SmallInt;
-/// Overscan left.
- sHOverscanLeft: SmallInt;
-/// Overscan bottom.
- sVOverscanBottom: SmallInt;
-/// Overscan top.
- sVOverscanTop: SmallInt;
- sOverscan8B: SmallInt;
- sOverscanGR: SmallInt;
- end;
- TADLDetailedTiming = ADLDetailedTiming;
- {$EXTERNALSYM TADLDetailedTiming}
-
+type
+ ADLDetailedTiming = record
+ /// Size of the structure.
+ iSize: integer;
+ /// Timing flags. \ref define_detailed_timing_flags
+ sTimingFlags: smallint;
+ /// Total width (columns).
+ sHTotal: smallint;
+ /// Displayed width.
+ sHDisplay: smallint;
+ /// Horizontal sync signal offset.
+ sHSyncStart: smallint;
+ /// Horizontal sync signal width.
+ sHSyncWidth: smallint;
+ /// Total height (rows).
+ sVTotal: smallint;
+ /// Displayed height.
+ sVDisplay: smallint;
+ /// Vertical sync signal offset.
+ sVSyncStart: smallint;
+ /// Vertical sync signal width.
+ sVSyncWidth: smallint;
+ /// Pixel clock value.
+ sPixelClock: smallint;
+ /// Overscan right.
+ sHOverscanRight: smallint;
+ /// Overscan left.
+ sHOverscanLeft: smallint;
+ /// Overscan bottom.
+ sVOverscanBottom: smallint;
+ /// Overscan top.
+ sVOverscanTop: smallint;
+ sOverscan8B: smallint;
+ sOverscanGR: smallint;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing display mode information.
@@ -525,24 +514,21 @@ ADLDetailedTiming = record
/// This structure is used to store the display mode information.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayModeInfo = record
-/// Timing standard of the current mode. \ref define_modetiming_standard
- iTimingStandard: Integer;
-/// Applicable timing standards for the current mode.
- iPossibleStandard: Integer;
-/// Refresh rate factor.
- iRefreshRate: Integer;
-/// Num of pixels in a row.
- iPelsWidth: Integer;
-/// Num of pixels in a column.
- iPelsHeight: Integer;
-/// Detailed timing parameters.
- sDetailedTiming: ADLDetailedTiming;
- end;
- TADLDisplayModeInfo = ADLDisplayModeInfo;
- {$EXTERNALSYM TADLDisplayModeInfo}
-
+type
+ ADLDisplayModeInfo = record
+ /// Timing standard of the current mode. \ref define_modetiming_standard
+ iTimingStandard: integer;
+ /// Applicable timing standards for the current mode.
+ iPossibleStandard: integer;
+ /// Refresh rate factor.
+ iRefreshRate: integer;
+ /// Num of pixels in a row.
+ iPelsWidth: integer;
+ /// Num of pixels in a column.
+ iPelsHeight: integer;
+ /// Detailed timing parameters.
+ sDetailedTiming: ADLDetailedTiming;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about display property.
@@ -550,44 +536,37 @@ ADLDisplayModeInfo = record
/// This structure is used to store the display property for the current adapter.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayProperty = record
-/// Must be set to sizeof the structure
- iSize: Integer;
-/// Must be set to \ref ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE or \ref ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING
- iPropertyType: Integer;
-/// 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
- iExpansionMode: Integer;
-/// Display Property supported? 1: Supported, 0: Not supported
- iSupport: Integer;
-/// Display Property current value
- iCurrent: Integer;
-/// Display Property Default value
- iDefault: Integer;
- end;
- TADLDisplayProperty = ADLDisplayProperty;
- {$EXTERNALSYM TADLDisplayProperty}
-
+type
+ ADLDisplayProperty = record
+ /// Must be set to sizeof the structure
+ iSize: integer;
+ /// Must be set to \ref ADL_DL_DISPLAYPROPERTY_TYPE_EXPANSIONMODE or \ref ADL_DL_DISPLAYPROPERTY_TYPE_USEUNDERSCANSCALING
+ iPropertyType: integer;
+ /// 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
+ iExpansionMode: integer;
+ /// Display Property supported? 1: Supported, 0: Not supported
+ iSupport: integer;
+ /// Display Property current value
+ iCurrent: integer;
+ /// Display Property Default value
+ iDefault: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Clock.
///
-/// This structure is used to store the clock information for the current adapter
+/// This structure is used to store the clock information for the current adapter
/// such as core clock and memory clock info.
///\nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLClockInfo = record
-/// Core clock in 10 KHz.
- iCoreClock: Integer;
-/// Memory clock in 10 KHz.
- iMemoryClock: Integer;
- end;
- TADLClockInfo = ADLClockInfo;
- {$EXTERNALSYM TADLClockInfo}
- LPADLClockInfo = ^ADLClockInfo;
- {$EXTERNALSYM LPADLClockInfo}
-
+type
+ ADLClockInfo = record
+ /// Core clock in 10 KHz.
+ iCoreClock: integer;
+ /// Memory clock in 10 KHz.
+ iMemoryClock: integer;
+ end;
+ LPADLClockInfo = ^ADLClockInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about I2C.
@@ -596,28 +575,25 @@ ADLClockInfo = record
/// This structure is used by the ADL_Display_WriteAndReadI2C() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLI2C = record
- /// Size of the structure
- iSize: Integer;
-/// Numerical value representing hardware I2C.
- iLine: Integer;
-/// The 7-bit I2C slave device address, shifted one bit to the left.
- iAddress: Integer;
-/// The offset of the data from the address.
- iOffset: Integer;
-/// 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
- iAction: Integer;
-/// I2C clock speed in KHz.
- iSpeed: Integer;
-/// A numerical value representing the number of bytes to be sent or received on the I2C bus.
- iDataSize: Integer;
-/// Address of the characters which are to be sent or received on the I2C bus.
- pcData: PAnsiChar;
- end;
- TADLI2C = ADLI2C;
- {$EXTERNALSYM TADLI2C}
-
+type
+ ADLI2C = record
+ /// Size of the structure
+ iSize: integer;
+ /// Numerical value representing hardware I2C.
+ iLine: integer;
+ /// The 7-bit I2C slave device address, shifted one bit to the left.
+ iAddress: integer;
+ /// The offset of the data from the address.
+ iOffset: integer;
+ /// 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
+ iAction: integer;
+ /// I2C clock speed in KHz.
+ iSpeed: integer;
+ /// A numerical value representing the number of bytes to be sent or received on the I2C bus.
+ iDataSize: integer;
+ /// Address of the AnsiCharacters which are to be sent or received on the I2C bus.
+ pcData: PAnsiChar;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about EDID data.
@@ -626,69 +602,60 @@ ADLI2C = record
/// This structure is used by the ADL_Display_EdidData_Get() and ADL_Display_EdidData_Set() functions.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayEDIDData = record
-/// Size of the structure
- iSize: Integer;
-/// Set to 0
- iFlag: Integer;
- /// Size of cEDIDData. Set by ADL_Display_EdidData_Get() upon return
- iEDIDSize: Integer;
-/// 0, 1 or 2. If set to 3 or above an error ADL_ERR_INVALID_PARAM is generated
- iBlockIndex: Integer;
-/// EDID data
- cEDIDData : array[0..ADL_MAX_EDIDDATA_SIZE-1] of AnsiChar;
-/// Reserved
- iReserved : array[0..3] of Integer;
- end;
- TADLDisplayEDIDData = ADLDisplayEDIDData;
- {$EXTERNALSYM TADLDisplayEDIDData}
-
+type
+ ADLDisplayEDIDData = record
+ /// Size of the structure
+ iSize: integer;
+ /// Set to 0
+ iFlag: integer;
+ /// Size of cEDIDData. Set by ADL_Display_EdidData_Get() upon return
+ iEDIDSize: integer;
+ /// 0, 1 or 2. If set to 3 or above an error ADL_ERR_INVALID_PARAM is generated
+ iBlockIndex: integer;
+ /// EDID data
+ cEDIDData: array [0..ADL_MAX_EDIDDATA_SIZE - 1] of AnsiChar;
+ /// Reserved
+ iReserved: array[1..4] of integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about input of controller overlay adjustment.
///
-/// This structure is used to store the information about input of controller overlay adjustment for the adapter.
+/// This structure is used to store the information about input of controller overlay adjustment for the adapter.
/// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get, ADL_Display_ControllerOverlayAdjustmentData_Get, and
/// ADL_Display_ControllerOverlayAdjustmentData_Set() functions.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLControllerOverlayInput = record
-/// Should be set to the sizeof the structure
- iSize: Integer;
-///\ref ADL_DL_CONTROLLER_OVERLAY_ALPHA or \ref ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX
- iOverlayAdjust: Integer;
-/// Data.
- iValue: Integer;
-/// Should be 0.
- iReserved: Integer;
- end;
- TADLControllerOverlayInput = ADLControllerOverlayInput;
- {$EXTERNALSYM TADLControllerOverlayInput}
-
+type
+ ADLControllerOverlayInput = record
+ /// Should be set to the sizeof the structure
+ iSize: integer;
+ ///\ref ADL_DL_CONTROLLER_OVERLAY_ALPHA or \ref ADL_DL_CONTROLLER_OVERLAY_ALPHAPERPIX
+ iOverlayAdjust: integer;
+ /// Data.
+ iValue: integer;
+ /// Should be 0.
+ iReserved: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about overlay adjustment.
///
-/// This structure is used to store the information about overlay adjustment for the adapter.
+/// This structure is used to store the information about overlay adjustment for the adapter.
/// This structure is used by the ADLControllerOverlayInfo() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAdjustmentinfo = record
-/// Default value
- iDefault: Integer;
-/// Minimum value
- iMin: Integer;
-/// Maximum Value
- iMax: Integer;
-/// Step value
- iStep: Integer;
- end;
- TADLAdjustmentinfo = ADLAdjustmentinfo;
- {$EXTERNALSYM TADLAdjustmentinfo}
-
+type
+ ADLAdjustmentinfo = record
+ /// Default value
+ iDefault: integer;
+ /// Minimum value
+ iMin: integer;
+ /// Maximum Value
+ iMax: integer;
+ /// Step value
+ iStep: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about controller overlay information.
@@ -697,18 +664,15 @@ ADLAdjustmentinfo = record
/// This structure is used by the ADL_Display_ControllerOverlayAdjustmentCaps_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLControllerOverlayInfo = record
-/// Should be set to the sizeof the structure
- iSize: Integer;
-/// Data.
- sOverlayInfo: ADLAdjustmentinfo;
-/// Should be 0.
- iReserved : array[0..2] of Integer;
- end;
- TADLControllerOverlayInfo = ADLControllerOverlayInfo;
- {$EXTERNALSYM TADLControllerOverlayInfo}
-
+type
+ ADLControllerOverlayInfo = record
+ /// Should be set to the sizeof the structure
+ iSize: integer;
+ /// Data.
+ sOverlayInfo: ADLAdjustmentinfo;
+ /// Should be 0.
+ iReserved: array[1..3] of integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync module information.
@@ -717,22 +681,18 @@ ADLControllerOverlayInfo = record
/// Workstation Framelock/Genlock.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGLSyncModuleID = record
-/// Unique GL-Sync module ID.
- iModuleID: Integer;
-/// GL-Sync GPU port index (to be passed into ADLGLSyncGenlockConfig.lSignalSource and ADLGlSyncPortControl.lSignalSource).
- iGlSyncGPUPort: Integer;
-/// GL-Sync module firmware version of Boot Sector.
- iFWBootSectorVersion: Integer;
-/// GL-Sync module firmware version of User Sector.
- iFWUserSectorVersion: Integer;
- end;
- TADLGLSyncModuleID = ADLGLSyncModuleID;
- {$EXTERNALSYM TADLGLSyncModuleID}
- LPADLGLSyncModuleID = ^ADLGLSyncModuleID;
- {$EXTERNALSYM LPADLGLSyncModuleID}
-
+type
+ ADLGLSyncModuleID = record
+ /// Unique GL-Sync module ID.
+ iModuleID: integer;
+ /// GL-Sync GPU port index (to be passed into ADLGLSyncGenlockConfig.lSignalSource and ADLGlSyncPortControl.lSignalSource).
+ iGlSyncGPUPort: integer;
+ /// GL-Sync module firmware version of Boot Sector.
+ iFWBootSectorVersion: integer;
+ /// GL-Sync module firmware version of User Sector.
+ iFWUserSectorVersion: integer;
+ end;
+ LPADLGLSyncModuleID = ^ADLGLSyncModuleID;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync ports capabilities.
@@ -741,169 +701,143 @@ ADLGLSyncModuleID = record
/// for Workstation Framelock/Genlock (such as port type and number of associated LEDs).
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGLSyncPortCaps = record
-/// Port type. Bitfield of ADL_GLSYNC_PORTTYPE_* \ref define_glsync
- iPortType: Integer;
-/// Number of LEDs associated for this port.
- iNumOfLEDs: Integer;
- end;
- TADLGLSyncPortCaps = ADLGLSyncPortCaps;
- {$EXTERNALSYM TADLGLSyncPortCaps}
- LPADLGLSyncPortCaps = ^ADLGLSyncPortCaps;
- {$EXTERNALSYM LPADLGLSyncPortCaps}
-
+type
+ ADLGLSyncPortCaps = record
+ /// Port type. Bitfield of ADL_GLSYNC_PORTTYPE_* \ref define_glsync
+ iPortType: integer;
+ /// Number of LEDs associated for this port.
+ iNumOfLEDs: integer;
+ end;
+ LPADLGLSyncPortCaps = ^ADLGLSyncPortCaps;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync Genlock settings.
///
/// This structure is used to get and set genlock settings for the GPU ports of the GL-Sync module
/// for Workstation Framelock/Genlock.\n
-/// \see define_glsync
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGLSyncGenlockConfig = record
-/// Specifies what fields in this structure are valid \ref define_glsync
- iValidMask: Integer;
-/// Delay (ms) generating a sync signal.
- iSyncDelay: Integer;
-/// Vector of framelock control bits. Bitfield of ADL_GLSYNC_FRAMELOCKCNTL_* \ref define_glsync
- iFramelockCntlVector: Integer;
-/// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
- iSignalSource: Integer;
-/// Use sampled sync signal. A value of 0 specifies no sampling.
- iSampleRate: Integer;
-/// For interlaced sync signals, the value can be ADL_GLSYNC_SYNCFIELD_1 or *_BOTH \ref define_glsync
- iSyncField: Integer;
-/// The signal edge that should trigger synchronization. ADL_GLSYNC_TRIGGEREDGE_* \ref define_glsync
- iTriggerEdge: Integer;
-/// Scan rate multiplier applied to the sync signal. ADL_GLSYNC_SCANRATECOEFF_* \ref define_glsync
- iScanRateCoeff: Integer;
- end;
- TADLGLSyncGenlockConfig = ADLGLSyncGenlockConfig;
- {$EXTERNALSYM TADLGLSyncGenlockConfig}
- LPADLGLSyncGenlockConfig = ^ADLGLSyncGenlockConfig;
- {$EXTERNALSYM LPADLGLSyncGenlockConfig}
-
+/// \see define_glsync
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLGLSyncGenlockConfig = record
+ /// Specifies what fields in this structure are valid \ref define_glsync
+ iValidMask: integer;
+ /// Delay (ms) generating a sync signal.
+ iSyncDelay: integer;
+ /// Vector of framelock control bits. Bitfield of ADL_GLSYNC_FRAMELOCKCNTL_* \ref define_glsync
+ iFramelockCntlVector: integer;
+ /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
+ iSignalSource: integer;
+ /// Use sampled sync signal. A value of 0 specifies no sampling.
+ iSampleRate: integer;
+ /// For interlaced sync signals, the value can be ADL_GLSYNC_SYNCFIELD_1 or *_BOTH \ref define_glsync
+ iSyncField: integer;
+ /// The signal edge that should trigger synchronization. ADL_GLSYNC_TRIGGEREDGE_* \ref define_glsync
+ iTriggerEdge: integer;
+ /// Scan rate multiplier applied to the sync signal. ADL_GLSYNC_SCANRATECOEFF_* \ref define_glsync
+ iScanRateCoeff: integer;
+ end;
+ LPADLGLSyncGenlockConfig = ^ADLGLSyncGenlockConfig;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync port information.
///
/// This structure is used to get status of the GL-Sync ports (BNC or RJ45s)
/// for Workstation Framelock/Genlock.
-/// \see define_glsync
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGlSyncPortInfo = record
-/// Type of GL-Sync port (ADL_GLSYNC_PORT_*).
- iPortType: Integer;
-/// The number of LEDs for this port. It's also filled within ADLGLSyncPortCaps.
- iNumOfLEDs: Integer;
-/// Port state ADL_GLSYNC_PORTSTATE_* \ref define_glsync
- iPortState: Integer;
- /// Scanned frequency for this port (vertical refresh rate in milliHz; 60000 means 60 Hz).
- iFrequency: Integer;
-/// Used for ADL_GLSYNC_PORT_BNC. It is ADL_GLSYNC_SIGNALTYPE_* \ref define_glsync
- iSignalType: Integer;
-/// Used for ADL_GLSYNC_PORT_RJ45PORT*. It is GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_*. \ref define_glsync
- iSignalSource: Integer;
- end;
- TADLGlSyncPortInfo = ADLGlSyncPortInfo;
- {$EXTERNALSYM TADLGlSyncPortInfo}
- LPADLGlSyncPortInfo = ^ADLGlSyncPortInfo;
- {$EXTERNALSYM LPADLGlSyncPortInfo}
+/// \see define_glsync
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLGlSyncPortInfo = record
+ /// Type of GL-Sync port (ADL_GLSYNC_PORT_*).
+ iPortType: integer;
+ /// The number of LEDs for this port. It's also filled within ADLGLSyncPortCaps.
+ iNumOfLEDs: integer;
+ /// Port state ADL_GLSYNC_PORTSTATE_* \ref define_glsync
+ iPortState: integer;
+ /// Scanned frequency for this port (vertical refresh rate in milliHz; 60000 means 60 Hz).
+ iFrequency: integer;
+ /// Used for ADL_GLSYNC_PORT_BNC. It is ADL_GLSYNC_SIGNALTYPE_* \ref define_glsync
+ iSignalType: integer;
+ /// Used for ADL_GLSYNC_PORT_RJ45PORT*. It is GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_*. \ref define_glsync
+ iSignalSource: integer;
+ end;
+ LPADLGlSyncPortInfo = ^ADLGlSyncPortInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync port control settings.
///
/// This structure is used to configure the GL-Sync ports (RJ45s only)
/// for Workstation Framelock/Genlock.
-/// \see define_glsync
+/// \see define_glsync
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGlSyncPortControl = record
-/// Port to control ADL_GLSYNC_PORT_RJ45PORT1 or ADL_GLSYNC_PORT_RJ45PORT2 \ref define_glsync
- iPortType: Integer;
-/// Port control data ADL_GLSYNC_PORTCNTL_* \ref define_glsync
- iControlVector: Integer;
-/// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
- iSignalSource: Integer;
- end;
- TADLGlSyncPortControl = ADLGlSyncPortControl;
- {$EXTERNALSYM TADLGlSyncPortControl}
-
+type
+ ADLGlSyncPortControl = record
+ /// Port to control ADL_GLSYNC_PORT_RJ45PORT1 or ADL_GLSYNC_PORT_RJ45PORT2 \ref define_glsync
+ iPortType: integer;
+ /// Port control data ADL_GLSYNC_PORTCNTL_* \ref define_glsync
+ iControlVector: integer;
+ /// Source of the sync signal. Either GL_Sync GPU Port index or ADL_GLSYNC_SIGNALSOURCE_* \ref define_glsync
+ iSignalSource: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync mode of a display.
///
/// This structure is used to get and set GL-Sync mode settings for a display connected to
/// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
-/// \see define_glsync
+/// \see define_glsync
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGlSyncMode = record
-/// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
- iControlVector: Integer;
-/// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
- iStatusVector: Integer;
-/// Index of GL-Sync connector used to genlock the display/controller.
- iGLSyncConnectorIndex: Integer;
- end;
- TADLGlSyncMode = ADLGlSyncMode;
- {$EXTERNALSYM TADLGlSyncMode}
- LPADLGlSyncMode = ^ADLGlSyncMode;
- {$EXTERNALSYM LPADLGlSyncMode}
-
+type
+ ADLGlSyncMode = record
+ /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
+ iControlVector: integer;
+ /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
+ iStatusVector: integer;
+ /// Index of GL-Sync connector used to genlock the display/controller.
+ iGLSyncConnectorIndex: integer;
+ end;
+ LPADLGlSyncMode = ^ADLGlSyncMode;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing GL-Sync mode of a display.
///
/// This structure is used to get and set GL-Sync mode settings for a display connected to
/// an adapter attached to a GL-Sync module for Workstation Framelock/Genlock.
-/// \see define_glsync
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLGlSyncMode2 = record
-/// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
- iControlVector: Integer;
-/// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
- iStatusVector: Integer;
-/// Index of GL-Sync connector used to genlock the display/controller.
- iGLSyncConnectorIndex: Integer;
-/// Index of the display to which this GLSync applies to.
- iDisplayIndex: Integer;
- end;
- TADLGlSyncMode2 = ADLGlSyncMode2;
- {$EXTERNALSYM TADLGlSyncMode2}
- LPADLGlSyncMode2 = ^ADLGlSyncMode2;
- {$EXTERNALSYM LPADLGlSyncMode2}
-
-
+/// \see define_glsync
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLGlSyncMode2 = record
+ /// Mode control vector. Bitfield of ADL_GLSYNC_MODECNTL_* \ref define_glsync
+ iControlVector: integer;
+ /// Mode status vector. Bitfield of ADL_GLSYNC_MODECNTL_STATUS_* \ref define_glsync
+ iStatusVector: integer;
+ /// Index of GL-Sync connector used to genlock the display/controller.
+ iGLSyncConnectorIndex: integer;
+ /// Index of the display to which this GLSync applies to.
+ iDisplayIndex: integer;
+ end;
+ LPADLGlSyncMode2 = ^ADLGlSyncMode2;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the packet info of a display.
///
-/// This structure is used to get and set the packet information of a display.
+/// This structure is used to get and set the packet information of a display.
/// This structure is used by ADLDisplayDataPacket.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLInfoPacket = record
- hb0: AnsiChar;
- hb1: AnsiChar;
- hb2: AnsiChar;
-/// sb0~sb27
- sb : array[0..27] of AnsiChar;
- end;
- TADLInfoPacket = ADLInfoPacket;
- {$EXTERNALSYM TADLInfoPacket}
-
+type
+ ADLInfoPacket = record
+ hb0: AnsiChar;
+ hb1: AnsiChar;
+ hb2: AnsiChar;
+ /// sb0~sb27
+ sb: array[0..27] of AnsiChar;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the AVI packet info of a display.
@@ -912,16 +846,13 @@ ADLInfoPacket = record
/// This structure is used by ADLDisplayDataPacket.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAVIInfoPacket = record //Valid user defined data/
-/// byte 3, bit 7
- bPB3_ITC: AnsiChar;
-/// byte 5, bit [7:4].
- bPB5: AnsiChar;
+type
+ ADLAVIInfoPacket = record //Valid user defined data/
+ /// byte 3, bit 7
+ bPB3_ITC: AnsiChar;
+ /// byte 5, bit [7:4].
+ bPB5: AnsiChar;
end;
- TADLAVIInfoPacket = ADLAVIInfoPacket; //Valid user defined data/;
- {$EXTERNALSYM ADLAVIInfoPacket}
-
// Overdrive clock setting structure definition.
@@ -932,24 +863,21 @@ ADLAVIInfoPacket = record //Valid user defined data/
/// This structure is used by ADLAdapterODClockInfo.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLODClockSetting = record
-/// Deafult clock
- iDefaultClock: Integer;
-/// Current clock
- iCurrentClock: Integer;
-/// Maximum clcok
- iMaxClock: Integer;
-/// Minimum clock
- iMinClock: Integer;
-/// Requested clcock
- iRequestedClock: Integer;
-/// Step
- iStepClock: Integer;
- end;
- TADLODClockSetting = ADLODClockSetting;
- {$EXTERNALSYM TADLODClockSetting}
-
+type
+ ADLODClockSetting = record
+ /// Deafult clock
+ iDefaultClock: integer;
+ /// Current clock
+ iCurrentClock: integer;
+ /// Maximum clcok
+ iMaxClock: integer;
+ /// Minimum clock
+ iMinClock: integer;
+ /// Requested clcock
+ iRequestedClock: integer;
+ /// Step
+ iStepClock: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the Overdrive clock information.
@@ -958,20 +886,17 @@ ADLODClockSetting = record
/// This structure is used by the ADL_Display_ODClockInfo_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAdapterODClockInfo = record
-/// Size of the structure
- iSize: Integer;
-/// Flag \ref define_clockinfo_flags
- iFlags: Integer;
-/// Memory Clock
- sMemoryClock: ADLODClockSetting;
-/// Engine Clock
- sEngineClock: ADLODClockSetting;
- end;
- TADLAdapterODClockInfo = ADLAdapterODClockInfo;
- {$EXTERNALSYM TADLAdapterODClockInfo}
-
+type
+ ADLAdapterODClockInfo = record
+ /// Size of the structure
+ iSize: integer;
+ /// Flag \ref define_clockinfo_flags
+ iFlags: integer;
+ /// Memory Clock
+ sMemoryClock: ADLODClockSetting;
+ /// Engine Clock
+ sEngineClock: ADLODClockSetting;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the Overdrive clock configuration.
@@ -980,20 +905,17 @@ ADLAdapterODClockInfo = record
/// This structure is used by the ADL_Display_ODClockConfig_Set() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAdapterODClockConfig = record
-/// Size of the structure
- iSize: Integer;
-/// Flag \ref define_clockinfo_flags
- iFlags: Integer;
-/// Memory Clock
- iMemoryClock: Integer;
-/// Engine Clock
- iEngineClock: Integer;
- end;
- TADLAdapterODClockConfig = ADLAdapterODClockConfig;
- {$EXTERNALSYM TADLAdapterODClockConfig}
-
+type
+ ADLAdapterODClockConfig = record
+ /// Size of the structure
+ iSize: integer;
+ /// Flag \ref define_clockinfo_flags
+ iFlags: integer;
+ /// Memory Clock
+ iMemoryClock: integer;
+ /// Engine Clock
+ iEngineClock: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about current power management related activity.
@@ -1002,32 +924,30 @@ ADLAdapterODClockConfig = record
/// This structure (Overdrive 5 interfaces) is used by the ADL_PM_CurrentActivity_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPMActivity = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// Current engine clock.
- iEngineClock: Integer;
-/// Current memory clock.
- iMemoryClock: Integer;
-/// Current core voltage.
- iVddc: Integer;
-/// GPU utilization.
- iActivityPercent: Integer;
-/// Performance level index.
- iCurrentPerformanceLevel: Integer;
-/// Current PCIE bus speed.
- iCurrentBusSpeed: Integer;
-/// Number of PCIE bus lanes.
- iCurrentBusLanes: Integer;
-/// Maximum number of PCIE bus lanes.
- iMaximumBusLanes: Integer;
-/// Reserved for future purposes.
- iReserved: Integer;
- end;
- TADLPMActivity = ADLPMActivity;
- {$EXTERNALSYM TADLPMActivity}
-
+type
+ ADLPMActivity = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// Current engine clock.
+ iEngineClock: integer;
+ /// Current memory clock.
+ iMemoryClock: integer;
+ /// Current core voltage.
+ iVddc: integer;
+ /// GPU utilization.
+ iActivityPercent: integer;
+ /// Performance level index.
+ iCurrentPerformanceLevel: integer;
+ /// Current PCIE bus speed.
+ iCurrentBusSpeed: integer;
+ /// Number of PCIE bus lanes.
+ iCurrentBusLanes: integer;
+ /// Maximum number of PCIE bus lanes.
+ iMaximumBusLanes: integer;
+ /// Reserved for future purposes.
+ iReserved: integer;
+ end;
+ TADLPMActivity = ADLPMActivity;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about thermal controller.
@@ -1036,38 +956,34 @@ ADLPMActivity = record
/// This structure is used by ADL_PM_ThermalDevices_Enum.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLThermalControllerInfo = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
- iThermalDomain: Integer;
-/// GPU 0, 1, etc.
- iDomainIndex: Integer;
-/// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
- iFlags: Integer;
- end;
- TADLThermalControllerInfo = ADLThermalControllerInfo;
- {$EXTERNALSYM TADLThermalControllerInfo}
-
+type
+ ADLThermalControllerInfo = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// Possible valies: \ref ADL_DL_THERMAL_DOMAIN_OTHER or \ref ADL_DL_THERMAL_DOMAIN_GPU.
+ iThermalDomain: integer;
+ /// GPU 0, 1, etc.
+ iDomainIndex: integer;
+ /// Possible valies: \ref ADL_DL_THERMAL_FLAG_INTERRUPT or \ref ADL_DL_THERMAL_FLAG_FANCONTROL
+ iFlags: integer;
+ end;
+ TADLThermalControllerInfo = ADLThermalControllerInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about thermal controller temperature.
///
-/// This structure is used to store information about thermal controller temperature.
+/// This structure is used to store information about thermal controller temperature.
/// This structure is used by the ADL_PM_Temperature_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLTemperature = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// Temperature in millidegrees Celsius.
- iTemperature: Integer;
- end;
- TADLTemperature = ADLTemperature;
- {$EXTERNALSYM TADLTemperature}
-
+type
+ ADLTemperature = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// Temperature in millidegrees Celsius.
+ iTemperature: integer;
+ end;
+ TADLTemperature = ADLTemperature;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about thermal controller fan speed.
@@ -1076,24 +992,22 @@ ADLTemperature = record
/// This structure is used by the ADL_PM_FanSpeedInfo_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLFanSpeedInfo = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// \ref define_fanctrl
- iFlags: Integer;
-/// Minimum possible fan speed value in percents.
- iMinPercent: Integer;
-/// Maximum possible fan speed value in percents.
- iMaxPercent: Integer;
-/// Minimum possible fan speed value in RPM.
- iMinRPM: Integer;
-/// Maximum possible fan speed value in RPM.
- iMaxRPM: Integer;
- end;
- TADLFanSpeedInfo = ADLFanSpeedInfo;
- {$EXTERNALSYM TADLFanSpeedInfo}
-
+type
+ ADLFanSpeedInfo = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// \ref define_fanctrl
+ iFlags: integer;
+ /// Minimum possible fan speed value in percents.
+ iMinPercent: integer;
+ /// Maximum possible fan speed value in percents.
+ iMaxPercent: integer;
+ /// Minimum possible fan speed value in RPM.
+ iMinRPM: integer;
+ /// Maximum possible fan speed value in RPM.
+ iMaxRPM: integer;
+ end;
+ TADLFanSpeedInfo = ADLFanSpeedInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about fan speed reported by thermal controller.
@@ -1102,20 +1016,18 @@ ADLFanSpeedInfo = record
/// This structure is used by the ADL_Overdrive5_FanSpeed_Get() and ADL_Overdrive5_FanSpeed_Set() functions.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLFanSpeedValue = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
- iSpeedType: Integer;
-/// Fan speed value
- iFanSpeed: Integer;
-/// The only flag for now is: \ref ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED
- iFlags: Integer;
- end;
- TADLFanSpeedValue = ADLFanSpeedValue;
- {$EXTERNALSYM TADLFanSpeedValue}
-
+type
+ ADLFanSpeedValue = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// Possible valies: \ref ADL_DL_FANCTRL_SPEED_TYPE_PERCENT or \ref ADL_DL_FANCTRL_SPEED_TYPE_RPM
+ iSpeedType: integer;
+ /// Fan speed value
+ iFanSpeed: integer;
+ /// The only flag for now is: \ref ADL_DL_FANCTRL_FLAG_USER_DEFINED_SPEED
+ iFlags: integer;
+ end;
+ TADLFanSpeedValue = ADLFanSpeedValue;
////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the range of Overdrive parameter.
@@ -1124,18 +1036,15 @@ ADLFanSpeedValue = record
/// This structure is used by ADLODParameters.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLODParameterRange = record
-/// Minimum parameter value.
- iMin: Integer;
-/// Maximum parameter value.
- iMax: Integer;
-/// Parameter step value.
- iStep: Integer;
- end;
- TADLODParameterRange = ADLODParameterRange;
- {$EXTERNALSYM TADLODParameterRange}
-
+type
+ ADLODParameterRange = record
+ /// Minimum parameter value.
+ iMin: integer;
+ /// Maximum parameter value.
+ iMax: integer;
+ /// Parameter step value.
+ iStep: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive parameters.
@@ -1144,28 +1053,26 @@ ADLODParameterRange = record
/// This structure is used by the ADL_Overdrive5_ODParameters_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLODParameters = record
-/// Must be set to the size of the structure
- iSize: Integer;
-/// Number of standard performance states.
- iNumberOfPerformanceLevels: Integer;
-/// Indicates whether the GPU is capable to measure its activity.
- iActivityReportingSupported: Integer;
-/// Indicates whether the GPU supports discrete performance levels or performance range.
- iDiscretePerformanceLevels: Integer;
-/// Reserved for future use.
- iReserved: Integer;
-/// Engine clock range.
- sEngineClock: ADLODParameterRange;
-/// Memory clock range.
- sMemoryClock: ADLODParameterRange;
-/// Core voltage range.
- sVddc: ADLODParameterRange;
- end;
- TADLODParameters = ADLODParameters;
- {$EXTERNALSYM TADLODParameters}
-
+type
+ ADLODParameters = record
+ /// Must be set to the size of the structure
+ iSize: integer;
+ /// Number of standard performance states.
+ iNumberOfPerformanceLevels: integer;
+ /// Indicates whether the GPU is capable to measure its activity.
+ iActivityReportingSupported: integer;
+ /// Indicates whether the GPU supports discrete performance levels or performance range.
+ iDiscretePerformanceLevels: integer;
+ /// Reserved for future use.
+ iReserved: integer;
+ /// Engine clock range.
+ sEngineClock: ADLODParameterRange;
+ /// Memory clock range.
+ sMemoryClock: ADLODParameterRange;
+ /// Core voltage range.
+ sVddc: ADLODParameterRange;
+ end;
+ TADLODParameters = ADLODParameters;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive level.
@@ -1174,18 +1081,15 @@ ADLODParameters = record
/// This structure is used by ADLODPerformanceLevels.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLODPerformanceLevel = record
-/// Engine clock.
- iEngineClock: Integer;
-/// Memory clock.
- iMemoryClock: Integer;
-/// Core voltage.
- iVddc: Integer;
- end;
- TADLODPerformanceLevel = ADLODPerformanceLevel;
- {$EXTERNALSYM TADLODPerformanceLevel}
-
+type
+ ADLODPerformanceLevel = record
+ /// Engine clock.
+ iEngineClock: integer;
+ /// Memory clock.
+ iMemoryClock: integer;
+ /// Core voltage.
+ iVddc: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive performance levels.
@@ -1194,17 +1098,15 @@ ADLODPerformanceLevel = record
/// This structure is used by the ADL_Overdrive5_ODPerformanceLevels_Get() and ADL_Overdrive5_ODPerformanceLevels_Set() functions.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLODPerformanceLevels = record
-/// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
- iSize: Integer;
- iReserved: Integer;
-/// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
- aLevels : array[0..0] of ADLODPerformanceLevel;
- end;
- TADLODPerformanceLevels = ADLODPerformanceLevels;
- {$EXTERNALSYM TADLODPerformanceLevels}
-
+type
+ ADLODPerformanceLevels = record
+ /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
+ iSize: integer;
+ iReserved: integer;
+ /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
+ aLevels: array[0..0] of ADLODPerformanceLevel;
+ end;
+ TADLODPerformanceLevels = ADLODPerformanceLevels;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the proper CrossfireX chains combinations.
@@ -1213,16 +1115,13 @@ ADLODPerformanceLevels = record
/// This structure is used by the ADL_Adapter_Crossfire_Caps(), ADL_Adapter_Crossfire_Get(), and ADL_Adapter_Crossfire_Set() functions.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLCrossfireComb = record
-/// Number of adapters in this combination.
- iNumLinkAdapter: Integer;
-/// A list of ADL indexes of the linked adapters in this combination.
- iAdaptLink : array[0..2] of Integer;
- end;
- TADLCrossfireComb = ADLCrossfireComb;
- {$EXTERNALSYM TADLCrossfireComb}
-
+type
+ ADLCrossfireComb = record
+ /// Number of adapters in this combination.
+ iNumLinkAdapter: integer;
+ /// A list of ADL indexes of the linked adapters in this combination.
+ iAdaptLink: array[0..2] of integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing CrossfireX state and error information.
@@ -1231,38 +1130,31 @@ ADLCrossfireComb = record
/// This structure is used by the ADL_Adapter_Crossfire_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLCrossfireInfo = record
-/// Current error code of this CrossfireX combination.
- iErrorCode: Integer;
-/// Current \ref define_crossfirestate
- iState: Integer;
-/// If CrossfireX is supported by this combination. The value is either \ref ADL_TRUE or \ref ADL_FALSE.
- iSupported: Integer;
- end;
- TADLCrossfireInfo = ADLCrossfireInfo;
- {$EXTERNALSYM TADLCrossfireInfo}
-
+type
+ ADLCrossfireInfo = record
+ /// Current error code of this CrossfireX combination.
+ iErrorCode: integer;
+ /// Current \ref define_crossfirestate
+ iState: integer;
+ /// If CrossfireX is supported by this combination. The value is either \ref ADL_TRUE or \ref ADL_FALSE.
+ iSupported: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about the BIOS.
///
-/// This structure is used to store various information about the Chipset. This
+/// This structure is used to store various information about the Chipset. This
/// information can be returned to the user.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLBiosInfo = record
- strPartNumber : array[0..ADL_MAX_PATH-1] of AnsiChar; ///< Part number.
- strVersion : array[0..ADL_MAX_PATH-1] of AnsiChar; ///< Version number.
- strDate : array[0..ADL_MAX_PATH-1] of AnsiChar; ///< BIOS date in yyyy/mm/dd hhmm format.
- end;
- TADLBiosInfo = ADLBiosInfo;
- {$EXTERNALSYM TADLBiosInfo}
- LPADLBiosInfo = ^ADLBiosInfo;
- {$EXTERNALSYM LPADLBiosInfo}
-
-
+type
+ ADLBiosInfo = record
+ strPartNumber: array[0..ADL_MAX_PATH - 1] of AnsiChar;///< Part number.
+ strVersion: array[0..ADL_MAX_PATH - 1] of AnsiChar;///< Version number.
+ strDate: array[0..ADL_MAX_PATH - 1] of AnsiChar;///< BIOS date in yyyy/mm/dd hh:mm format.
+ end;
+ TADLBiosInfo = ADLBiosInfo;
+ LPADLBiosInfo = ^ADLBiosInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about adapter location.
@@ -1271,21 +1163,53 @@ ADLBiosInfo = record
/// This structure is used by ADLMVPUStatus.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAdapterLocation = record
-/// PCI Bus number : 8 bits
- iBus: Integer;
-/// Device number : 5 bits
- iDevice: Integer;
-/// Function number : 3 bits
- iFunction: Integer;
- end;
- TADLAdapterLocation = ADLAdapterLocation;
- {$EXTERNALSYM TADLAdapterLocation}
- ADLBdf = ADLAdapterLocation;
- {$EXTERNALSYM ADLBdf}
+type
+ ADLAdapterLocation = record
+ /// PCI Bus number : 8 bits
+ iBus: integer;
+ /// Device number : 5 bits
+ iDevice: integer;
+ /// Function number : 3 bits
+ iFunction: integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+/// \brief Structure containing version information
+///
+/// This structure is used to store software version information, description of the display device and a web link to the latest installed Catalyst drivers.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLVersionsInfo = record
+ /// Driver Release (Packaging) Version (e.g. 8.71-100128n-094835E-ATI)
+ strDriverVer: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Catalyst Version(e.g. "10.1").
+ strCatalystVersion: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Web link to an XML file with information about the latest AMD drivers and locations (e.g. "http://www.amd.com/us/driverxml" )
+ strCatalystWebLink: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+
+ end;
+ LPADLVersionsInfo = ^ADLVersionsInfo;
+/////////////////////////////////////////////////////////////////////////////////////////////
+/// \brief Structure containing version information
+///
+/// This structure is used to store software version information, description of the display device and a web link to the latest installed Catalyst drivers.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLVersionsInfoX2 = record
+ /// Driver Release (Packaging) Version (e.g. "16.20.1035-160621a-303814C")
+ strDriverVer: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Catalyst Version(e.g. "15.8").
+ strCatalystVersion: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Crimson Version(e.g. "16.6.2").
+ strCrimsonVersion: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// Web link to an XML file with information about the latest AMD drivers and locations (e.g. "http://support.amd.com/drivers/xml/driver_09_us.xml" )
+ strCatalystWebLink: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ end;
+ LPADLVersionsInfoX2 = ^ADLVersionsInfoX2;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about MultiVPU capabilities.
@@ -1294,22 +1218,19 @@ ADLAdapterLocation = record
/// This structure is used by the ADL_Display_MVPUCaps_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMVPUCaps = record
-/// Must be set to sizeof( ADLMVPUCaps ).
- iSize: Integer;
-/// Number of adapters.
- iAdapterCount: Integer;
-/// Bits set for all possible MVPU masters. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
- iPossibleMVPUMasters: Integer;
-/// Bits set for all possible MVPU slaves. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
- iPossibleMVPUSlaves: Integer;
-/// Registry path for each adapter.
- cAdapterPath: array[0..ADL_DL_MAX_MVPU_ADAPTERS-1] of array[0..ADL_DL_MAX_REGISTRY_PATH] of AnsiChar;
- end;
- TADLMVPUCaps = ADLMVPUCaps;
- {$EXTERNALSYM TADLMVPUCaps}
-
+type
+ ADLMVPUCaps = record
+ /// Must be set to sizeof( ADLMVPUCaps ).
+ iSize: integer;
+ /// Number of adapters.
+ iAdapterCount: integer;
+ /// Bits set for all possible MVPU masters. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
+ iPossibleMVPUMasters: integer;
+ /// Bits set for all possible MVPU slaves. \ref MVPU_ADAPTER_0 .. \ref MVPU_ADAPTER_3
+ iPossibleMVPUSlaves: integer;
+ /// Registry path for each adapter.
+ cAdapterPath: array[0..ADL_DL_MAX_MVPU_ADAPTERS - 1, 0..ADL_DL_MAX_REGISTRY_PATH - 1] of AnsiChar;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about MultiVPU status.
@@ -1318,20 +1239,17 @@ ADLMVPUCaps = record
/// Ths structure is used by the ADL_Display_MVPUStatus_Get() function.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMVPUStatus = record
-/// Must be set to sizeof( ADLMVPUStatus ).
- iSize: Integer;
-/// Number of active adapters.
- iActiveAdapterCount: Integer;
-/// MVPU status.
- iStatus: Integer;
-/// PCI Bus/Device/Function for each active adapter participating in MVPU.
- aAdapterLocation : array[0..ADL_DL_MAX_MVPU_ADAPTERS-1] of ADLAdapterLocation;
- end;
- TADLMVPUStatus = ADLMVPUStatus;
- {$EXTERNALSYM TADLMVPUStatus}
-
+type
+ ADLMVPUStatus = record
+ /// Must be set to sizeof( ADLMVPUStatus ).
+ iSize: integer;
+ /// Number of active adapters.
+ iActiveAdapterCount: integer;
+ /// MVPU status.
+ iStatus: integer;
+ /// PCI Bus/Device/Function for each active adapter participating in MVPU.
+ aAdapterLocation: array[0..ADL_DL_MAX_MVPU_ADAPTERS - 1] of ADLAdapterLocation;
+ end;
// Displays Manager structures
@@ -1339,68 +1257,59 @@ ADLMVPUStatus = record
/// \brief Structure containing information about the activatable source.
///
/// This structure is used to store activatable source information
-/// This information can be returned to the user.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLActivatableSource = record
- /// The Persistent logical Adapter Index.
- iAdapterIndex: Integer;
- /// The number of Activatable Sources.
- iNumActivatableSources: Integer;
- /// The bit mask identifies the number of bits ActivatableSourceValue is using. (Not currnetly used)
- iActivatableSourceMask: Integer;
- /// The bit mask identifies the status. (Not currnetly used)
- iActivatableSourceValue: Integer;
- end;
- TADLActivatableSource = ADLActivatableSource;
- {$EXTERNALSYM TADLActivatableSource}
- LPADLActivatableSource = ^ADLActivatableSource;
- {$EXTERNALSYM LPADLActivatableSource}
-
+/// This information can be returned to the user.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLActivatableSource = record
+ /// The Persistent logical Adapter Index.
+ iAdapterIndex: integer;
+ /// The number of Activatable Sources.
+ iNumActivatableSources: integer;
+ /// The bit mask identifies the number of bits ActivatableSourceValue is using. (Not currnetly used)
+ iActivatableSourceMask: integer;
+ /// The bit mask identifies the status. (Not currnetly used)
+ iActivatableSourceValue: integer;
+ end;
+ LPADLActivatableSource = ^ADLActivatableSource;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about display mode.
///
-/// This structure is used to store the display mode for the current adapter
-/// such as X, Y positions, screen resolutions, orientation,
+/// This structure is used to store the display mode for the current adapter
+/// such as X, Y positions, screen resolutions, orientation,
/// color depth, refresh rate, progressive or interlace mode, etc.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLMode = record
-/// Adapter index.
- iAdapterIndex: Integer;
-/// Display IDs.
- displayID: ADLDisplayID;
-/// Screen position X coordinate.
- iXPos: Integer;
-/// Screen position Y coordinate.
- iYPos: Integer;
-/// Screen resolution Width.
- iXRes: Integer;
-/// Screen resolution Height.
- iYRes: Integer;
-/// Screen Color Depth. E.g., 16, 32.
- iColourDepth: Integer;
-/// Screen refresh rate. Could be fractional E.g. 59.97
- fRefreshRate: Single;
-/// Screen orientation. E.g., 0, 90, 180, 270.
- iOrientation: Integer;
-/// Vista mode flag indicating Progressive or Interlaced mode.
- iModeFlag: Integer;
-/// 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
- iModeMask: Integer;
-/// The bit mask identifying the display status. The detailed definition is in \ref define_displaymode
- iModeValue: Integer;
- end;
- TADLMode = ADLMode;
- {$EXTERNALSYM TADLMode}
- LPADLMode = ^ADLMode;
- {$EXTERNALSYM LPADLMode}
-
-
+type
+ ADLMode = record
+ /// Adapter index.
+ iAdapterIndex: integer;
+ /// Display IDs.
+ displayID: ADLDisplayID;
+ /// Screen position X coordinate.
+ iXPos: integer;
+ /// Screen position Y coordinate.
+ iYPos: integer;
+ /// Screen resolution Width.
+ iXRes: integer;
+ /// Screen resolution Height.
+ iYRes: integer;
+ /// Screen Color Depth. E.g., 16, 32.
+ iColourDepth: integer;
+ /// Screen refresh rate. Could be fractional E.g. 59.97
+ fRefreshRate: single;
+ /// Screen orientation. E.g., 0, 90, 180, 270.
+ iOrientation: integer;
+ /// Vista mode flag indicating Progressive or Interlaced mode.
+ iModeFlag: integer;
+ /// 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
+ iModeMask: integer;
+ /// The bit mask identifying the display status. The detailed definition is in \ref define_displaymode
+ iModeValue: integer;
+ end;
+ LPADLMode = ^ADLMode;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about display target information.
@@ -1408,55 +1317,58 @@ ADLMode = record
/// This structure is used to store the display target information.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayTarget = record
- /// The Display ID.
- displayID: ADLDisplayID;
- /// The display map index identify this manner and the desktop surface.
- iDisplayMapIndex: Integer;
- /// 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.
- iDisplayTargetMask: Integer;
- /// The bit mask identifies the display status. The detailed definition is in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
- iDisplayTargetValue: Integer;
- end;
- TADLDisplayTarget = ADLDisplayTarget;
- {$EXTERNALSYM TADLDisplayTarget}
- LPADLDisplayTarget = ^ADLDisplayTarget;
- {$EXTERNALSYM LPADLDisplayTarget}
+type
+ ADLDisplayTarget = record
+ /// The Display ID.
+ displayID: ADLDisplayID;
+ /// The display map index identify this manner and the desktop surface.
+ iDisplayMapIndex: integer;
+ /// 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.
+ iDisplayTargetMask: integer;
-/////////////////////////////////////////////////////////////////////////////////////////////
+ /// The bit mask identifies the display status. The detailed definition is in \ref ADL_DISPLAY_DISPLAYTARGET_PREFERRED.
+ iDisplayTargetValue: integer;
+
+ end;
+ LPADLDisplayTarget = ^ADLDisplayTarget;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display SLS bezel Mode information.
///
-/// This structure is used to store the display SLS bezel Mode information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- tagADLBezelTransientMode = record
- /// Adapter Index
- iAdapterIndex: Integer;
- /// SLS Map Index
- iSLSMapIndex: Integer;
- /// The mode index
- iSLSModeIndex: Integer;
- /// The mode
- displayMode: ADLMode;
- /// The number of bezel offsets belongs to this map
- iNumBezelOffset: Integer;
- /// The first bezel offset array index in the native mode array
- iFirstBezelOffsetArrayIndex: Integer;
+/// This structure is used to store the display SLS bezel Mode information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ tagADLBezelTransientMode = record
+ /// Adapter Index
+ iAdapterIndex: integer;
+
+ /// SLS Map Index
+ iSLSMapIndex: integer;
+
+ /// The mode index
+ iSLSModeIndex: integer;
+
+ /// The mode
+ displayMode: ADLMode;
+
+ /// The number of bezel offsets belongs to this map
+ iNumBezelOffset: integer;
+
+ /// The first bezel offset array index in the native mode array
+ iFirstBezelOffsetArrayIndex: integer;
+
/// The bit mask identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
- iSLSBezelTransientModeMask: Integer;
- /// The bit mask identifies the display status. The detail definition is defined below.
- iSLSBezelTransientModeValue: Integer;
- end;
- ADLBezelTransientMode = tagADLBezelTransientMode;
- {$EXTERNALSYM ADLBezelTransientMode}
- LPADLBezelTransientMode = ^tagADLBezelTransientMode;
- {$EXTERNALSYM LPADLBezelTransientMode}
+ iSLSBezelTransientModeMask: integer;
+ /// The bit mask identifies the display status. The detail definition is defined below.
+ iSLSBezelTransientModeValue: integer;
+ end;
+ ADLBezelTransientMode = tagADLBezelTransientMode;
+ LPADLBezelTransientMode = ^ADLBezelTransientMode;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about the adapter display manner.
@@ -1466,80 +1378,71 @@ tagADLBezelTransientMode = record
/// fetch various display device related display manner settings upon the user's request.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLAdapterDisplayCap = record
- /// The Persistent logical Adapter Index.
- iAdapterIndex: Integer;
- /// The bit mask identifies the number of bits AdapterDisplayCap is currently using. Sum all the bits defined in ADL_ADAPTER_DISPLAYCAP_XXX
- iAdapterDisplayCapMask: Integer;
- /// The bit mask identifies the status. Refer to ADL_ADAPTER_DISPLAYCAP_XXX
- iAdapterDisplayCapValue: Integer;
- end;
- TADLAdapterDisplayCap = ADLAdapterDisplayCap;
- {$EXTERNALSYM TADLAdapterDisplayCap}
- LPADLAdapterDisplayCap = ^ADLAdapterDisplayCap;
- {$EXTERNALSYM LPADLAdapterDisplayCap}
-
-
+type
+ ADLAdapterDisplayCap = record
+ /// The Persistent logical Adapter Index.
+ iAdapterIndex: integer;
+ /// The bit mask identifies the number of bits AdapterDisplayCap is currently using. Sum all the bits defined in ADL_ADAPTER_DISPLAYCAP_XXX
+ iAdapterDisplayCapMask: integer;
+ /// The bit mask identifies the status. Refer to ADL_ADAPTER_DISPLAYCAP_XXX
+ iAdapterDisplayCapValue: integer;
+ end;
+ LPADLAdapterDisplayCap = ^ADLAdapterDisplayCap;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about display mapping.
///
/// This structure is used to store the display mapping data such as display manner.
-/// For displays with horizontal or vertical stretch manner,
+/// For displays with horizontal or vertical stretch manner,
/// this structure also stores the display order, display row, and column data.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayMap = record
-/// 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.
- iDisplayMapIndex: Integer;
-/// The Display Mode for the current map
- displayMode: ADLMode;
-/// The number of display targets belongs to this map\n
- iNumDisplayTarget: Integer;
-/// The first target array index in the Target array\n
- iFirstDisplayTargetArrayIndex: Integer;
-/// 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.
- iDisplayMapMask: Integer;
-///The bit mask identifies the display status. The detailed definition is in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
- iDisplayMapValue: Integer;
- end;
- TADLDisplayMap = ADLDisplayMap;
- {$EXTERNALSYM TADLDisplayMap}
- LPADLDisplayMap = ^ADLDisplayMap;
- {$EXTERNALSYM LPADLDisplayMap}
+type
+ ADLDisplayMap = record
+ /// 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.
+ iDisplayMapIndex: integer;
+
+ /// The Display Mode for the current map
+ displayMode: ADLMode;
+
+ /// The number of display targets belongs to this map\n
+ iNumDisplayTarget: integer;
+
+ /// The first target array index in the Target array\n
+ iFirstDisplayTargetArrayIndex: integer;
+ /// 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.
+ iDisplayMapMask: integer;
+ ///The bit mask identifies the display status. The detailed definition is in ADL_DISPLAY_DISPLAYMAP_MANNER_xxx.
+ iDisplayMapValue: integer;
+
+ end;
+ LPADLDisplayMap = ^ADLDisplayMap;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about the display device possible map for one GPU
///
/// This structure is used to store the display device possible map
-/// This information can be returned to the user.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPossibleMap = record
- /// The current PossibleMap index. Each PossibleMap is assigned an index
- iIndex: Integer;
- /// The adapter index identifying the GPU for which to validate these Maps & Targets
- iAdapterIndex: Integer;
- /// Number of display Maps for this GPU to be validated
- iNumDisplayMap: Integer;
- /// The display Maps list to validate
- displayMap: ^ADLDisplayMap;
- /// the number of display Targets for these display Maps
- iNumDisplayTarget: Integer;
- /// The display Targets list for these display Maps to be validated.
- displayTarget: ^ADLDisplayTarget;
- end;
- TADLPossibleMap = ADLPossibleMap;
- {$EXTERNALSYM TADLPossibleMap}
- LPADLPossibleMap = ^ADLPossibleMap;
- {$EXTERNALSYM LPADLPossibleMap}
-
-
+/// This information can be returned to the user.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLPossibleMap = record
+ /// The current PossibleMap index. Each PossibleMap is assigned an index
+ iIndex: integer;
+ /// The adapter index identifying the GPU for which to validate these Maps & Targets
+ iAdapterIndex: integer;
+ /// Number of display Maps for this GPU to be validated
+ iNumDisplayMap: integer;
+ /// The display Maps list to validate
+ displayMap: LPADLDisplayMap;
+ /// the number of display Targets for these display Maps
+ iNumDisplayTarget: integer;
+ /// The display Targets list for these display Maps to be validated.
+ displayTarget: LPADLDisplayTarget;
+ end;
+ LPADLPossibleMap = ^ADLPossibleMap;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about display possible mapping.
@@ -1547,234 +1450,245 @@ ADLPossibleMap = record
/// This structure is used to store the display possible mapping's controller index for the current display.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPossibleMapping = record
- iDisplayIndex: Integer; ///< The display index. Each display is assigned an index.
- iDisplayControllerIndex: Integer; ///< The controller index to which display is mapped.
- iDisplayMannerSupported: Integer; ///< The supported display manner.
- end;
- TADLPossibleMapping = ADLPossibleMapping;
- {$EXTERNALSYM TADLPossibleMapping}
- LPADLPossibleMapping = ^ADLPossibleMapping;
- {$EXTERNALSYM LPADLPossibleMapping}
-
+type
+ ADLPossibleMapping = record
+ iDisplayIndex: integer;///< The display index. Each display is assigned an index.
+ iDisplayControllerIndex: integer;///< The controller index to which display is mapped.
+ iDisplayMannerSupported: integer;///< The supported display manner.
+ end;
+ LPADLPossibleMapping = ^ADLPossibleMapping;
/////////////////////////////////////////////////////////////////////////////////////////////
/// \brief Structure containing information about the validated display device possible map result.
///
/// This structure is used to store the validated display device possible map result
-/// This information can be returned to the user.
+/// This information can be returned to the user.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPossibleMapResult = record
- /// 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.
- iIndex: Integer;
- // 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.
- iPossibleMapResultMask: Integer;
- /// The bit mask identifies the possible map result. The detail definition is defined in ADL_DISPLAY_POSSIBLEMAPRESULT_XXX.
- iPossibleMapResultValue: Integer;
- end;
- TADLPossibleMapResult = ADLPossibleMapResult;
- {$EXTERNALSYM TADLPossibleMapResult}
- LPADLPossibleMapResult = ^ADLPossibleMapResult;
- {$EXTERNALSYM LPADLPossibleMapResult}
-
+type
+ ADLPossibleMapResult = record
+ /// 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.
+ iIndex: integer;
+ // 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.
+ iPossibleMapResultMask: integer;
+ /// The bit mask identifies the possible map result. The detail definition is defined in ADL_DISPLAY_POSSIBLEMAPRESULT_XXX.
+ iPossibleMapResultValue: integer;
+ end;
+ LPADLPossibleMapResult = ^ADLPossibleMapResult;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display SLS Grid information.
///
-/// This structure is used to store the display SLS Grid information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLSLSGrid = record
-/// The Adapter index.
- iAdapterIndex: Integer;
-/// The grid index.
- iSLSGridIndex: Integer;
-/// The grid row.
- iSLSGridRow: Integer;
-/// The grid column.
- iSLSGridColumn: Integer;
-/// The grid bit mask identifies the number of bits DisplayMap is currently using. Sum of all bits defined in ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
- iSLSGridMask: Integer;
-/// The grid bit value identifies the display status. Refer to ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
- iSLSGridValue: Integer;
- end;
- TADLSLSGrid = ADLSLSGrid;
- {$EXTERNALSYM TADLSLSGrid}
- LPADLSLSGrid = ^ADLSLSGrid;
- {$EXTERNALSYM LPADLSLSGrid}
+/// This structure is used to store the display SLS Grid information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSGrid = record
+ /// The Adapter index.
+ iAdapterIndex: integer;
+
+ /// The grid index.
+ iSLSGridIndex: integer;
+
+ /// The grid row.
+ iSLSGridRow: integer;
+
+ /// The grid column.
+ iSLSGridColumn: integer;
+ /// The grid bit mask identifies the number of bits DisplayMap is currently using. Sum of all bits defined in ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
+ iSLSGridMask: integer;
+
+ /// The grid bit value identifies the display status. Refer to ADL_DISPLAY_SLSGRID_ORIENTATION_XXX
+ iSLSGridValue: integer;
+
+ end;
+ LPADLSLSGrid = ^ADLSLSGrid;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display SLS Map information.
///
-/// This structure is used to store the display SLS Map information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLSLSMap = record
- /// The Adapter Index
- iAdapterIndex: Integer;
- /// 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.
- iSLSMapIndex: Integer;
- /// Indicate the current grid
- grid: ADLSLSGrid;
- /// OS surface index
- iSurfaceMapIndex: Integer;
- /// Screen orientation. E.g., 0, 90, 180, 270
- iOrientation: Integer;
- /// The number of display targets belongs to this map
- iNumSLSTarget: Integer;
- /// The first target array index in the Target array
- iFirstSLSTargetArrayIndex: Integer;
- /// The number of native modes belongs to this map
- iNumNativeMode: Integer;
- /// The first native mode array index in the native mode array
- iFirstNativeModeArrayIndex: Integer;
- /// The number of bezel modes belongs to this map
- iNumBezelMode: Integer;
- /// The first bezel mode array index in the native mode array
- iFirstBezelModeArrayIndex: Integer;
- /// The number of bezel offsets belongs to this map
- iNumBezelOffset: Integer;
- /// The first bezel offset array index in the
- iFirstBezelOffsetArrayIndex: Integer;
- /// The bit mask identifies the number of bits DisplayMap is currently using. Sum all the bit definitions defined in ADL_DISPLAY_SLSMAP_XXX.
- iSLSMapMask: Integer;
- /// The bit mask identifies the display map status. Refer to ADL_DISPLAY_SLSMAP_XXX
- iSLSMapValue: Integer;
- end;
- TADLSLSMap = ADLSLSMap;
- {$EXTERNALSYM TADLSLSMap}
- LPADLSLSMap = ^ADLSLSMap;
- {$EXTERNALSYM LPADLSLSMap}
+/// This structure is used to store the display SLS Map information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSMap = record
+ /// The Adapter Index
+ iAdapterIndex: integer;
+
+ /// 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.
+ iSLSMapIndex: integer;
+
+ /// Indicate the current grid
+ grid: ADLSLSGrid;
+
+ /// OS surface index
+ iSurfaceMapIndex: integer;
+
+ /// Screen orientation. E.g., 0, 90, 180, 270
+ iOrientation: integer;
+
+ /// The number of display targets belongs to this map
+ iNumSLSTarget: integer;
+ /// The first target array index in the Target array
+ iFirstSLSTargetArrayIndex: integer;
+
+ /// The number of native modes belongs to this map
+ iNumNativeMode: integer;
+
+ /// The first native mode array index in the native mode array
+ iFirstNativeModeArrayIndex: integer;
+
+ /// The number of bezel modes belongs to this map
+ iNumBezelMode: integer;
+
+ /// The first bezel mode array index in the native mode array
+ iFirstBezelModeArrayIndex: integer;
+
+ /// The number of bezel offsets belongs to this map
+ iNumBezelOffset: integer;
+
+ /// The first bezel offset array index in the
+ iFirstBezelOffsetArrayIndex: integer;
+
+ /// The bit mask identifies the number of bits DisplayMap is currently using. Sum all the bit definitions defined in ADL_DISPLAY_SLSMAP_XXX.
+ iSLSMapMask: integer;
+
+ /// The bit mask identifies the display map status. Refer to ADL_DISPLAY_SLSMAP_XXX
+ iSLSMapValue: integer;
+
+ end;
+ LPADLSLSMap = ^ADLSLSMap;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display SLS Offset information.
///
-/// This structure is used to store the display SLS Offset information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLSLSOffset = record
- /// The Adapter Index
- iAdapterIndex: Integer;
- /// 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.
- iSLSMapIndex: Integer;
- /// The Display ID.
- displayID: ADLDisplayID;
- /// SLS Bezel Mode Index
- iBezelModeIndex: Integer;
- /// SLS Bezel Offset X
- iBezelOffsetX: Integer;
- /// SLS Bezel Offset Y
- iBezelOffsetY: Integer;
- /// SLS Display Width
- iDisplayWidth: Integer;
- /// SLS Display Height
- iDisplayHeight: Integer;
- /// The bit mask identifies the number of bits Offset is currently using.
- iBezelOffsetMask: Integer;
- /// The bit mask identifies the display status.
- iBezelffsetValue: Integer;
- end;
- TADLSLSOffset = ADLSLSOffset;
- {$EXTERNALSYM TADLSLSOffset}
- LPADLSLSOffset = ^ADLSLSOffset;
- {$EXTERNALSYM LPADLSLSOffset}
+/// This structure is used to store the display SLS Offset information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSOffset = record
+ /// The Adapter Index
+ iAdapterIndex: integer;
+
+ /// 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.
+ iSLSMapIndex: integer;
+
+ /// The Display ID.
+ displayID: ADLDisplayID;
+ /// SLS Bezel Mode Index
+ iBezelModeIndex: integer;
+
+ /// SLS Bezel Offset X
+ iBezelOffsetX: integer;
+
+ /// SLS Bezel Offset Y
+ iBezelOffsetY: integer;
+
+ /// SLS Display Width
+ iDisplayWidth: integer;
+
+ /// SLS Display Height
+ iDisplayHeight: integer;
+
+ /// The bit mask identifies the number of bits Offset is currently using.
+ iBezelOffsetMask: integer;
+
+ /// The bit mask identifies the display status.
+ iBezelffsetValue: integer;
+ end;
+ LPADLSLSOffset = ^ADLSLSOffset;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display SLS Mode information.
///
-/// This structure is used to store the display SLS Mode information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLSLSMode = record
- /// The Adapter Index
- iAdapterIndex: Integer;
- /// 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.
- iSLSMapIndex: Integer;
- /// The mode index
- iSLSModeIndex: Integer;
- /// The mode for this map.
- displayMode: ADLMode;
- /// The bit mask identifies the number of bits Mode is currently using.
- iSLSNativeModeMask: Integer;
- /// The bit mask identifies the display status.
- iSLSNativeModeValue: Integer;
- end;
- TADLSLSMode = ADLSLSMode;
- {$EXTERNALSYM TADLSLSMode}
- LPADLSLSMode = ^ADLSLSMode;
- {$EXTERNALSYM LPADLSLSMode}
+/// This structure is used to store the display SLS Mode information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSMode = record
+ /// The Adapter Index
+ iAdapterIndex: integer;
+
+ /// 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.
+ iSLSMapIndex: integer;
+ /// The mode index
+ iSLSModeIndex: integer;
+ /// The mode for this map.
+ displayMode: ADLMode;
+ /// The bit mask identifies the number of bits Mode is currently using.
+ iSLSNativeModeMask: integer;
+ /// The bit mask identifies the display status.
+ iSLSNativeModeValue: integer;
+ end;
+ LPADLSLSMode = ^ADLSLSMode;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the display Possible SLS Map information.
///
-/// This structure is used to store the display Possible SLS Map information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPossibleSLSMap = record
- /// 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.
- iSLSMapIndex: Integer;
- /// Number of display map to be validated.
- iNumSLSMap: Integer;
- /// The display map list for validation
- lpSLSMap: ^ADLSLSMap;
- /// the number of display map config to be validated.
- iNumSLSTarget: Integer;
- /// The display target list for validation.
- lpDisplayTarget: ^ADLDisplayTarget;
- end;
- TADLPossibleSLSMap = ADLPossibleSLSMap;
- {$EXTERNALSYM TADLPossibleSLSMap}
- LPADLPossibleSLSMap = ^ADLPossibleSLSMap;
- {$EXTERNALSYM LPADLPossibleSLSMap}
+/// This structure is used to store the display Possible SLS Map information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLPossibleSLSMap = record
+ /// 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.
+ iSLSMapIndex: integer;
+
+ /// Number of display map to be validated.
+ iNumSLSMap: integer;
+ /// The display map list for validation
+ lpSLSMap: LPADLSLSMap;
+ /// the number of display map config to be validated.
+ iNumSLSTarget: integer;
+
+ /// The display target list for validation.
+ lpDisplayTarget: LPADLDisplayTarget;
+ end;
+ LPADLPossibleSLSMap = ^ADLPossibleSLSMap;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the SLS targets.
///
-/// This structure is used to store the SLS targets information.
-/// \nosubgrouping
-////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLSLSTarget = record
- /// the logic adapter index
- iAdapterIndex: Integer;
- /// The SLS map index
- iSLSMapIndex: Integer;
- /// The target ID
- displayTarget: ADLDisplayTarget;
- /// Target postion X in SLS grid
- iSLSGridPositionX: Integer;
- /// Target postion Y in SLS grid
- iSLSGridPositionY: Integer;
- /// The view size width, height and rotation angle per SLS Target
- viewSize: ADLMode;
- /// The bit mask identifies the bits in iSLSTargetValue are currently used
- iSLSTargetMask: Integer;
- /// The bit mask identifies status info. It is for function extension purpose
- iSLSTargetValue: Integer;
- end;
- TADLSLSTarget = ADLSLSTarget;
- {$EXTERNALSYM TADLSLSTarget}
- LPADLSLSTarget = ^ADLSLSTarget;
- {$EXTERNALSYM LPADLSLSTarget}
+/// This structure is used to store the SLS targets information.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSTarget = record
+ /// the logic adapter index
+ iAdapterIndex: integer;
+ /// The SLS map index
+ iSLSMapIndex: integer;
+
+ /// The target ID
+ displayTarget: ADLDisplayTarget;
+
+ /// Target postion X in SLS grid
+ iSLSGridPositionX: integer;
+
+ /// Target postion Y in SLS grid
+ iSLSGridPositionY: integer;
+
+ /// The view size width, height and rotation angle per SLS Target
+ viewSize: ADLMode;
+
+ /// The bit mask identifies the bits in iSLSTargetValue are currently used
+ iSLSTargetMask: integer;
+
+ /// The bit mask identifies status info. It is for function extension purpose
+ iSLSTargetValue: integer;
+
+ end;
+ LPADLSLSTarget = ^ADLSLSTarget;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about the Adapter offset stepping size.
@@ -1782,26 +1696,46 @@ ADLSLSTarget = record
/// This structure is used to store the Adapter offset stepping size information.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLBezelOffsetSteppingSize = record
- /// the logic adapter index
- iAdapterIndex: Integer;
- /// The SLS map index
- iSLSMapIndex: Integer;
- /// Bezel X stepping size offset
- iBezelOffsetSteppingSizeX: Integer;
- /// Bezel Y stepping size offset
- iBezelOffsetSteppingSizeY: Integer;
- /// Identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
- iBezelOffsetSteppingSizeMask: Integer;
- /// Bit mask identifies the display status.
- iBezelOffsetSteppingSizeValue: Integer;
- end;
- TADLBezelOffsetSteppingSize = ADLBezelOffsetSteppingSize;
- {$EXTERNALSYM TADLBezelOffsetSteppingSize}
- LPADLBezelOffsetSteppingSize = ^ADLBezelOffsetSteppingSize;
- {$EXTERNALSYM LPADLBezelOffsetSteppingSize}
+type
+ ADLBezelOffsetSteppingSize = record
+ /// the logic adapter index
+ iAdapterIndex: integer;
+
+ /// The SLS map index
+ iSLSMapIndex: integer;
+
+ /// Bezel X stepping size offset
+ iBezelOffsetSteppingSizeX: integer;
+ /// Bezel Y stepping size offset
+ iBezelOffsetSteppingSizeY: integer;
+
+ /// Identifies the bits this structure is currently using. It will be the total OR of all the bit definitions.
+ iBezelOffsetSteppingSizeMask: integer;
+
+ /// Bit mask identifies the display status.
+ iBezelOffsetSteppingSizeValue: integer;
+
+ end;
+ LPADLBezelOffsetSteppingSize = ^ADLBezelOffsetSteppingSize;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about the overlap offset info for all the displays for each SLS mode.
+///
+/// This structure is used to store the no. of overlapped modes for each SLS Mode once user finishes the configuration from Overlap Widget
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSLSOverlappedMode = record
+ /// the SLS mode for which the overlap is configured
+ SLSMode: ADLMode;
+ /// the number of target displays in SLS.
+ iNumSLSTarget: integer;
+ /// the first target array index in the target array
+ iFirstTargetArrayIndex: integer;
+ end;
+ ADLSLSTargetOverlap = ADLSLSOverlappedMode;
+ LPADLSLSTargetOverlap = ^ADLSLSTargetOverlap;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about driver supported PowerExpress Config Caps
@@ -1809,21 +1743,19 @@ ADLBezelOffsetSteppingSize = record
/// This structure is used to store the driver supported PowerExpress Config Caps
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPXConfigCaps = record
+type
+ ADLPXConfigCaps = record
/// The Persistent logical Adapter Index.
- iAdapterIndex: Integer;
- /// 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.
- iPXConfigCapMask: Integer;
- /// The bit mask identifies the PowerExpress Config Caps value. The detailed definition is in \ref ADL_PX_CONFIGCAPS_XXXX.
- iPXConfigCapValue: Integer;
- end;
- TADLPXConfigCaps = ADLPXConfigCaps;
- {$EXTERNALSYM TADLPXConfigCaps}
- LPADLPXConfigCaps = ^ADLPXConfigCaps;
- {$EXTERNALSYM LPADLPXConfigCaps}
+ iAdapterIndex: integer;
+ /// 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 ADL_PX_CONFIGCAPS_XXXX /ref define_powerxpress_constants.
+ iPXConfigCapMask: integer;
+ /// The bit mask identifies the PowerExpress Config Caps value. The detailed definition is in ADL_PX_CONFIGCAPS_XXXX /ref define_powerxpress_constants.
+ iPXConfigCapValue: integer;
+
+ end;
+ LPADLPXConfigCaps = ^ADLPXConfigCaps;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an application
@@ -1831,20 +1763,17 @@ ADLPXConfigCaps = record
/// This structure is used to store basic information of an application
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLApplicationData = record
- /// Path Name
- strPathName : array[0..ADL_MAX_PATH-1] of AnsiChar;
- /// File Name
- strFileName : array[0..ADL_APP_PROFILE_FILENAME_LENGTH-1] of AnsiChar;
- /// Creation timestamp
- strTimeStamp : array[0..ADL_APP_PROFILE_TIMESTAMP_LENGTH-1] of AnsiChar;
- /// Version
- strVersion : array[0..ADL_APP_PROFILE_VERSION_LENGTH-1] of AnsiChar;
- end;
- ADLApplicationData = _ADLApplicationData;
- {$EXTERNALSYM ADLApplicationData}
-
+type
+ _ADLApplicationData = record
+ /// Path Name
+ strPathName: array[0..ADL_MAX_PATH - 1] of AnsiChar;
+ /// File Name
+ strFileName: array[0..ADL_APP_PROFILE_FILENAME_LENGTH - 1] of AnsiChar;
+ /// Creation timestamp
+ strTimeStamp: array[0..ADL_APP_PROFILE_TIMESTAMP_LENGTH - 1] of AnsiChar;
+ /// Version
+ strVersion: array[0..ADL_APP_PROFILE_VERSION_LENGTH - 1] of AnsiChar;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an application
@@ -1852,20 +1781,37 @@ _ADLApplicationData = record
/// This structure is used to store basic information of an application
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLApplicationDataX2 = record
- /// Path Name
- strPathName : array[0..ADL_MAX_PATH-1] of WideChar;
- /// File Name
- strFileName : array[0..ADL_APP_PROFILE_FILENAME_LENGTH-1] of WideChar;
- /// Creation timestamp
- strTimeStamp : array[0..ADL_APP_PROFILE_TIMESTAMP_LENGTH-1] of WideChar;
- /// Version
- strVersion : array[0..ADL_APP_PROFILE_VERSION_LENGTH-1] of WideChar;
- end;
- ADLApplicationDataX2 = _ADLApplicationDataX2;
- {$EXTERNALSYM ADLApplicationDataX2}
+type
+ _ADLApplicationDataX2 = record
+ /// Path Name
+ strPathName: array[0..ADL_MAX_PATH - 1] of widechar;
+ /// File Name
+ strFileName: array[0..ADL_APP_PROFILE_FILENAME_LENGTH - 1] of widechar;
+ /// Creation timestamp
+ strTimeStamp: array[0..ADL_APP_PROFILE_TIMESTAMP_LENGTH - 1] of widechar;
+ /// Version
+ strVersion: array[0..ADL_APP_PROFILE_VERSION_LENGTH - 1] of widechar;
+ end;
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about an application
+///
+/// This structure is used to store basic information of an application including process id
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ _ADLApplicationDataX3 = record
+ /// Path Name
+ strPathName: array[0..ADL_MAX_PATH - 1] of widechar;
+ /// File Name
+ strFileName: array[0..ADL_APP_PROFILE_FILENAME_LENGTH - 1] of widechar;
+ /// Creation timestamp
+ strTimeStamp: array[0..ADL_APP_PROFILE_TIMESTAMP_LENGTH - 1] of widechar;
+ /// Version
+ strVersion: array[0..ADL_APP_PROFILE_VERSION_LENGTH - 1] of widechar;
+ //Application Process id
+ iProcessId: word;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information of a property of an application profile
@@ -1873,20 +1819,17 @@ _ADLApplicationDataX2 = record
/// This structure is used to store property information of an application profile
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _PropertyRecord = record
- /// Property Name
- strName : array[0..ADL_APP_PROFILE_PROPERTY_LENGTH-1] of AnsiChar;
- /// Property Type
- eType: ADLProfilePropertyType;
- /// Data Size in bytes
- iDataSize: Integer;
- /// Property Value, can be any data type
- uData : array[0..0] of Byte;
- end;
- PropertyRecord = _PropertyRecord;
- {$EXTERNALSYM PropertyRecord}
-
+type
+ _PropertyRecord = record
+ /// Property Name
+ strName: array [0..ADL_APP_PROFILE_PROPERTY_LENGTH - 1] of AnsiChar;
+ /// Property Type
+ eType: ADLProfilePropertyType;
+ /// Data Size in bytes
+ iDataSize: integer;
+ /// Property Value, can be any data type
+ uData: array[0..0] of byte;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an application profile
@@ -1894,18 +1837,12 @@ _PropertyRecord = record
/// This structure is used to store information of an application profile
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLApplicationProfile = record
- /// Number of properties
- iCount: Integer;
- /// Buffer to store all property records
- record_ : array[0..0] of PropertyRecord;
- end;
- ADLApplicationProfile = _ADLApplicationProfile;
- {$EXTERNALSYM ADLApplicationProfile}
-
-
-// @}
+//type _ADLApplicationProfile = record
+/// Number of properties
+//iCount: Integer;
+/// Buffer to store all property records
+//record[1]: PropertyRecord;
+//end; OOPS
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an OD5 Power Control feature
@@ -1913,18 +1850,16 @@ _ADLApplicationProfile = record
/// This structure is used to store information of an Power Control feature
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLPowerControlInfo = record
-/// Minimum value.
- iMinValue: Integer;
-/// Maximum value.
- iMaxValue: Integer;
-/// The minimum change in between minValue and maxValue.
- iStepValue: Integer;
- end;
- TADLPowerControlInfo = ADLPowerControlInfo;
- {$EXTERNALSYM TADLPowerControlInfo}
-
+type
+ ADLPowerControlInfo = record
+ /// Minimum value.
+ iMinValue: integer;
+ /// Maximum value.
+ iMaxValue: integer;
+ /// The minimum change in between minValue and maxValue.
+ iStepValue: integer;
+ end;
+ TADLPowerControlInfo = ADLPowerControlInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about an controller mode
@@ -1932,32 +1867,37 @@ ADLPowerControlInfo = record
/// This structure is used to store information of an controller mode
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLControllerMode = record
+type
+ _ADLControllerMode = record
/// This falg indicates actions that will be applied by set viewport
/// The value can be a combination of ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_POSITION,
/// ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_PANLOCK and ADL_CONTROLLERMODE_CM_MODIFIER_VIEW_SIZE
- iModifiers: Integer;
+ iModifiers: integer;
+
/// Horizontal view starting position
- iViewPositionCx: Integer;
+ iViewPositionCx: integer;
+
/// Vertical view starting position
- iViewPositionCy: Integer;
+ iViewPositionCy: integer;
+
/// Horizontal left panlock position
- iViewPanLockLeft: Integer;
+ iViewPanLockLeft: integer;
+
/// Horizontal right panlock position
- iViewPanLockRight: Integer;
+ iViewPanLockRight: integer;
+
/// Vertical top panlock position
- iViewPanLockTop: Integer;
+ iViewPanLockTop: integer;
+
/// Vertical bottom panlock position
- iViewPanLockBottom: Integer;
+ iViewPanLockBottom: integer;
+
/// View resolution in pixels (width)
- iViewResolutionCx: Integer;
- /// View resolution in pixels (hight)
- iViewResolutionCy: Integer;
- end;
- ADLControllerMode = _ADLControllerMode;
- {$EXTERNALSYM ADLControllerMode}
+ iViewResolutionCx: integer;
+ /// View resolution in pixels (hight)
+ iViewResolutionCy: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about a display
@@ -1965,20 +1905,21 @@ _ADLControllerMode = record
/// This structure is used to store information about a display
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayIdentifier = record
+type
+ ADLDisplayIdentifier = record
/// ADL display index
- ulDisplayIndex: LongInt;
+ ulDisplayIndex: cardinal;
+
/// manufacturer ID of the display
- ulManufacturerId: LongInt;
+ ulManufacturerId: cardinal;
+
/// product ID of the display
- ulProductId: LongInt;
+ ulProductId: cardinal;
+
/// serial number of the display
- ulSerialNo: LongInt;
- end;
- TADLDisplayIdentifier = ADLDisplayIdentifier;
- {$EXTERNALSYM TADLDisplayIdentifier}
+ ulSerialNo: cardinal;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 clock range
@@ -1986,18 +1927,17 @@ ADLDisplayIdentifier = record
/// This structure is used to store information about Overdrive 6 clock range
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6ParameterRange = record
+type
+ ADLOD6ParameterRange = record
/// The starting value of the clock range
- iMin: Integer;
+ iMin: integer;
/// The ending value of the clock range
- iMax: Integer;
+ iMax: integer;
/// The minimum increment between clock values
- iStep: Integer;
- end;
- ADLOD6ParameterRange = _ADLOD6ParameterRange;
- {$EXTERNALSYM ADLOD6ParameterRange}
+ iStep: integer;
+ end;
+ TADLOD6ParameterRange = ADLOD6ParameterRange;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 capabilities
@@ -2005,34 +1945,34 @@ _ADLOD6ParameterRange = record
/// This structure is used to store information about Overdrive 6 capabilities
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6Capabilities = record
- /// Contains a bitmap of the OD6 capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
+type
+ _ADLOD6Capabilities = record
+ /// Contains a bitmap of the OD6 capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
/// \ref ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION, \ref ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR
- iCapabilities: Integer;
+ iCapabilities: integer;
/// Contains a bitmap indicating the power states
/// supported by OD6. Currently only the performance state
/// is supported. Possible Values: \ref ADL_OD6_SUPPORTEDSTATE_PERFORMANCE
- iSupportedStates: Integer;
+ iSupportedStates: integer;
/// Number of levels. OD6 will always use 2 levels, which describe
/// the minimum to maximum clock ranges.
- /// The 1st level indicates the minimum clocks, and the 2nd level
+ /// The 1st level indicates the minimum clocks, and the 2nd level
/// indicates the maximum clocks.
- iNumberOfPerformanceLevels: Integer;
+ iNumberOfPerformanceLevels: integer;
/// Contains the hard limits of the sclk range. Overdrive
/// clocks cannot be set outside this range.
- sEngineClockRange: ADLOD6ParameterRange;
+ sEngineClockRange: ADLOD6ParameterRange;
/// Contains the hard limits of the mclk range. Overdrive
/// clocks cannot be set outside this range.
- sMemoryClockRange: ADLOD6ParameterRange;
+ sMemoryClockRange: ADLOD6ParameterRange;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6Capabilities = _ADLOD6Capabilities;
- {$EXTERNALSYM ADLOD6Capabilities}
+ iExtMask: integer;
+ end;
+ TADLOD6Capabilities = _ADLOD6Capabilities;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 clock values.
@@ -2040,16 +1980,15 @@ _ADLOD6Capabilities = record
/// This structure is used to store information about Overdrive 6 clock values.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6PerformanceLevel = record
+type
+ ADLOD6PerformanceLevel = record
/// Engine (core) clock.
- iEngineClock: Integer;
+ iEngineClock: integer;
/// Memory clock.
- iMemoryClock: Integer;
- end;
- ADLOD6PerformanceLevel = _ADLOD6PerformanceLevel;
- {$EXTERNALSYM ADLOD6PerformanceLevel}
+ iMemoryClock: integer;
+ end;
+ TADLOD6PerformanceLevel = ADLOD6PerformanceLevel;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 clocks.
@@ -2059,23 +1998,24 @@ _ADLOD6PerformanceLevel = record
/// are contained in the aLevels array.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6StateInfo = record
+type
+ _ADLOD6StateInfo = record
/// Number of levels. OD6 uses clock ranges instead of discrete performance levels.
- /// iNumberOfPerformanceLevels is always 2. The 1st level indicates the minimum clocks
+ /// iNumberOfPerformanceLevels is always 2. The 1st level indicates the minimum clocks
/// in the range. The 2nd level indicates the maximum clocks in the range.
- iNumberOfPerformanceLevels: Integer;
+ iNumberOfPerformanceLevels: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- /// Variable-sized array of levels.
+ iExtMask: integer;
+
+ /// Variable-sized array of levels.
/// The number of elements in the array is specified by iNumberofPerformanceLevels.
- aLevels : array[0..0] of ADLOD6PerformanceLevel;
- end;
- ADLOD6StateInfo = _ADLOD6StateInfo;
- {$EXTERNALSYM ADLOD6StateInfo}
+ aLevels: array[0..0] of ADLOD6PerformanceLevel;
+ end;
+ TADLOD6StateInfo = _ADLOD6StateInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about current Overdrive 6 performance status.
@@ -2083,31 +2023,31 @@ _ADLOD6StateInfo = record
/// This structure is used to store information about current Overdrive 6 performance status.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6CurrentStatus = record
- /// Current engine clock
- iEngineClock: Integer;
- /// Current memory clock
- iMemoryClock: Integer;
+type
+ _ADLOD6CurrentStatus = record
+ /// Current engine clock in 10 KHz.
+ iEngineClock: integer;
+ /// Current memory clock in 10 KHz.
+ iMemoryClock: integer;
/// Current GPU activity in percent. This
/// indicates how "busy" the GPU is.
- iActivityPercent: Integer;
+ iActivityPercent: integer;
/// Not used. Reserved for future use.
- iCurrentPerformanceLevel: Integer;
+ iCurrentPerformanceLevel: integer;
/// Current PCI-E bus speed
- iCurrentBusSpeed: Integer;
+ iCurrentBusSpeed: integer;
/// Current PCI-E bus # of lanes
- iCurrentBusLanes: Integer;
+ iCurrentBusLanes: integer;
/// Maximum possible PCI-E bus # of lanes
- iMaximumBusLanes: Integer;
+ iMaximumBusLanes: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6CurrentStatus = _ADLOD6CurrentStatus;
- {$EXTERNALSYM ADLOD6CurrentStatus}
+ iExtMask: integer;
+ end;
+ TADLOD6CurrentStatus = _ADLOD6CurrentStatus;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 thermal contoller capabilities
@@ -2115,27 +2055,27 @@ _ADLOD6CurrentStatus = record
/// This structure is used to store information about Overdrive 6 thermal controller capabilities
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6ThermalControllerCaps = record
- /// Contains a bitmap of thermal controller capability flags. Possible values: \ref ADL_OD6_TCCAPS_THERMAL_CONTROLLER, \ref ADL_OD6_TCCAPS_FANSPEED_CONTROL,
+type
+ _ADLOD6ThermalControllerCaps = record
+ /// Contains a bitmap of thermal controller capability flags. Possible values: \ref ADL_OD6_TCCAPS_THERMAL_CONTROLLER, \ref ADL_OD6_TCCAPS_FANSPEED_CONTROL,
/// \ref ADL_OD6_TCCAPS_FANSPEED_PERCENT_READ, \ref ADL_OD6_TCCAPS_FANSPEED_PERCENT_WRITE, \ref ADL_OD6_TCCAPS_FANSPEED_RPM_READ, \ref ADL_OD6_TCCAPS_FANSPEED_RPM_WRITE
- iCapabilities: Integer;
+ iCapabilities: integer;
/// Minimum fan speed expressed as a percentage
- iFanMinPercent: Integer;
+ iFanMinPercent: integer;
/// Maximum fan speed expressed as a percentage
- iFanMaxPercent: Integer;
+ iFanMaxPercent: integer;
/// Minimum fan speed expressed in revolutions-per-minute
- iFanMinRPM: Integer;
+ iFanMinRPM: integer;
/// Maximum fan speed expressed in revolutions-per-minute
- iFanMaxRPM: Integer;
+ iFanMaxRPM: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6ThermalControllerCaps = _ADLOD6ThermalControllerCaps;
- {$EXTERNALSYM ADLOD6ThermalControllerCaps}
+ iExtMask: integer;
+ end;
+ TADLOD6ThermalControllerCaps = _ADLOD6ThermalControllerCaps;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 fan speed information
@@ -2143,22 +2083,22 @@ _ADLOD6ThermalControllerCaps = record
/// This structure is used to store information about Overdrive 6 fan speed information
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6FanSpeedInfo = record
- /// Contains a bitmap of the valid fan speed type flags. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM, \ref ADL_OD6_FANSPEED_USER_DEFINED
- iSpeedType: Integer;
+type
+ _ADLOD6FanSpeedInfo = record
+ /// Contains a bitmap of the valid fan speed type flags. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM, \ref ADL_OD6_FANSPEED_USER_DEFINED
+ iSpeedType: integer;
/// Contains current fan speed in percent (if valid flag exists in iSpeedType)
- iFanSpeedPercent: Integer;
+ iFanSpeedPercent: integer;
/// Contains current fan speed in RPM (if valid flag exists in iSpeedType)
- iFanSpeedRPM: Integer;
+ iFanSpeedRPM: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6FanSpeedInfo = _ADLOD6FanSpeedInfo;
- {$EXTERNALSYM ADLOD6FanSpeedInfo}
+ iExtMask: integer;
+ end;
+ TADLOD6FanSpeedInfo = _ADLOD6FanSpeedInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 fan speed value
@@ -2167,69 +2107,69 @@ _ADLOD6FanSpeedInfo = record
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
type
- _ADLOD6FanSpeedValue = record
- /// Indicates the units of the fan speed. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM
- iSpeedType: Integer;
+ _ADLOD6FanSpeedValue = record
+ /// Indicates the units of the fan speed. Possible values: \ref ADL_OD6_FANSPEED_TYPE_PERCENT, \ref ADL_OD6_FANSPEED_TYPE_RPM
+ iSpeedType: integer;
/// Fan speed value (units as indicated above)
- iFanSpeed: Integer;
+ iFanSpeed: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6FanSpeedValue = _ADLOD6FanSpeedValue;
- {$EXTERNALSYM ADLOD6FanSpeedValue}
+ iExtMask: integer;
+ end;
+ TADLOD6FanSpeedValue = _ADLOD6FanSpeedValue;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 PowerControl settings.
///
/// This structure is used to store information about Overdrive 6 PowerControl settings.
-/// PowerControl is the feature which allows the performance characteristics of the GPU
+/// PowerControl is the feature which allows the performance AnsiCharacteristics of the GPU
/// to be adjusted by changing the PowerTune power limits.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6PowerControlInfo = record
+type
+ _ADLOD6PowerControlInfo = record
/// The minimum PowerControl adjustment value
- iMinValue: Integer;
+ iMinValue: integer;
/// The maximum PowerControl adjustment value
- iMaxValue: Integer;
+ iMaxValue: integer;
/// The minimum difference between PowerControl adjustment values
- iStepValue: Integer;
+ iStepValue: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6PowerControlInfo = _ADLOD6PowerControlInfo;
- {$EXTERNALSYM ADLOD6PowerControlInfo}
+ iExtMask: integer;
+ end;
+ TADLOD6PowerControlInfo = _ADLOD6PowerControlInfo;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 PowerControl settings.
///
/// This structure is used to store information about Overdrive 6 PowerControl settings.
-/// PowerControl is the feature which allows the performance characteristics of the GPU
+/// PowerControl is the feature which allows the performance AnsiCharacteristics of the GPU
/// to be adjusted by changing the PowerTune power limits.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6VoltageControlInfo = record
+type
+ _ADLOD6VoltageControlInfo = record
/// The minimum VoltageControl adjustment value
- iMinValue: Integer;
+ iMinValue: integer;
/// The maximum VoltageControl adjustment value
- iMaxValue: Integer;
+ iMaxValue: integer;
/// The minimum difference between VoltageControl adjustment values
- iStepValue: Integer;
+ iStepValue: integer;
+
/// Value for future extension
- iExtValue: Integer;
+ iExtValue: integer;
/// Mask for future extension
- iExtMask: Integer;
- end;
- ADLOD6VoltageControlInfo = _ADLOD6VoltageControlInfo;
- {$EXTERNALSYM ADLOD6VoltageControlInfo}
+ iExtMask: integer;
+ end;
+ TADLOD6VoltageControlInfo = _ADLOD6VoltageControlInfo;
////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing ECC statistics namely SEC counts and DED counts
@@ -2237,28 +2177,23 @@ _ADLOD6VoltageControlInfo = record
/// Doubt Error Detect - count of errors that cannot be corrected
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLECCData = record
- // Single error count - count of errors that can be corrected
- iSec: Integer;
- // Double error detect - count of errors that cannot be corrected
- iDed: Integer;
- end;
- ADLECCData = _ADLECCData;
- {$EXTERNALSYM ADLECCData}
-
+type
+ _ADLECCData = record
+ // Single error count - count of errors that can be corrected
+ iSec: integer;
+ // Double error detect - count of errors that cannot be corrected
+ iDed: integer;
+ end;
/// \brief Handle to ADL client context.
///
-/// ADL clients obtain context handle from initial call to \ref ADL2_Main_Control_Create.
+/// ADL clients obtain context handle from initial call to \ref ADL2_Main_Control_Create.
/// Clients have to pass the handle to each subsequent ADL call and finally destroy
-/// the context with call to \ref ADL2_Main_Control_Destroy
+/// the context with call to \ref ADL2_Main_Control_Destroy
/// \nosubgrouping
type
- ADL_CONTEXT_HANDLE = Pointer;
- {$EXTERNALSYM ADL_CONTEXT_HANDLE}
-
+ ADL_CONTEXT_HANDLE = pointer;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing the display mode definition used per controller.
@@ -2266,22 +2201,19 @@ _ADLECCData = record
/// This structure is used to store the display mode definition used per controller.
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- ADLDisplayModeX2 = record
-/// Horizontal resolution (in pixels).
- iWidth: Integer;
-/// Vertical resolution (in lines).
- iHeight: Integer;
-/// Interlaced/Progressive. The value will be set for Interlaced as ADL_DL_TIMINGFLAG_INTERLACED. If not set it is progressive. Refer define_detailed_timing_flags.
- iScanType: Integer;
-/// Refresh rate.
- iRefreshRate: Integer;
-/// Timing Standard. Refer define_modetiming_standard.
- iTimingStandard: Integer;
- end;
- TADLDisplayModeX2 = ADLDisplayModeX2;
- {$EXTERNALSYM TADLDisplayModeX2}
-
+type
+ ADLDisplayModeX2 = record
+ /// Horizontal resolution (in pixels).
+ iWidth: integer;
+ /// Vertical resolution (in lines).
+ iHeight: integer;
+ /// Interlaced/Progressive. The value will be set for Interlaced as ADL_DL_TIMINGFLAG_INTERLACED. If not set it is progressive. Refer define_detailed_timing_flags.
+ iScanType: integer;
+ /// Refresh rate.
+ iRefreshRate: integer;
+ /// Timing Standard. Refer define_modetiming_standard.
+ iTimingStandard: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 extension capabilities
@@ -2289,30 +2221,27 @@ ADLDisplayModeX2 = record
/// This structure is used to store information about Overdrive 6 extension capabilities
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6CapabilitiesEx = record
- /// Contains a bitmap of the OD6 extension capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
- /// \ref ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION, \ref ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR,
+type
+ _ADLOD6CapabilitiesEx = record
+ /// Contains a bitmap of the OD6 extension capability flags. Possible values: \ref ADL_OD6_CAPABILITY_SCLK_CUSTOMIZATION,
+ /// \ref ADL_OD6_CAPABILITY_MCLK_CUSTOMIZATION, \ref ADL_OD6_CAPABILITY_GPU_ACTIVITY_MONITOR,
/// \ref ADL_OD6_CAPABILITY_POWER_CONTROL, \ref ADL_OD6_CAPABILITY_VOLTAGE_CONTROL, \ref ADL_OD6_CAPABILITY_PERCENT_ADJUSTMENT,
- //// \ref ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK
- iCapabilities: Integer;
- /// The Power states that support clock and power customization. Only performance state is currently supported.
+ //// \ref ADL_OD6_CAPABILITY_THERMAL_LIMIT_UNLOCK
+ iCapabilities: integer;
+ /// The Power states that support clock and power customization. Only performance state is currently supported.
/// Possible Values: \ref ADL_OD6_SUPPORTEDSTATE_PERFORMANCE
- iSupportedStates: Integer;
+ iSupportedStates: integer;
/// Returns the hard limits of the SCLK overdrive adjustment range. Overdrive clocks should not be adjusted outside of this range. The values are specified as +/- percentages.
- sEngineClockPercent: ADLOD6ParameterRange;
- /// Returns the hard limits of the MCLK overdrive adjustment range. Overdrive clocks should not be adjusted outside of this range. The values are specified as +/- percentages.
- sMemoryClockPercent: ADLOD6ParameterRange;
+ sEngineClockPercent: ADLOD6ParameterRange;
+ /// Returns the hard limits of the MCLK overdrive adjustment range. Overdrive clocks should not be adjusted outside of this range. The values are specified as +/- percentages.
+ sMemoryClockPercent: ADLOD6ParameterRange;
/// Returns the hard limits of the Power Limit adjustment range. Power limit should not be adjusted outside this range. The values are specified as +/- percentages.
- sPowerControlPercent: ADLOD6ParameterRange;
+ sPowerControlPercent: ADLOD6ParameterRange;
/// Reserved for future expansion of the structure.
- iExtValue: Integer;
+ iExtValue: integer;
/// Reserved for future expansion of the structure.
- iExtMask: Integer;
- end;
- ADLOD6CapabilitiesEx = _ADLOD6CapabilitiesEx;
- {$EXTERNALSYM ADLOD6CapabilitiesEx}
-
+ iExtMask: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 extension state information
@@ -2320,22 +2249,19 @@ _ADLOD6CapabilitiesEx = record
/// This structure is used to store information about Overdrive 6 extension state information
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6StateEx = record
+type
+ _ADLOD6StateEx = record
/// The current engine clock adjustment value, specified as a +/- percent.
- iEngineClockPercent: Integer;
+ iEngineClockPercent: integer;
/// The current memory clock adjustment value, specified as a +/- percent.
- iMemoryClockPercent: Integer;
+ iMemoryClockPercent: integer;
/// The current power control adjustment value, specified as a +/- percent.
- iPowerControlPercent: Integer;
+ iPowerControlPercent: integer;
/// Reserved for future expansion of the structure.
- iExtValue: Integer;
+ iExtValue: integer;
/// Reserved for future expansion of the structure.
- iExtMask: Integer;
- end;
- ADLOD6StateEx = _ADLOD6StateEx;
- {$EXTERNALSYM ADLOD6StateEx}
-
+ iExtMask: integer;
+ end;
/////////////////////////////////////////////////////////////////////////////////////////////
///\brief Structure containing information about Overdrive 6 extension recommended maximum clock adjustment values
@@ -2343,22 +2269,727 @@ _ADLOD6StateEx = record
/// This structure is used to store information about Overdrive 6 extension recommended maximum clock adjustment values
/// \nosubgrouping
////////////////////////////////////////////////////////////////////////////////////////////
-type
- _ADLOD6MaxClockAdjust = record
+type
+ _ADLOD6MaxClockAdjust = record
/// The recommended maximum engine clock adjustment in percent, for the specified power limit value.
- iEngineClockMax: Integer;
+ iEngineClockMax: integer;
/// The recommended maximum memory clock adjustment in percent, for the specified power limit value.
/// Currently the memory is independent of the Power Limit setting, so iMemoryClockMax will always return the maximum
/// possible adjustment value. This field is here for future enhancement in case we add a dependency between Memory Clock
/// adjustment and Power Limit setting.
- iMemoryClockMax: Integer;
+ iMemoryClockMax: integer;
/// Reserved for future expansion of the structure.
- iExtValue: Integer;
+ iExtValue: integer;
/// Reserved for future expansion of the structure.
- iExtMask: Integer;
- end;
- ADLOD6MaxClockAdjust = _ADLOD6MaxClockAdjust;
- {$EXTERNALSYM ADLOD6MaxClockAdjust}
+ iExtMask: integer;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing the Connector information
+///
+/// this structure is used to get the connector information like length, positions & etc.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLConnectorInfo = record
+ ///index of the connector(0-based)
+ iConnectorIndex: integer;
+ ///used for disply identification/ordering
+ iConnectorId: integer;
+ ///index of the slot, 0-based index.
+ iSlotIndex: integer;
+ ///Type of the connector. \ref define_connector_types
+ iType: integer;
+ ///Position of the connector(in millimeters), from the right side of the slot.
+ iOffset: integer;
+ ///Length of the connector(in millimeters).
+ iLength: integer;
+
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing the slot information
+///
+/// this structure is used to get the slot information like length of the slot, no of connectors on the slot & etc.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLBracketSlotInfo = record
+ ///index of the slot, 0-based index.
+ iSlotIndex: integer;
+ ///length of the slot(in millimeters).
+ iLength: integer;
+ ///width of the slot(in millimeters).
+ iWidth: integer;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing MST branch information
+///
+/// this structure is used to store the MST branch information
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLMSTRad = record
+ ///depth of the link.
+ iLinkNumber: integer;
+ /// Relative address, address scheme starts from source side
+ rad: array[0..ADL_MAX_RAD_LINK_COUNT - 1] of AnsiChar;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing port information
+///
+/// this structure is used to get the display or MST branch information
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLDevicePort = record
+ ///index of the connector.
+ iConnectorIndex: integer;
+ ///Relative MST address. If MST RAD contains 0 it means DP or Root of the MST topology. For non DP connectors MST RAD is ignored.
+ aMSTRad: ADLMSTRad;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing supported connection types and properties
+///
+/// this structure is used to get the supported connection types and supported properties of given connector
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSupportedConnections = record
+ ///Bit vector of supported connections. Bitmask is defined in constants section. \ref define_connection_types
+ iSupportedConnections: integer;
+ ///Array of bitvectors. Each bit vector represents supported properties for one connection type. Index of this array is connection type (bit number in mask).
+ iSupportedProperties: array[0..ADL_MAX_CONNECTION_TYPES - 1] of integer;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing connection state of the connector
+///
+/// this structure is used to get the current Emulation status and mode of the given connector
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLConnectionState = record
+ ///The value is bit vector. Each bit represents status. See masks constants for details. \ref define_emulation_status
+ iEmulationStatus: integer;
+ ///It contains information about current emulation mode. See constants for details. \ref define_emulation_mode
+ iEmulationMode: integer;
+ ///If connection is active it will contain display id, otherwise CWDDEDI_INVALID_DISPLAY_INDEX
+ iDisplayIndex: integer;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing connection properties information
+///
+/// this structure is used to retrieve the properties of connection type
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLConnectionProperties = record
+ //Bit vector. Represents actual properties. Supported properties for specific connection type. \ref define_connection_properties
+ iValidProperties: integer;
+ //Bitrate(in MHz). Could be used for MST branch, DP or DP active dongle. \ref define_linkrate_constants
+ iBitrate: integer;
+ //Number of lanes in DP connection. \ref define_lanecount_constants
+ iNumberOfLanes: integer;
+ //Color depth(in bits). \ref define_colordepth_constants
+ iColorDepth: integer;
+ //3D capabilities. It could be used for some dongles. For instance: alternate framepack. Value of this property is bit vector.
+ iStereo3DCaps: integer;
+ ///Output Bandwidth. Could be used for MST branch, DP or DP Active dongle. \ref define_linkrate_constants
+ iOutputBandwidth: integer;
+ end;
+
+////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing connection information
+///
+/// this structure is used to retrieve the data from driver which includes
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLConnectionData = record
+ ///Connection type. based on the connection type either iNumberofPorts or IDataSize,EDIDdata is valid, \ref define_connection_types
+ iConnectionType: integer;
+ ///Specifies the connection properties.
+ aConnectionProperties: ADLConnectionProperties;
+ ///Number of ports
+ iNumberofPorts: integer;
+ ///Number of Active Connections
+ iActiveConnections: integer;
+ ///actual size of EDID data block size.
+ iDataSize: integer;
+ ///EDID Data
+ EdidData: array[0..ADL_MAX_DISPLAY_EDID_DATA_SIZE - 1] of AnsiChar;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about an controller mode including Number of Connectors
+///
+/// This structure is used to store information of an controller mode
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLAdapterCapsX2 = record
+ /// AdapterID for this adapter
+ iAdapterID: integer;
+ /// Number of controllers for this adapter
+ iNumControllers: integer;
+ /// Number of displays for this adapter
+ iNumDisplays: integer;
+ /// Number of overlays for this adapter
+ iNumOverlays: integer;
+ /// Number of GLSyncConnectors
+ iNumOfGLSyncConnectors: integer;
+ /// The bit mask identifies the adapter caps
+ iCapsMask: integer;
+ /// The bit identifies the adapter caps \ref define_adapter_caps
+ iCapsValue: integer;
+ /// Number of Connectors for this adapter
+ iNumConnectors: integer;
+ end;
+
+type
+ ADL_ERROR_RECORD_SEVERITY = (
+ ADL_GLOBALLY_UNCORRECTED = 1,
+ ADL_LOCALLY_UNCORRECTED = 2,
+ ADL_DEFFERRED = 3,
+ ADL_CORRECTED = 4);
+
+ //typedef union _ADL_ECC_EDC_FLAG
+ //struct;
+ //unsigned int isEccAccessing : 1;
+ //unsigned int reserved : 31;
+ //end; oops
+
+ u32All = UInt32;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about EDC Error Record
+///
+/// This structure is used to store EDC Error Record
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLErrorRecord = record
+ // Severity of error
+ Severity: ADL_ERROR_RECORD_SEVERITY;
+
+ // Is the counter valid?
+ countValid: integer;
+
+ // Counter value, if valid
+ Count: word;
+
+ // Is the location information valid?
+ locationValid: integer;
+
+ // Physical location of error
+ CU: word;// CU number on which error occurred, if known
+ StructureName: array[0..31] of AnsiChar;// e.g. LDS, TCC, etc.
+
+ // Time of error record creation (e.g. time of query, or time of poison interrupt)
+ timestamp: array[0..31] of AnsiChar; //tiestamp ?
+
+ padding: array[0..2] of word;
+ end;
+
+type
+ _ADL_EDC_BLOCK_ID = (
+ ADL_EDC_BLOCK_ID_SQCIS = 1,
+ ADL_EDC_BLOCK_ID_SQCDS = 2,
+ ADL_EDC_BLOCK_ID_SGPR = 3,
+ ADL_EDC_BLOCK_ID_VGPR = 4,
+ ADL_EDC_BLOCK_ID_LDS = 5,
+ ADL_EDC_BLOCK_ID_GDS = 6,
+ ADL_EDC_BLOCK_ID_TCL1 = 7,
+ ADL_EDC_BLOCK_ID_TCL2 = 8);
+
+ _ADL_ERROR_INJECTION_MODE = (
+ ADL_ERROR_INJECTION_MODE_SINGLE = 1,
+ ADL_ERROR_INJECTION_MODE_MULTIPLE = 2,
+ ADL_ERROR_INJECTION_MODE_ADDRESS = 3);
+
+{typedef union _ADL_ERROR_PATTERN
+struct;
+unsigned long EccInjVector : 16;
+unsigned long EccInjEn : 9;
+unsigned long EccBeatEn : 4;
+unsigned long EccChEn : 4;
+unsigned long reserved : 31;
+end; OOPS
+}
+ u64Value = UInt64;
+
+{type _ADL_ERROR_INJECTION_DATA = record
+unsigned long long errorAddress;
+ADL_ERROR_PATTERN errorPattern;
+end; OOPS
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about EDC Error Injection
+///
+/// This structure is used to store EDC Error Injection
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+{type ADLErrorInjection = record
+ADL_EDC_BLOCK_ID blockId;
+ADL_ERROR_INJECTION_MODE errorInjectionMode;
+end; OOPS
+
+
+type ADLErrorInjectionX2 = record
+ADL_EDC_BLOCK_ID blockId;
+ADL_ERROR_INJECTION_MODE errorInjectionMode;
+ADL_ERROR_INJECTION_DATA errorInjectionData;
+end;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing per display FreeSync capability information.
+///
+/// This structure is used to store the FreeSync capability of both the display and
+/// the GPU the display is connected to.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLFreeSyncCap = record
+ /// FreeSync capability flags. \ref define_freesync_caps
+ iCaps: integer;
+ /// Reports minimum FreeSync refresh rate supported by the display in micro hertz
+ iMinRefreshRateInMicroHz: integer;
+ /// Reports maximum FreeSync refresh rate supported by the display in micro hertz
+ iMaxRefreshRateInMicroHz: integer;
+ /// Reserved
+ iReserved: array[0..4] of integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing per display Display Connectivty Experience Settings
+///
+/// This structure is used to store the Display Connectivity Experience settings of a
+/// display
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+{type ADLDceSettings = record
+DceSettingsType type ;// Defines which structure is in the union below
+union;
+struct;
+bool qualityDetectionEnabled;
+end;
+
+struct;
+DpLinkRate linkRate ;// Read-only
+unsigned int numberOfActiveLanes ;// Read-only
+unsigned int numberofTotalLanes ;// Read-only
+relativePreEmphasis ;// Allowable values are -2 to +2: Integer
+relativeVoltageSwing ;// Allowable values are -2 to +2: Integer
+persistFlag: Integer;
+end;
+
+struct;
+bool linkProtectionEnabled ;// Read-only
+end;
+
+end;
+
+iReserved[15]: Integer;
+end; OOPS
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Graphic Core
+///
+/// This structure is used to get Graphic Core Info
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLGraphicCoreInfo = record
+ /// indicate the graphic core generation
+ iGCGen: integer;
+
+ /// Total number of CUs. Valid for GCN (iGCGen == GCN)
+ iNumCUs: integer;
+
+ /// Number of processing elements per CU. Valid for GCN (iGCGen == GCN)
+ iNumPEsPerCU: integer;
+
+ /// Total number of SIMDs. Valid for Pre GCN (iGCGen == Pre-GCN)
+ iNumSIMDs: integer;
+
+ /// Total number of ROPs. Valid for both GCN and Pre GCN
+ iNumROPs: integer;
+
+ /// reserved for future use
+ iReserved: array[0..10] of integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N clock range
+///
+/// This structure is used to store information about Overdrive N clock range
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNParameterRange = record
+ /// The starting value of the clock range
+ iMode: integer;
+ /// The starting value of the clock range
+ iMin: integer;
+ /// The ending value of the clock range
+ iMax: integer;
+ /// The minimum increment between clock values
+ iStep: integer;
+ /// The default clock values
+ iDefault: integer;
+
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N capabilities
+///
+/// This structure is used to store information about Overdrive N capabilities
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ _ADLODNCapabilities = record
+ /// Number of levels which describe the minimum to maximum clock ranges.
+ /// The 1st level indicates the minimum clocks, and the 2nd level
+ /// indicates the maximum clocks.
+ iMaximumNumberOfPerformanceLevels: integer;
+ /// Contains the hard limits of the sclk range. Overdrive
+ /// clocks cannot be set outside this range.
+ sEngineClockRange: ADLODNParameterRange;
+ /// Contains the hard limits of the mclk range. Overdrive
+ /// clocks cannot be set outside this range.
+ sMemoryClockRange: ADLODNParameterRange;
+ /// Contains the hard limits of the vddc range. Overdrive
+ /// clocks cannot be set outside this range.
+ svddcRange: ADLODNParameterRange;
+ /// Contains the hard limits of the power range. Overdrive
+ /// clocks cannot be set outside this range.
+ power: ADLODNParameterRange;
+ /// Contains the hard limits of the power range. Overdrive
+ /// clocks cannot be set outside this range.
+ powerTuneTemperature: ADLODNParameterRange;
+ /// Contains the hard limits of the Temperature range. Overdrive
+ /// clocks cannot be set outside this range.
+ fanTemperature: ADLODNParameterRange;
+ /// Contains the hard limits of the Fan range. Overdrive
+ /// clocks cannot be set outside this range.
+ fanSpeed: ADLODNParameterRange;
+ /// Contains the hard limits of the Fan range. Overdrive
+ /// clocks cannot be set outside this range.
+ minimumPerformanceClock: ADLODNParameterRange;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N capabilities
+///
+/// This structure is used to store information about Overdrive N capabilities
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ _ADLODNCapabilitiesX2 = record
+ /// Number of levels which describe the minimum to maximum clock ranges.
+ /// The 1st level indicates the minimum clocks, and the 2nd level
+ /// indicates the maximum clocks.
+ iMaximumNumberOfPerformanceLevels: Integer;
+ /// bit vector, which tells what are the features are supported.
+ /// \ref: ADLODNFEATURECONTROL
+ iFlags: Integer;
+ /// Contains the hard limits of the sclk range. Overdrive
+ /// clocks cannot be set outside this range.
+ sEngineClockRange: ADLODNParameterRange;
+ /// Contains the hard limits of the mclk range. Overdrive
+ /// clocks cannot be set outside this range.
+ sMemoryClockRange: ADLODNParameterRange;
+ /// Contains the hard limits of the vddc range. Overdrive
+ /// clocks cannot be set outside this range.
+ svddcRange: ADLODNParameterRange;
+ /// Contains the hard limits of the power range. Overdrive
+ /// clocks cannot be set outside this range.
+ power: ADLODNParameterRange;
+ /// Contains the hard limits of the power range. Overdrive
+ /// clocks cannot be set outside this range.
+ powerTuneTemperature: ADLODNParameterRange;
+ /// Contains the hard limits of the Temperature range. Overdrive
+ /// clocks cannot be set outside this range.
+ fanTemperature: ADLODNParameterRange;
+ /// Contains the hard limits of the Fan range. Overdrive
+ /// clocks cannot be set outside this range.
+ fanSpeed: ADLODNParameterRange;
+ /// Contains the hard limits of the Fan range. Overdrive
+ /// clocks cannot be set outside this range.
+ minimumPerformanceClock: ADLODNParameterRange;
+ /// Contains the hard limits of the throttleNotification
+ throttleNotificaion: ADLODNParameterRange;
+ /// Contains the hard limits of the Auto Systemclock
+ autoSystemClock: ADLODNParameterRange;
+ end;
+ TADLODNCapabilitiesX2 = _ADLODNCapabilitiesX2;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive level.
+///
+/// This structure is used to store information about Overdrive level.
+/// This structure is used by ADLODPerformanceLevels.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNPerformanceLevel = record
+ /// clock.
+ iClock: integer;
+ /// VDCC.
+ iVddc: integer;
+ /// enabled
+ iEnabled: integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N performance levels.
+///
+/// This structure is used to store information about Overdrive performance levels.
+/// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNPerformanceLevels = record
+ iSize: integer;
+ //Automatic/manual
+ iMode: integer;
+ /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
+ iNumberOfPerformanceLevels: integer;
+ /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
+ aLevels: array[0..0] of ADLODNPerformanceLevel;
+ end;
+
+///\brief Structure containing information about Overdrive level.
+///
+/// This structure is used to store information about Overdrive level.
+/// This structure is used by ADLODPerformanceLevels.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNPerformanceLevelX2 = record
+ /// clock.
+ iClock: Integer;
+ /// VDCC.
+ iVddc: Integer;
+ /// enabled
+ iEnabled: Integer;
+ /// MASK
+ iControl: Integer;
+ end;
+ TADLODNPerformanceLevelX2 = ADLODNPerformanceLevelX2;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N performance levels.
+///
+/// This structure is used to store information about Overdrive performance levels.
+/// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNPerformanceLevelsX2 = record
+ iSize: Integer;
+ //Automatic/manual
+ iMode: Integer;
+ /// Must be set to sizeof( \ref ADLODPerformanceLevels ) + sizeof( \ref ADLODPerformanceLevel ) * (ADLODParameters.iNumberOfPerformanceLevels - 1)
+ iNumberOfPerformanceLevels: Integer;
+ /// Array of performance state descriptors. Must have ADLODParameters.iNumberOfPerformanceLevels elements.
+ aLevels: array[0..0] of ADLODNPerformanceLevelX2;
+ end;
+ TADLODNPerformanceLevelsX2 = ADLODNPerformanceLevelsX2;
+
+type
+ ADLODNCurrentPowerType = (ODN_GPU_TOTAL_POWER, ODN_GPU_PPT_POWER, ODN_GPU_SOCKET_POWER, ODN_GPU_CHIP_POWER);
+
+// in/out: CWDDEPM_CURRENTPOWERPARAMETERS
+type
+ _ADLODNCurrentPowerParameters = record
+ size: Integer;
+ powerType: ADLODNCurrentPowerType;
+ currentPower: Integer;
+ end;
+ TADLODNCurrentPowerParameters = _ADLODNCurrentPowerParameters;
+
+//ODN Ext range data structure
+type
+ _ADLODNExtSingleInitSetting = record
+ mode: Integer;
+ minValue: Integer;
+ maxValue: Integer;
+ step: Integer;
+ defaultValue: Integer;
+ end;
+ PADLODNExtSingleInitSetting = _ADLODNExtSingleInitSetting;
+ TADLODNExtSingleInitSetting = _ADLODNExtSingleInitSetting;
+
+//OD8 Ext range data structure
+type
+ ADLOD8SingleInitSetting = record
+ featureID: Integer;
+ minValue: Integer;
+ maxValue: Integer;
+ defaultValue: Integer;
+ end;
+ PADLOD8SingleInitSetting = ^ADLOD8SingleInitSetting;
+ TADLOD8SingleInitSetting = ADLOD8SingleInitSetting;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N Fan Speed.
+///
+/// This structure is used to store information about Overdrive Fan control .
+/// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNFanControl = record
+ iMode: integer;
+ iFanControlMode: integer;
+ iCurrentFanSpeedMode: integer;
+ iCurrentFanSpeed: integer;
+ iTargetFanSpeed: integer;
+ iTargetTemperature: integer;
+ iMinPerformanceClock: integer;
+ iMinFanLimit: integer;
+ end;
+ PADLODNFanControl = ^ADLODNFanControl;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive N power limit.
+///
+/// This structure is used to store information about Overdrive power limit.
+/// This structure is used by the ADL_OverdriveN_ODPerformanceLevels_Get() and ADL_OverdriveN_ODPerformanceLevels_Set() functions.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLODNPowerLimitSetting = record
+ iMode: integer;
+ iTDPLimit: integer;
+ iMaxOperatingTemperature: integer;
+ end;
+
+type
+ ADLODNPerformanceStatus = record
+ iCoreClock: integer;
+ iMemoryClock: integer;
+ iDCEFClock: integer;
+ iGFXClock: integer;
+ iUVDClock: integer;
+ iVCEClock: integer;
+ iGPUActivityPercent: integer;
+ iCurrentCorePerformanceLevel: integer;
+ iCurrentMemoryPerformanceLevel: integer;
+ iCurrentDCEFPerformanceLevel: integer;
+ iCurrentGFXPerformanceLevel: integer;
+ iUVDPerformanceLevel: integer;
+ iVCEPerformanceLevel: integer;
+ iCurrentBusSpeed: integer;
+ iCurrentBusLanes: integer;
+ iMaximumBusLanes: integer;
+ iVDDC: integer;
+ iVDDCI: integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about PPLog settings.
+///
+/// This structure is used to store information about PPLog settings.
+/// This structure is used by the ADL2_PPLogSettings_Set() and ADL2_PPLogSettings_Get() functions.
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLPPLogSettings = record
+ BreakOnAssert: integer;
+ BreakOnWarn: integer;
+ LogEnabled: integer;
+ LogFieldMask: integer;
+ LogDestinations: integer;
+ LogSeverityEnabled: integer;
+ LogSourceMask: integer;
+ PowerProfilingEnabled: integer;
+ PowerProfilingTimeInterval: integer;
+ end;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive8 initial setting
+///
+/// This structure is used to store information about Overdrive8 initial setting
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLOD8InitSetting = record
+ count: Integer;
+ overdrive8Capabilities: Integer;
+ od8SettingTable: Array[ADLOD8SettingId] of TADLOD8SingleInitSetting;
+ end;
+ PADLOD8InitSetting = ADLOD8InitSetting;
+ TADLOD8InitSetting = ADLOD8InitSetting;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive8 current setting
+///
+/// This structure is used to store information about Overdrive8 current setting
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLOD8CurrentSetting = record
+ count: Integer;
+ od8SettingTable: Array[ADLOD8SettingId] of Integer;
+ end;
+ PADLOD8CurrentSetting = ADLOD8CurrentSetting;
+ TADLOD8CurrentSetting = ADLOD8CurrentSetting;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Overdrive8 set setting
+///
+/// This structure is used to store information about Overdrive8 set setting
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+
+type
+ ADLOD8SingleSetSetting = record
+ value: Integer;
+ requested: Integer; // 0 - default , 1 - requested
+ reset: Integer; // 0 - do not reset , 1 - reset setting back to default
+ end;
+ PADLOD8SingleSetSetting = ADLOD8SingleSetSetting;
+ TADLOD8SingleSetSetting = ADLOD8SingleSetSetting;
+
+type
+ ADLOD8SetSetting = record
+ count: Integer;
+ od8SettingTable: Array[ADLOD8SettingId] of TADLOD8SingleSetSetting;
+ end;
+ PADLOD8SetSetting = ADLOD8SetSetting;
+ TADLOD8SetSetting = ADLOD8SetSetting;
+
+/////////////////////////////////////////////////////////////////////////////////////////////
+///\brief Structure containing information about Performance Metrics data
+///
+/// This structure is used to store information about Performance Metrics data output
+/// \nosubgrouping
+////////////////////////////////////////////////////////////////////////////////////////////
+type
+ ADLSingleSensorData = record
+ supported: Integer;
+ value: Integer;
+ end;
+ PADLSingleSensorData = ADLSingleSensorData;
+ TADLSingleSensorData = ADLSingleSensorData;
+
+type
+ ADLPMLogDataOutput = record
+ size: Integer;
+ sensors: Array[0..ADL_PMLOG_MAX_SENSORS - 1] of TADLSingleSensorData;
+ end;
+ PADLPMLogDataOutput = ADLPMLogDataOutput;
+ TADLPMLogDataOutput = ADLPMLogDataOutput;
implementation
diff --git a/Plugin/AMDPlugin.dpr b/Plugin/AMDPlugin.dpr
index 7c3c657..33c6d3c 100644
--- a/Plugin/AMDPlugin.dpr
+++ b/Plugin/AMDPlugin.dpr
@@ -254,7 +254,7 @@ end;
function GetPluginVersion: Cardinal; stdcall;
begin
- Result:=3;
+ Result:=5;
end;
function GetPluginAuthor: PWideChar; stdcall;
diff --git a/Plugin/AMDPlugin.dproj b/Plugin/AMDPlugin.dproj
index 15f6b75..16f6333 100644
--- a/Plugin/AMDPlugin.dproj
+++ b/Plugin/AMDPlugin.dproj
@@ -131,9 +131,9 @@
(None)
- FileDescription=$(MSBuildProjectName) $(Platform) $(Config);FileVersion=1.0.4.1;InternalName=$(MSBuildProjectName);LegalCopyright=(c) 2020 by NaliLord;OriginalFilename=AMDPlugin.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=Rainmeter AMD GPU Plugin;ProductVersion=1.0.0.0
- 4
- 1
+ FileDescription=$(MSBuildProjectName) $(Platform) $(Config);FileVersion=1.0.5.2;InternalName=$(MSBuildProjectName);LegalCopyright=(c) 2021 by NaliLord;OriginalFilename=AMDPlugin.dll;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=Rainmeter AMD GPU Plugin;ProductVersion=1.0.0.0
+ 5
+ 2
diff --git a/Plugin/AMDPlugin.res b/Plugin/AMDPlugin.res
index 754dcef..242c017 100644
Binary files a/Plugin/AMDPlugin.res and b/Plugin/AMDPlugin.res differ
diff --git a/Testing/Main.dfm b/Testing/Main.dfm
index 71d80a7..194dfc0 100644
--- a/Testing/Main.dfm
+++ b/Testing/Main.dfm
@@ -4,8 +4,8 @@ object frmMain: TfrmMain
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
Caption = 'AMD GPU Info'
- ClientHeight = 215
- ClientWidth = 456
+ ClientHeight = 217
+ ClientWidth = 457
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -20,7 +20,7 @@ object frmMain: TfrmMain
TextHeight = 13
object lblTemp: TLabel
Left = 8
- Top = 8
+ Top = 40
Width = 30
Height = 21
AutoSize = False
@@ -29,7 +29,7 @@ object frmMain: TfrmMain
end
object lblFan: TLabel
Left = 8
- Top = 32
+ Top = 64
Width = 30
Height = 21
AutoSize = False
@@ -38,7 +38,7 @@ object frmMain: TfrmMain
end
object Label1: TLabel
Left = 8
- Top = 104
+ Top = 136
Width = 30
Height = 21
AutoSize = False
@@ -47,7 +47,7 @@ object frmMain: TfrmMain
end
object Label2: TLabel
Left = 8
- Top = 56
+ Top = 88
Width = 30
Height = 21
AutoSize = False
@@ -56,7 +56,7 @@ object frmMain: TfrmMain
end
object Label3: TLabel
Left = 8
- Top = 80
+ Top = 112
Width = 41
Height = 21
AutoSize = False
@@ -65,99 +65,84 @@ object frmMain: TfrmMain
end
object Label4: TLabel
Left = 8
- Top = 128
+ Top = 160
Width = 30
Height = 21
AutoSize = False
Caption = 'VRAM:'
Layout = tlCenter
end
- object btnGetInfo: TButton
- Left = 8
- Top = 155
- Width = 80
- Height = 25
- Caption = 'Start'
- TabOrder = 0
- OnClick = btnGetInfoClick
- end
object edTemp: TEdit
Left = 56
- Top = 8
+ Top = 40
Width = 121
Height = 21
- TabOrder = 1
+ TabOrder = 0
Text = 'n/a'
end
object edFan: TEdit
Left = 56
- Top = 32
+ Top = 64
Width = 121
Height = 21
- TabOrder = 2
+ TabOrder = 1
Text = 'n/a'
end
object edLoad: TEdit
Left = 56
- Top = 104
+ Top = 136
Width = 121
Height = 21
- TabOrder = 3
+ TabOrder = 2
Text = 'n/a'
end
- object Button1: TButton
- Left = 94
- Top = 155
- Width = 80
- Height = 25
- Caption = 'Stop'
- TabOrder = 4
- OnClick = Button1Click
- end
object edClock: TEdit
Left = 56
- Top = 56
+ Top = 88
Width = 121
Height = 21
- TabOrder = 5
+ TabOrder = 3
Text = 'n/a'
end
object edMemory: TEdit
Left = 56
- Top = 80
+ Top = 112
Width = 121
Height = 21
- TabOrder = 6
+ TabOrder = 4
Text = 'n/a'
end
object TrackBar1: TTrackBar
Left = 0
- Top = 184
- Width = 456
+ Top = 186
+ Width = 457
Height = 31
Align = alBottom
Max = 1000
Min = 250
Position = 1000
- TabOrder = 7
+ TabOrder = 5
TickMarks = tmBoth
TickStyle = tsNone
+ OnChange = TrackBar1Change
+ ExplicitTop = 184
+ ExplicitWidth = 456
end
object edVRAM: TEdit
Left = 56
- Top = 128
+ Top = 160
Width = 121
Height = 21
- TabOrder = 8
+ TabOrder = 6
Text = 'n/a'
end
object GroupBox1: TGroupBox
Left = 183
- Top = 8
+ Top = 40
Width = 265
Height = 141
Caption = ' TD3DKMT Memory Info '
- TabOrder = 9
+ TabOrder = 7
object Label5: TLabel
Left = 12
Top = 24
@@ -244,10 +229,18 @@ object frmMain: TfrmMain
TabOrder = 4
end
end
+ object cbAdapter: TComboBox
+ Left = 8
+ Top = 8
+ Width = 440
+ Height = 21
+ Style = csDropDownList
+ TabOrder = 8
+ OnChange = cbAdapterChange
+ end
object tmrUpdate: TTimer
- Enabled = False
OnTimer = tmrUpdateTimer
Left = 32
- Top = 24
+ Top = 56
end
end
diff --git a/Testing/Main.pas b/Testing/Main.pas
index cc8d3ac..4f2c227 100644
--- a/Testing/Main.pas
+++ b/Testing/Main.pas
@@ -8,14 +8,12 @@ interface
type
TfrmMain = class(TForm)
- btnGetInfo: TButton;
edTemp: TEdit;
lblTemp: TLabel;
edFan: TEdit;
lblFan: TLabel;
Label1: TLabel;
edLoad: TEdit;
- Button1: TButton;
Label2: TLabel;
edClock: TEdit;
Label3: TLabel;
@@ -35,11 +33,12 @@ TfrmMain = class(TForm)
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
+ cbAdapter: TComboBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure tmrUpdateTimer(Sender: TObject);
- procedure btnGetInfoClick(Sender: TObject);
- procedure Button1Click(Sender: TObject);
+ procedure cbAdapterChange(Sender: TObject);
+ procedure TrackBar1Change(Sender: TObject);
private
FADL: TADL;
FD3DKMT: TD3DKMTStatistics;
@@ -54,22 +53,24 @@ implementation
{$R *.dfm}
-procedure TfrmMain.btnGetInfoClick(Sender: TObject);
+procedure TfrmMain.cbAdapterChange(Sender: TObject);
begin
- tmrUpdate.Interval:=TrackBar1.Position;
- tmrUpdate.Enabled:=True;
-end;
+ if Assigned(FD3DKMT) then
+ FreeAndNil(FD3DKMT);
-procedure TfrmMain.Button1Click(Sender: TObject);
-begin
- tmrUpdate.Enabled:=False;
+ if cbAdapter.ItemIndex >= 0 then
+ FD3DKMT:=TD3DKMTStatistics.Create(FADL.Adapters[cbAdapter.ItemIndex].PNP);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
+var
+ I: Integer;
begin
FADL:=TADL.Create;
FADL.Update;
- FD3DKMT:=TD3DKMTStatistics.Create(FADL.Adapters[0].PNP);
+
+ for I:=0 to FADL.AdapterCount - 1 do
+ cbAdapter.Items.Add(Format('[%d] %s', [I, FADL[I].Name]));
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
@@ -80,20 +81,32 @@ procedure TfrmMain.FormDestroy(Sender: TObject);
procedure TfrmMain.tmrUpdateTimer(Sender: TObject);
begin
FADL.Update;
- FD3DKMT.Update;
-
- edTemp.Text:=IntToStr(FADL.Adapters[0].Temp);
- edFan.Text:=IntToStr(FADL.Adapters[0].FanRPM);
- edLoad.Text:=IntToStr(FADL.Adapters[0].Activity);
- edClock.Text:=IntToStr(FADL.Adapters[0].Clock);
- edMemory.Text:=IntToStr(FADL.Adapters[0].Memory);
- edVRAM.Text:=IntToStr(Round(FADL.Adapters[0].MemorySize / 1024 / 1024));
-
- lblMemoryUsage.Caption:=IntToStr(Round(FD3DKMT.MemoryUsage / 1024 / 1024));
- lblSharedLimit.Caption:=IntToStr(Round(FD3DKMT.SharedLimit / 1024 / 1024));
- lblDedicatedLimit.Caption:=IntToStr(Round(FD3DKMT.DedicatedLimit / 1024 / 1024));
- lblSharedUsage.Caption:=IntToStr(Round(FD3DKMT.SharedUsage / 1024 / 1024));
- lblDedicatedUsage.Caption:=IntToStr(Round(FD3DKMT.DedicatedUsage / 1024 / 1024));
+
+ if cbAdapter.ItemIndex >= 0 then
+ begin
+ edTemp.Text:=IntToStr(FADL.Adapters[cbAdapter.ItemIndex].Temp);
+ edFan.Text:=IntToStr(FADL.Adapters[cbAdapter.ItemIndex].FanRPM);
+ edLoad.Text:=IntToStr(FADL.Adapters[cbAdapter.ItemIndex].Activity);
+ edClock.Text:=IntToStr(FADL.Adapters[cbAdapter.ItemIndex].Clock);
+ edMemory.Text:=IntToStr(FADL.Adapters[cbAdapter.ItemIndex].Memory);
+ edVRAM.Text:=IntToStr(Round(FADL.Adapters[cbAdapter.ItemIndex].MemorySize / 1024 / 1024));
+ end;
+
+ if Assigned(FD3DKMT) then
+ begin
+ FD3DKMT.Update;
+
+ lblMemoryUsage.Caption:=IntToStr(Round(FD3DKMT.MemoryUsage / 1024 / 1024));
+ lblSharedLimit.Caption:=IntToStr(Round(FD3DKMT.SharedLimit / 1024 / 1024));
+ lblDedicatedLimit.Caption:=IntToStr(Round(FD3DKMT.DedicatedLimit / 1024 / 1024));
+ lblSharedUsage.Caption:=IntToStr(Round(FD3DKMT.SharedUsage / 1024 / 1024));
+ lblDedicatedUsage.Caption:=IntToStr(Round(FD3DKMT.DedicatedUsage / 1024 / 1024));
+ end;
+end;
+
+procedure TfrmMain.TrackBar1Change(Sender: TObject);
+begin
+ tmrUpdate.Interval:=TrackBar1.Position;
end;
end.
diff --git a/Testing/TestApp.dproj b/Testing/TestApp.dproj
index 6e8111f..ebd1b77 100644
--- a/Testing/TestApp.dproj
+++ b/Testing/TestApp.dproj
@@ -5,7 +5,7 @@
VCL
TestApp.dpr
True
- Release
+ Debug
Win64
3
Application
@@ -45,6 +45,12 @@
Base
true
+
+ true
+ Cfg_2
+ true
+ true
+
true
Cfg_2
@@ -111,6 +117,9 @@
0
0
+
+ Debug
+
true
PerMonitorV2