REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the EmulatorPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Ray Ni <ray.ni@intel.com>
		
			
				
	
	
		
			202 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			202 lines
		
	
	
		
			6.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
| Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
| SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| Module Name:
 | |
| 
 | |
|   WinGop.h
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
|   Private data for the Gop driver that is bound to the WinNt Thunk protocol
 | |
| 
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _WIN_GOP_H_
 | |
| #define _WIN_GOP_H_
 | |
| 
 | |
| #include "WinHost.h"
 | |
| 
 | |
| #include <Protocol/EmuIoThunk.h>
 | |
| #include <Protocol/EmuGraphicsWindow.h>
 | |
| #include <Protocol/SimplePointer.h>
 | |
| #include <Protocol/SimpleTextIn.h>
 | |
| #include <Protocol/SimpleTextInEx.h>
 | |
| #include <Protocol/GraphicsOutput.h>
 | |
| #include <Library/FrameBufferBltLib.h>
 | |
| 
 | |
| //
 | |
| // WM_SYSKEYDOWN/WM_SYSKEYUP Notification
 | |
| // lParam
 | |
| // bit 24: Specifies whether the key is an extended key,
 | |
| // such as the right-hand ALT and CTRL keys that appear on
 | |
| // an enhanced 101- or 102-key keyboard.
 | |
| // The value is 1 if it is an extended key; otherwise, it is 0.
 | |
| // bit 29:Specifies the context code.
 | |
| // The value is 1 if the ALT key is down while the key is pressed/released;
 | |
| // it is 0 if the WM_SYSKEYDOWN message is posted to the active window
 | |
| // because no window has the keyboard focus.
 | |
| #define GOP_EXTENDED_KEY     (0x1 << 24)
 | |
| #define GOP_ALT_KEY_PRESSED  (0x1 << 29)
 | |
| 
 | |
| #define KEYBOARD_TIMER_INTERVAL  200000         // 0.02s
 | |
| 
 | |
| #define MAX_Q  256
 | |
| 
 | |
| typedef struct {
 | |
|   UINTN               Front;
 | |
|   UINTN               Rear;
 | |
|   EFI_KEY_DATA        Q[MAX_Q];
 | |
|   CRITICAL_SECTION    Cs;
 | |
| } GOP_QUEUE_FIXED;
 | |
| 
 | |
| #define WIN_NT_GOP_CLASS_NAME  L"WinNtGopWindow"
 | |
| 
 | |
| typedef struct {
 | |
|   UINT64                                              Signature;
 | |
|   EMU_GRAPHICS_WINDOW_PROTOCOL                        GraphicsWindowIo;
 | |
| 
 | |
|   //
 | |
|   // GOP Private Data knowing when to start hardware
 | |
|   //
 | |
|   BOOLEAN                                             HardwareNeedsStarting;
 | |
| 
 | |
|   CHAR16                                              *WindowName;
 | |
|   CHAR16                                              Buffer[160];
 | |
| 
 | |
|   HANDLE                                              ThreadInited; // Semaphore
 | |
|   HANDLE                                              ThreadHandle; // Thread
 | |
|   DWORD                                               ThreadId;
 | |
| 
 | |
|   HWND                                                WindowHandle;
 | |
|   WNDCLASSEX                                          WindowsClass;
 | |
| 
 | |
|   UINT32                                              Width;
 | |
|   UINT32                                              Height;
 | |
|   //
 | |
|   // This screen is used to redraw the screen when windows events happen. It's
 | |
|   // updated in the main thread and displayed in the windows thread.
 | |
|   //
 | |
|   BITMAPV4HEADER                                      *VirtualScreenInfo;
 | |
| 
 | |
|   FRAME_BUFFER_CONFIGURE                              *FrameBufferConfigure;
 | |
| 
 | |
|   //
 | |
|   // Keyboard Queue used by Simple Text In.
 | |
|   // QueueForRead:   WinProc thread adds, and main thread removes.
 | |
|   //
 | |
|   GOP_QUEUE_FIXED                                     QueueForRead;
 | |
| 
 | |
|   EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK    MakeRegisterdKeyCallback;
 | |
|   EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK    BreakRegisterdKeyCallback;
 | |
|   VOID                                                *RegisterdKeyCallbackContext;
 | |
| 
 | |
|   EFI_KEY_STATE                                       KeyState;
 | |
|   BOOLEAN                                             LeftShift;
 | |
|   BOOLEAN                                             RightShift;
 | |
|   BOOLEAN                                             LeftAlt;
 | |
|   BOOLEAN                                             RightAlt;
 | |
|   BOOLEAN                                             LeftCtrl;
 | |
|   BOOLEAN                                             RightCtrl;
 | |
|   BOOLEAN                                             LeftLogo;
 | |
|   BOOLEAN                                             RightLogo;
 | |
|   BOOLEAN                                             Menu;
 | |
|   BOOLEAN                                             SysReq;
 | |
|   BOOLEAN                                             NumLock;
 | |
|   BOOLEAN                                             ScrollLock;
 | |
|   BOOLEAN                                             CapsLock;
 | |
|   BOOLEAN                                             IsPartialKeySupport;
 | |
|   INT32                                               PointerPreviousX;
 | |
|   INT32                                               PointerPreviousY;
 | |
|   BOOLEAN                                             PointerStateChanged;
 | |
|   EFI_SIMPLE_POINTER_STATE                            PointerState;
 | |
| } GRAPHICS_PRIVATE_DATA;
 | |
