DisplayEvents
Demontrates how to handle notifications about display change when programming with ADLX.
Sample Path
/Samples/java/DisplayEvents
Code
//
// Copyright (c) 2021 - 2022 Advanced Micro Devices, Inc. All rights reserved.
//
//-------------------------------------------------------------------------------------------------
import out.*;
public class mainDisplayEvents {
// load ADLXJavaBind.dll
static {
try {
System.loadLibrary("ADLXJavaBind");
} catch (UnsatisfiedLinkError e) {
System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e);
System.exit(1);
}
}
// Get displaylistchanged
public static void main(String[] args) {
// Initialize ADLX with ADLXHelper
ADLXHelper help = new ADLXHelper();
ADLX_RESULT res = help.Initialize();
if (res == ADLX_RESULT .ADLX_OK) {
// Get system services
IADLXSystem sys = help.GetSystemServices();
// Get display services
SWIGTYPE_p_p_adlx__IADLXDisplayServices s = ADLX.new_displaySerP_Ptr();
res = sys.GetDisplaysServices(s);
IADLXDisplayServices displayService = ADLX.displaySerP_Ptr_value(s);
// Get display changed handling
SWIGTYPE_p_p_adlx__IADLXDisplayChangedHandling ppDisChangeHand = ADLX.new_displayChangeHandlP_Ptr();
displayService.GetDisplayChangedHandling(ppDisChangeHand);
IADLXDisplayChangedHandling hand = ADLX.displayChangeHandlP_Ptr_value(ppDisChangeHand);
// Call back for dislaylistchanged
DisplayListCallBack call = new DisplayListCallBack();
hand.AddDisplayListEventListener(call);
System.out.println("\n\n Plug or unplug a display within 20 seconds.\n");
try {
Thread.currentThread().sleep(20000);
} catch (Exception e) {
// Exception handling
}
hand.RemoveDisplayListEventListener(call);
// Release display changed handling interface
hand.Release();
// Release display services interface
displayService.Release();
} else {
System.out.printf("ADLX helper initialize result: %s\n", res.toString());
}
// ADLX Terminate
res = help.Terminate();
System.out.printf("ADLX Terminate: %s\n", res.toString());
}
}