diff -r 64b46a2cc8ae -r a105b5eee02f Hardware/ATI/ADL.cs --- a/Hardware/ATI/ADL.cs Fri Jan 29 21:14:23 2010 +0000 +++ b/Hardware/ATI/ADL.cs Fri Jan 29 21:58:31 2010 +0000 @@ -137,6 +137,8 @@ ref int numAdapters); public delegate int ADL_Adapter_ID_GetDelegate(int adapterIndex, out int adapterID); + public delegate int ADL_Display_AdapterID_GetDelegate(int adapterIndex, + out int adapterID); public delegate int ADL_Adapter_Active_GetDelegate(int adapterIndex, out int status); public delegate int ADL_Overdrive5_CurrentActivity_GetDelegate( @@ -154,13 +156,15 @@ private static ADL_Adapter_AdapterInfo_GetDelegate _ADL_Adapter_AdapterInfo_Get; - public static ADL_Main_Control_DestroyDelegate + public static ADL_Main_Control_DestroyDelegate ADL_Main_Control_Destroy; public static ADL_Adapter_NumberOfAdapters_GetDelegate ADL_Adapter_NumberOfAdapters_Get; - public static ADL_Adapter_ID_GetDelegate - ADL_Adapter_ID_Get; - public static ADL_Adapter_Active_GetDelegate + public static ADL_Adapter_ID_GetDelegate + _ADL_Adapter_ID_Get; + public static ADL_Display_AdapterID_GetDelegate + _ADL_Display_AdapterID_Get; + public static ADL_Adapter_Active_GetDelegate ADL_Adapter_Active_Get; public static ADL_Overdrive5_CurrentActivity_GetDelegate ADL_Overdrive5_CurrentActivity_Get; @@ -199,7 +203,9 @@ GetDelegate("ADL_Adapter_NumberOfAdapters_Get", out ADL_Adapter_NumberOfAdapters_Get); GetDelegate("ADL_Adapter_ID_Get", - out ADL_Adapter_ID_Get); + out _ADL_Adapter_ID_Get); + GetDelegate("ADL_Display_AdapterID_Get", + out _ADL_Display_AdapterID_Get); GetDelegate("ADL_Adapter_Active_Get", out ADL_Adapter_Active_Get); GetDelegate("ADL_Overdrive5_CurrentActivity_Get", @@ -242,6 +248,20 @@ return result; } + public static int ADL_Adapter_ID_Get(int adapterIndex, + out int adapterID) { + try { + return _ADL_Adapter_ID_Get(adapterIndex, out adapterID); + } catch (EntryPointNotFoundException) { + try { + return _ADL_Display_AdapterID_Get(adapterIndex, out adapterID); + } catch (EntryPointNotFoundException) { + adapterID = 1; + return ADL_OK; + } + } + } + private delegate IntPtr ADL_Main_Memory_AllocDelegate(int size); private static IntPtr Main_Memory_Alloc(int size) {