| #define GRAPHICS_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 ('g', 'f', 'x', 'd')
 | |
| #define GRAPHICS_PRIVATE_DATA_FROM_THIS(a)  \
 | |
|          CR(a, GRAPHICS_PRIVATE_DATA, GraphicsWindowIo, GRAPHICS_PRIVATE_DATA_SIGNATURE)
 | |
| 
 | |
| //
 | |
| // Gop Hardware abstraction internal worker functions
 | |
| //
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  Private              TODO: add argument description
 | |
|   @param  Key                  TODO: add argument description
 | |
| 
 | |
|   @return TODO: add return values
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| GopPrivateAddKey (
 | |
|   IN  GRAPHICS_PRIVATE_DATA  *Private,
 | |
|   IN  EFI_INPUT_KEY          Key
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndGetKey (
 | |
|   IN  EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsIo,
 | |
|   IN  EFI_KEY_DATA                  *KeyData
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndCheckKey (
 | |
|   IN  EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsIo
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndKeySetState (
 | |
|   IN EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsIo,
 | |
|   IN EFI_KEY_TOGGLE_STATE          *KeyToggleState
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndRegisterKeyNotify (
 | |
|   IN EMU_GRAPHICS_WINDOW_PROTOCOL                      *GraphicsIo,
 | |
|   IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK  MakeCallBack,
 | |
|   IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK  BreakCallBack,
 | |
|   IN VOID                                              *Context
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndCheckPointer (
 | |
|   IN  EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsIo
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| EFIAPI
 | |
| WinNtWndGetPointerState (
 | |
|   IN  EMU_GRAPHICS_WINDOW_PROTOCOL  *GraphicsIo,
 | |
|   IN  EFI_SIMPLE_POINTER_STATE      *State
 | |
|   );
 | |
| 
 | |
| EFI_STATUS
 | |
| GopPrivateCreateQ (
 | |
|   IN  GRAPHICS_PRIVATE_DATA  *Private,
 | |
|   IN GOP_QUEUE_FIXED         *Queue
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   TODO: Add function description
 | |
| 
 | |
|   @param  Private               TODO: add argument description
 | |
| 
 | |
|   @retval EFI_SUCCESS           TODO: Add description for return value
 | |
| 
 | |
| **/
 | |
| EFI_STATUS
 | |
| GopPrivateDestroyQ (
 | |
|   IN  GRAPHICS_PRIVATE_DATA  *Private,
 | |
|   IN GOP_QUEUE_FIXED         *Queue
 | |
|   );
 | |
| 
 | |
| #endif
 |