| 
									
										
										
										
											2015-05-24 06:55:12 +02:00
										 |  |  | // Copyright 2015 Dolphin Emulator Project
 | 
					
						
							| 
									
										
										
										
											2015-05-18 01:08:10 +02:00
										 |  |  | // Licensed under GPLv2+
 | 
					
						
							| 
									
										
										
										
											2015-01-17 09:36:05 +11:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "Common/CommonTypes.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum KeyMasks | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	KEYMASK_HOME = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_END = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_PGUP = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_PGDN = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_SCROLLLOCK = (1 << 4), | 
					
						
							|  |  |  | 	KEYMASK_A = (1 << 5), | 
					
						
							|  |  |  | 	KEYMASK_B = (1 << 6), | 
					
						
							|  |  |  | 	KEYMASK_C = (1 << 7), | 
					
						
							|  |  |  | 	KEYMASK_D = (1 << 8), | 
					
						
							|  |  |  | 	KEYMASK_E = (1 << 9), | 
					
						
							|  |  |  | 	KEYMASK_F = (1 << 10), | 
					
						
							|  |  |  | 	KEYMASK_G = (1 << 11), | 
					
						
							|  |  |  | 	KEYMASK_H = (1 << 12), | 
					
						
							|  |  |  | 	KEYMASK_I = (1 << 13), | 
					
						
							|  |  |  | 	KEYMASK_J = (1 << 14), | 
					
						
							|  |  |  | 	KEYMASK_K = (1 << 15), | 
					
						
							|  |  |  | 	KEYMASK_L = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_M = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_N = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_O = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_P = (1 << 4), | 
					
						
							|  |  |  | 	KEYMASK_Q = (1 << 5), | 
					
						
							|  |  |  | 	KEYMASK_R = (1 << 6), | 
					
						
							|  |  |  | 	KEYMASK_S = (1 << 7), | 
					
						
							|  |  |  | 	KEYMASK_T = (1 << 8), | 
					
						
							|  |  |  | 	KEYMASK_U = (1 << 9), | 
					
						
							|  |  |  | 	KEYMASK_V = (1 << 10), | 
					
						
							|  |  |  | 	KEYMASK_W = (1 << 11), | 
					
						
							|  |  |  | 	KEYMASK_X = (1 << 12), | 
					
						
							|  |  |  | 	KEYMASK_Y = (1 << 13), | 
					
						
							|  |  |  | 	KEYMASK_Z = (1 << 14), | 
					
						
							|  |  |  | 	KEYMASK_1 = (1 << 15), | 
					
						
							|  |  |  | 	KEYMASK_2 = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_3 = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_4 = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_5 = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_6 = (1 << 4), | 
					
						
							|  |  |  | 	KEYMASK_7 = (1 << 5), | 
					
						
							|  |  |  | 	KEYMASK_8 = (1 << 6), | 
					
						
							|  |  |  | 	KEYMASK_9 = (1 << 7), | 
					
						
							|  |  |  | 	KEYMASK_0 = (1 << 8), | 
					
						
							|  |  |  | 	KEYMASK_MINUS = (1 << 9), | 
					
						
							|  |  |  | 	KEYMASK_PLUS = (1 << 10), | 
					
						
							|  |  |  | 	KEYMASK_PRINTSCR = (1 << 11), | 
					
						
							|  |  |  | 	KEYMASK_BRACE_OPEN = (1 << 12), | 
					
						
							|  |  |  | 	KEYMASK_BRACE_CLOSE = (1 << 13), | 
					
						
							|  |  |  | 	KEYMASK_COLON = (1 << 14), | 
					
						
							|  |  |  | 	KEYMASK_QUOTE = (1 << 15), | 
					
						
							|  |  |  | 	KEYMASK_HASH = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_COMMA = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_PERIOD = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_QUESTIONMARK = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_INTERNATIONAL1 = (1 << 4), | 
					
						
							|  |  |  | 	KEYMASK_F1 = (1 << 5), | 
					
						
							|  |  |  | 	KEYMASK_F2 = (1 << 6), | 
					
						
							|  |  |  | 	KEYMASK_F3 = (1 << 7), | 
					
						
							|  |  |  | 	KEYMASK_F4 = (1 << 8), | 
					
						
							|  |  |  | 	KEYMASK_F5 = (1 << 9), | 
					
						
							|  |  |  | 	KEYMASK_F6 = (1 << 10), | 
					
						
							|  |  |  | 	KEYMASK_F7 = (1 << 11), | 
					
						
							|  |  |  | 	KEYMASK_F8 = (1 << 12), | 
					
						
							|  |  |  | 	KEYMASK_F9 = (1 << 13), | 
					
						
							|  |  |  | 	KEYMASK_F10 = (1 << 14), | 
					
						
							|  |  |  | 	KEYMASK_F11 = (1 << 15), | 
					
						
							|  |  |  | 	KEYMASK_F12 = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_ESC = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_INSERT = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_DELETE = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_TILDE = (1 << 4), | 
					
						
							|  |  |  | 	KEYMASK_BACKSPACE = (1 << 5), | 
					
						
							|  |  |  | 	KEYMASK_TAB = (1 << 6), | 
					
						
							|  |  |  | 	KEYMASK_CAPSLOCK = (1 << 7), | 
					
						
							|  |  |  | 	KEYMASK_LEFTSHIFT = (1 << 8), | 
					
						
							|  |  |  | 	KEYMASK_RIGHTSHIFT = (1 << 9), | 
					
						
							|  |  |  | 	KEYMASK_LEFTCONTROL = (1 << 10), | 
					
						
							|  |  |  | 	KEYMASK_RIGHTALT = (1 << 11), | 
					
						
							|  |  |  | 	KEYMASK_LEFTWINDOWS = (1 << 12), | 
					
						
							|  |  |  | 	KEYMASK_SPACE = (1 << 13), | 
					
						
							|  |  |  | 	KEYMASK_RIGHTWINDOWS = (1 << 14), | 
					
						
							|  |  |  | 	KEYMASK_MENU = (1 << 15), | 
					
						
							|  |  |  | 	KEYMASK_LEFTARROW = (1 << 0), | 
					
						
							|  |  |  | 	KEYMASK_DOWNARROW = (1 << 1), | 
					
						
							|  |  |  | 	KEYMASK_UPARROW = (1 << 2), | 
					
						
							|  |  |  | 	KEYMASK_RIGHTARROW = (1 << 3), | 
					
						
							|  |  |  | 	KEYMASK_ENTER = (1 << 4), | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | enum KeyScanCode | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	KEY_HOME = 0x06, | 
					
						
							|  |  |  | 	KEY_END = 0x07, | 
					
						
							|  |  |  | 	KEY_PGUP = 0x08, | 
					
						
							|  |  |  | 	KEY_PGDN = 0x09, | 
					
						
							|  |  |  | 	KEY_SCROLLLOCK = 0x0A, | 
					
						
							|  |  |  | 	KEY_A = 0x10, | 
					
						
							|  |  |  | 	KEY_B = 0x11, | 
					
						
							|  |  |  | 	KEY_C = 0x12, | 
					
						
							|  |  |  | 	KEY_D = 0x13, | 
					
						
							|  |  |  | 	KEY_E = 0x14, | 
					
						
							|  |  |  | 	KEY_F = 0x15, | 
					
						
							|  |  |  | 	KEY_G = 0x16, | 
					
						
							|  |  |  | 	KEY_H = 0x17, | 
					
						
							|  |  |  | 	KEY_I = 0x18, | 
					
						
							|  |  |  | 	KEY_J = 0x19, | 
					
						
							|  |  |  | 	KEY_K = 0x1A, | 
					
						
							|  |  |  | 	KEY_L = 0x1B, | 
					
						
							|  |  |  | 	KEY_M = 0x1C, | 
					
						
							|  |  |  | 	KEY_N = 0x1D, | 
					
						
							|  |  |  | 	KEY_O = 0x1E, | 
					
						
							|  |  |  | 	KEY_P = 0x1F, | 
					
						
							|  |  |  | 	KEY_Q = 0x20, | 
					
						
							|  |  |  | 	KEY_R = 0x21, | 
					
						
							|  |  |  | 	KEY_S = 0x22, | 
					
						
							|  |  |  | 	KEY_T = 0x23, | 
					
						
							|  |  |  | 	KEY_U = 0x24, | 
					
						
							|  |  |  | 	KEY_V = 0x25, | 
					
						
							|  |  |  | 	KEY_W = 0x26, | 
					
						
							|  |  |  | 	KEY_X = 0x27, | 
					
						
							|  |  |  | 	KEY_Y = 0x28, | 
					
						
							|  |  |  | 	KEY_Z = 0x29, | 
					
						
							|  |  |  | 	KEY_1 = 0x2A, | 
					
						
							|  |  |  | 	KEY_2 = 0x2B, | 
					
						
							|  |  |  | 	KEY_3 = 0x2C, | 
					
						
							|  |  |  | 	KEY_4 = 0x2D, | 
					
						
							|  |  |  | 	KEY_5 = 0x2E, | 
					
						
							|  |  |  | 	KEY_6 = 0x2F, | 
					
						
							|  |  |  | 	KEY_7 = 0x30, | 
					
						
							|  |  |  | 	KEY_8 = 0x31, | 
					
						
							|  |  |  | 	KEY_9 = 0x32, | 
					
						
							|  |  |  | 	KEY_0 = 0x33, | 
					
						
							|  |  |  | 	KEY_MINUS = 0x34, | 
					
						
							|  |  |  | 	KEY_PLUS = 0x35, | 
					
						
							|  |  |  | 	KEY_PRINTSCR = 0x36, | 
					
						
							|  |  |  | 	KEY_BRACE_OPEN = 0x37, | 
					
						
							|  |  |  | 	KEY_BRACE_CLOSE = 0x38, | 
					
						
							|  |  |  | 	KEY_COLON = 0x39, | 
					
						
							|  |  |  | 	KEY_QUOTE = 0x3A, | 
					
						
							|  |  |  | 	KEY_HASH = 0x3B, | 
					
						
							|  |  |  | 	KEY_COMMA = 0x3C, | 
					
						
							|  |  |  | 	KEY_PERIOD = 0x3D, | 
					
						
							|  |  |  | 	KEY_QUESTIONMARK = 0x3E, | 
					
						
							|  |  |  | 	KEY_INTERNATIONAL1 = 0x3F, | 
					
						
							|  |  |  | 	KEY_F1 = 0x40, | 
					
						
							|  |  |  | 	KEY_F2 = 0x41, | 
					
						
							|  |  |  | 	KEY_F3 = 0x42, | 
					
						
							|  |  |  | 	KEY_F4 = 0x43, | 
					
						
							|  |  |  | 	KEY_F5 = 0x44, | 
					
						
							|  |  |  | 	KEY_F6 = 0x45, | 
					
						
							|  |  |  | 	KEY_F7 = 0x46, | 
					
						
							|  |  |  | 	KEY_F8 = 0x47, | 
					
						
							|  |  |  | 	KEY_F9 = 0x48, | 
					
						
							|  |  |  | 	KEY_F10 = 0x49, | 
					
						
							|  |  |  | 	KEY_F11 = 0x4A, | 
					
						
							|  |  |  | 	KEY_F12 = 0x4B, | 
					
						
							|  |  |  | 	KEY_ESC = 0x4C, | 
					
						
							|  |  |  | 	KEY_INSERT = 0x4D, | 
					
						
							|  |  |  | 	KEY_DELETE = 0x4E, | 
					
						
							|  |  |  | 	KEY_TILDE = 0x4F, | 
					
						
							|  |  |  | 	KEY_BACKSPACE = 0x50, | 
					
						
							|  |  |  | 	KEY_TAB = 0x51, | 
					
						
							|  |  |  | 	KEY_CAPSLOCK = 0x53, | 
					
						
							|  |  |  | 	KEY_LEFTSHIFT = 0x54, | 
					
						
							|  |  |  | 	KEY_RIGHTSHIFT = 0x55, | 
					
						
							|  |  |  | 	KEY_LEFTCONTROL = 0x56, | 
					
						
							|  |  |  | 	KEY_RIGHTALT = 0x57, | 
					
						
							|  |  |  | 	KEY_LEFTWINDOWS = 0x58, | 
					
						
							|  |  |  | 	KEY_SPACE = 0x59, | 
					
						
							|  |  |  | 	KEY_RIGHTWINDOWS = 0x5A, | 
					
						
							|  |  |  | 	KEY_MENU = 0x5B, | 
					
						
							|  |  |  | 	KEY_LEFTARROW = 0x5C, | 
					
						
							|  |  |  | 	KEY_DOWNARROW = 0x5D, | 
					
						
							|  |  |  | 	KEY_UPARROW = 0x5E, | 
					
						
							|  |  |  | 	KEY_RIGHTARROW = 0x5F, | 
					
						
							|  |  |  | 	KEY_ENTER = 0x61 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct KeyboardStatus | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	u16 key0x; | 
					
						
							|  |  |  | 	u16 key1x; | 
					
						
							|  |  |  | 	u16 key2x; | 
					
						
							|  |  |  | 	u16 key3x; | 
					
						
							|  |  |  | 	u16 key4x; | 
					
						
							|  |  |  | 	u16 key5x; | 
					
						
							|  |  |  | 	u16 key6x; | 
					
						
							|  |  |  | 	s8  err; | 
					
						
							|  |  |  | }; |