mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
173 lines
4.5 KiB
C
173 lines
4.5 KiB
C
/** @file
|
|
Copyright (C) 2014 - 2017, Download-Fritz. All rights reserved.<BR>
|
|
This program and the accompanying materials are licensed and made available
|
|
under the terms and conditions of the BSD License which accompanies this
|
|
distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php.
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
#ifndef APPLE_EVENT_H
|
|
#define APPLE_EVENT_H
|
|
|
|
#include <IndustryStandard/AppleHid.h>
|
|
|
|
// Apple Event Type
|
|
|
|
#define APPLE_EVENT_TYPE_NONE 0
|
|
#define APPLE_EVENT_TYPE_MOUSE_MOVED BIT0
|
|
#define APPLE_EVENT_TYPE_MOUSE_DOWN BIT1
|
|
#define APPLE_EVENT_TYPE_MOUSE_UP BIT2
|
|
#define APPLE_EVENT_TYPE_MOUSE_CLICK BIT3
|
|
#define APPLE_EVENT_TYPE_MOUSE_DOUBLE_CLICK BIT4
|
|
#define APPLE_EVENT_TYPE_LEFT_BUTTON BIT5
|
|
#define APPLE_EVENT_TYPE_RIGHT_BUTTON BIT6
|
|
#define APPLE_EVENT_TYPE_RESERVED_BUTTON BIT7
|
|
#define APPLE_EVENT_TYPE_KEY_DOWN BIT8
|
|
#define APPLE_EVENT_TYPE_KEY_UP BIT9
|
|
#define APPLE_EVENT_TYPE_MODIFIER_DOWN BIT10
|
|
#define APPLE_EVENT_TYPE_MODIFIER_UP BIT11
|
|
|
|
#define APPLE_CLICK_MOUSE_EVENTS \
|
|
(APPLE_EVENT_TYPE_MOUSE_DOWN \
|
|
| APPLE_EVENT_TYPE_MOUSE_UP \
|
|
| APPLE_EVENT_TYPE_MOUSE_CLICK \
|
|
| APPLE_EVENT_TYPE_LEFT_BUTTON \
|
|
| APPLE_EVENT_TYPE_RIGHT_BUTTON)
|
|
|
|
#define APPLE_ALL_MOUSE_EVENTS 0x00FF
|
|
#define APPLE_ALL_KEYBOARD_EVENTS 0xFF00
|
|
|
|
// APPLE_EVENT_TYPE
|
|
typedef UINT32 APPLE_EVENT_TYPE;
|
|
|
|
// APPLE_POINTER_EVENT_TYPE
|
|
typedef UINTN APPLE_POINTER_EVENT_TYPE;
|
|
|
|
// APPLE_KEY_EVENT_DATA
|
|
typedef struct {
|
|
UINT16 NumberOfKeyPairs;
|
|
EFI_INPUT_KEY InputKey;
|
|
APPLE_KEY_CODE AppleKeyCode;
|
|
} APPLE_KEY_EVENT_DATA;
|
|
|
|
typedef union {
|
|
APPLE_KEY_EVENT_DATA *KeyData;
|
|
APPLE_POINTER_EVENT_TYPE PointerEventType;
|
|
UINTN Raw;
|
|
} APPLE_EVENT_DATA;
|
|
|
|
// DIMENSION
|
|
typedef struct {
|
|
INT32 Horizontal;
|
|
INT32 Vertical;
|
|
} DIMENSION;
|
|
|
|
// APPLE_EVENT_INFORMATION
|
|
typedef struct {
|
|
struct {
|
|
UINT16 Year;
|
|
UINT8 Month;
|
|
UINT8 Day;
|
|
UINT8 Hour;
|
|
UINT8 Minute;
|
|
UINT8 Second;
|
|
UINT8 Pad1;
|
|
} CreationTime;
|
|
APPLE_EVENT_TYPE EventType;
|
|
APPLE_EVENT_DATA EventData;
|
|
APPLE_MODIFIER_MAP Modifiers;
|
|
DIMENSION PointerPosition;
|
|
} APPLE_EVENT_INFORMATION;
|
|
|
|
// APPLE_EVENT_NOTIFY_FUNCTION
|
|
typedef
|
|
VOID
|
|
(EFIAPI *APPLE_EVENT_NOTIFY_FUNCTION)(
|
|
IN APPLE_EVENT_INFORMATION *Information,
|
|
IN VOID *NotifyContext
|
|
);
|
|
|
|
// APPLE_EVENT_HANDLE
|
|
typedef VOID *APPLE_EVENT_HANDLE;
|
|
|
|
// Protocol declaration
|
|
|
|
// APPLE_EVENT_PROTOCOL_REVISION
|
|
#define APPLE_EVENT_PROTOCOL_REVISION 0x00000007
|
|
|
|
// APPLE_EVENT_PROTOCOL_REVISION_MINIMUM
|
|
#define APPLE_EVENT_PROTOCOL_REVISION_MINIMUM 0x00000006
|
|
|
|
// APPLE_EVENT_PROTOCOL_GUID
|
|
#define APPLE_EVENT_PROTOCOL_GUID \
|
|
{ 0x33BE0EF1, 0x89C9, 0x4A6D, \
|
|
{ 0xBB, 0x9F, 0x69, 0xDC, 0x8D, 0xD5, 0x16, 0xB9 } }
|
|
|
|
// EVENT_REGISTER_HANDLER
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EVENT_REGISTER_HANDLER)(
|
|
IN APPLE_EVENT_TYPE Type,
|
|
IN APPLE_EVENT_NOTIFY_FUNCTION NotifyFunction,
|
|
OUT APPLE_EVENT_HANDLE *Handle,
|
|
IN VOID *NotifyContext
|
|
);
|
|
|
|
// EVENT_UNREGISTER_HANDLER
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EVENT_UNREGISTER_HANDLER)(
|
|
IN APPLE_EVENT_HANDLE EventHandle
|
|
);
|
|
|
|
// EVENT_SET_CURSOR_POSITION
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EVENT_SET_CURSOR_POSITION)(
|
|
IN DIMENSION *Position
|
|
);
|
|
|
|
// EVENT_SET_EVENT_NAME
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EVENT_SET_EVENT_NAME)(
|
|
IN OUT APPLE_EVENT_HANDLE Handle,
|
|
IN CHAR8 *Name
|
|
);
|
|
|
|
// EVENT_IS_CAPS_LOCK_ON
|
|
|
|
/** Retrieves the state of the CapsLock key.
|
|
|
|
@param[in,out] CLockOn This parameter indicates the state of the CapsLock
|
|
key.
|
|
|
|
@retval EFI_SUCCESS The CapsLock state was successfully returned
|
|
in CLockOn.
|
|
@retval EFI_INVALID_PARAMETER CLockOn is NULL.
|
|
**/
|
|
typedef
|
|
EFI_STATUS
|
|
(EFIAPI *EVENT_IS_CAPS_LOCK_ON)(
|
|
IN OUT BOOLEAN *CLockOn
|
|
);
|
|
|
|
// APPLE_EVENT_PROTOCOL
|
|
typedef struct {
|
|
UINT32 Revision;
|
|
EVENT_REGISTER_HANDLER RegisterHandler;
|
|
EVENT_UNREGISTER_HANDLER UnregisterHandler;
|
|
EVENT_SET_CURSOR_POSITION SetCursorPosition;
|
|
EVENT_SET_EVENT_NAME SetEventName;
|
|
EVENT_IS_CAPS_LOCK_ON IsCapsLockOn;
|
|
} APPLE_EVENT_PROTOCOL;
|
|
|
|
// gAppleEventProtocolGuid
|
|
extern EFI_GUID gAppleEventProtocolGuid;
|
|
|
|
#endif // APPLE_EVENT_H
|