#include <Protocol/GraphicsOutput.h>\r
#include <Guid/PrimaryConsoleInDevice.h>\r
#include <Protocol/SimplePointer.h>\r
+#include <Protocol/AbsolutePointer.h>\r
#include <Protocol/SimpleTextOut.h>\r
#include <Guid/ConsoleInDevice.h>\r
#include <Protocol/SimpleTextIn.h>\r
extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding;\r
extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePointerComponentName;\r
extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;\r
extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding;\r
extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutComponentName;\r
extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;\r
EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;\r
LIST_ENTRY NotifyEntry;\r
} TEXT_IN_EX_SPLITTER_NOTIFY;\r
+\r
typedef struct {\r
UINT64 Signature;\r
EFI_HANDLE VirtualHandle;\r
EFI_SIMPLE_POINTER_PROTOCOL **PointerList;\r
UINTN PointerListCount;\r
\r
+ EFI_ABSOLUTE_POINTER_PROTOCOL AbsolutePointer;\r
+ EFI_ABSOLUTE_POINTER_MODE AbsolutePointerMode;\r
+ UINTN CurrentNumberOfAbsolutePointers;\r
+ EFI_ABSOLUTE_POINTER_PROTOCOL **AbsolutePointerList;\r
+ UINTN AbsolutePointerListCount;\r
+ BOOLEAN AbsoluteInputEventSignalState; \r
+\r
BOOLEAN PasswordEnabled;\r
CHAR16 Password[MAX_STD_IN_PASSWORD];\r
UINTN PwdIndex;\r
)\r
;\r
\r
+//\r
+// Driver binding functions\r
+//\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingSupported (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingStart (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerDriverBindingStop (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+ConSplitterAbsolutePointerAddDevice (\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
+ )\r
+;\r
+\r
+EFI_STATUS\r
+ConSplitterAbsolutePointerDeleteDevice (\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
+ )\r
+;\r
+\r
+//\r
+// Absolute Pointer protocol interfaces\r
+//\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerReset (\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
+ )\r
+/*++\r
+\r
+ Routine Description:\r
+ Resets the pointer device hardware.\r
+\r
+ Arguments:\r
+ This - Protocol instance pointer.\r
+ ExtendedVerification - Driver may perform diagnostics on reset.\r
+\r
+ Returns:\r
+ EFI_SUCCESS - The device was reset.\r
+ EFI_DEVICE_ERROR - The device is not functioning correctly and could \r
+ not be reset.\r
+ \r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI \r
+ConSplitterAbsolutePointerGetState (\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
+ IN OUT EFI_ABSOLUTE_POINTER_STATE *State\r
+ )\r
+/*++\r
+\r
+ Routine Description:\r
+ Retrieves the current state of a pointer device.\r
+\r
+ Arguments:\r
+ This - Protocol instance pointer.\r
+ State - A pointer to the state information on the pointer device.\r
+\r
+ Returns:\r
+ EFI_SUCCESS - The state of the pointer device was returned in State..\r
+ EFI_NOT_READY - The state of the pointer device has not changed since the last call to\r
+ GetState(). \r
+ EFI_DEVICE_ERROR - A device error occurred while attempting to retrieve the pointer\r
+ device's current state. \r
+--*/\r
+;\r
+\r
+VOID\r
+EFIAPI\r
+ConSplitterAbsolutePointerWaitForInput (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
+;\r
+\r
/**\r
Retrieves a Unicode string that is the user readable name of the driver.\r
\r
OUT CHAR16 **ControllerName\r
);\r
\r
+EFI_STATUS\r
+EFIAPI\r
+ConSplitterAbsolutePointerComponentNameGetControllerName (\r
+ IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_HANDLE ChildHandle OPTIONAL,\r
+ IN CHAR8 *Language,\r
+ OUT CHAR16 **ControllerName\r
+ )\r
+;\r
\r
/**\r
Retrieves a Unicode string that is the user readable name of the controller\r