#define NULL_SK "" #define A_Make_SK "\x1e" #define A_Break_SK "\x9e" #define B_Make_SK "\x30" #define B_Break_SK "\xb0" #define C_Make_SK "\x2e" #define C_Break_SK "\xae" #define D_Make_SK "\x20" #define D_Break_SK "\xa0" #define E_Make_SK "\x12" #define E_Break_SK "\x92" #define F_Make_SK "\x21" #define F_Break_SK "\xa1" #define G_Make_SK "\x22" #define G_Break_SK "\xa2" #define H_Make_SK "\x23" #define H_Break_SK "\xa3" #define I_Make_SK "\x17" #define I_Break_SK "\x97" #define J_Make_SK "\x24" #define J_Break_SK "\xa4" #define K_Make_SK "\x25" #define K_Break_SK "\xa5" #define L_Make_SK "\x26" #define L_Break_SK "\xa6" #define M_Make_SK "\x32" #define M_Break_SK "\xb2" #define N_Make_SK "\x31" #define N_Break_SK "\xb1" #define O_Make_SK "\x18" #define O_Break_SK "\x98" #define P_Make_SK "\x19" #define P_Break_SK "\x99" #define Q_Make_SK "\x10" #define Q_Break_SK "\x90" #define R_Make_SK "\x13" #define R_Break_SK "\x93" #define S_Make_SK "\x1f" #define S_Break_SK "\x9f" #define T_Make_SK "\x14" #define T_Break_SK "\x94" #define U_Make_SK "\x16" #define U_Break_SK "\x96" #define V_Make_SK "\x2f" #define V_Break_SK "\xaf" #define W_Make_SK "\x11" #define W_Break_SK "\x91" #define X_Make_SK "\x2d" #define X_Break_SK "\xad" #define Y_Make_SK "\x15" #define Y_Break_SK "\x95" #define Z_Make_SK "\x2c" #define Z_Break_SK "\xac" #define SPACE_Make_SK "\x39" #define SPACE_Break_SK "\xb9" #define ENTER_Make_SK "\x1c" #define ENTER_Break_SK "\x9c" #define SHIFT_Make_SK "\x2a" /***************/ #define SHIFT_Break_SK "\xaa" /***************/ #define BACKSPACE_Make_SK "\x0e" #define BACKSPACE_Break_SK "\x8e" #define DELETE_Make_SK "\xe0\x53" #define DELETE_Break_SK "\xe0\xd3" #define ALT_Make_SK "\x38" /****************/ #define ALT_Break_SK "\xb8" /****************/ #define CTL_Make_SK "\x1d" /****************/ #define CTL_Break_SK "\x9d" /****************/ #define ESCAPE_Make_SK "\x01" #define ESCAPE_Break_SK "\x81" #define TAB_Make_SK "\x0f" #define TAB_Break_SK "\x8f" #define CAPS_LOCK_Make_SK "\x3a" /****************/ #define CAPS_LOCK_Break_SK "\xba" /****************/ #define INSERT_Make_SK "\xe0\x52" #define INSERT_Break_SK "\xe0\xd2" /* No decernable difference between PAUSE and BREAK and there is no up down behavior, scancodes only show on down */ #define BREAK_Make_SK "\xe1\xd1\x45\xe1\x9d\xc5" #define BREAK_Break_SK "" #define PAUSE_Make_SK "\xe1\xd1\x45\xe1\x9d\xc5" #define PAUSE_Break_SK "" #define COMMA_LEFT_ANGLE_BRACKET_Make_SK "\x33" #define COMMA_LEFT_ANGLE_BRACKET_Break_SK "\xb3" #define PERIOD_RIGHT_ANGLE_BRACKET_Make_SK "\x34" #define PERIOD_RIGHT_ANGLE_BRACKET_Break_SK "\xb4" #define APOSTROPHY_DOUBLE_QUOTES_Make_SK "\x28" #define APOSTROPHY_DOUBLE_QUOTES_Break_SK "\xa8" #define SEMICOLON_COLON_Make_SK "\x27" #define SEMICOLON_COLON_Break_SK "\xa7" #define HOME_Make_SK "\xe0\x47" #define HOME_Break_SK "\xe0\xc7" #define END_Make_SK "\xe0\x4f" #define END_Break_SK "\xe0\xcf" #define PGUP_Make_SK "\xe0\x49" #define PGUP_Break_SK "\xe0\xc9" #define PGDOWN_Make_SK "\xe0\x51" #define PGDOWN_Break_SK "\xe0\xd1" #define LEFT_ARROW_Make_SK "\xe0\x4b" #define LEFT_ARROW_Break_SK "\xe0\xcb" #define RIGHT_ARROW_Make_SK "\xe0\x4d" #define RIGHT_ARROW_Break_SK "\xe0\xcd" #define UP_ARROW_Make_SK "\xe0\x48" #define UP_ARROW_Break_SK "\xe0\xc8" #define DOWN_ARROW_Make_SK "\xe0\x50" #define DOWN_ARROW_Break_SK "\xe0\xd0" #define PRINT_SCREEN_Make_SK "\e0\x2a\x37\xe0\xb7\xaa" #define PRINT_SCREEN_Break_SK "" /* #define SCROLL_LOCK_SK "\x3c\xbc" Don't have it*/ #define F1_Make_SK "\x3b" #define F1_Break_SK "\xbb" #define F2_Make_SK "\x3c" #define F2_Break_SK "\xbc" #define F3_Make_SK "\x3d" #define F3_Break_SK "\xbd" #define F4_Make_SK "\x3e" #define F4_Break_SK "\xbe" #define F5_Make_SK "\x3f" #define F5_Break_SK "\xbf" #define F6_Make_SK "\x40" #define F6_Break_SK "\xc0" #define F7_Make_SK "\x41" #define F7_Break_SK "\xc1" #define F8_Make_SK "\x42" #define F8_Break_SK "\xc2" #define F9_Make_SK "\x43" #define F9_Break_SK "\xc3" #define F10_Make_SK "\x44" #define F10_Break_SK "\xc4" #define F11_Make_SK "\x57" #define F11_Break_SK "\xd7" #define F12_Make_SK "\x58" #define F12_Break_SK "\xd8" #define ONE_EXCLIMATION_Make_SK "\x02" #define ONE_EXCLIMATION_Break_SK "\x82" #define TWO_AT_Make_SK "\x03" #define TWO_AT_Break_SK "\x83" #define THREE_POUND_Make_SK "\x04" #define THREE_POUND_Break_SK "\x84" #define FOUR_DOLLAR_Make_SK "\x05" #define FOUR_DOLLAR_Break_SK "\x85" #define FIVE_PERCENT_Make_SK "\x06" #define FIVE_PERCENT_Break_SK "\x86" #define SIX_CARROT_Make_SK "\x07" #define SIX_CARROT_Break_SK "\x87" #define SEVEN_AMPERSAND_Make_SK "\x08" #define SEVEN_AMPERSAND_Break_SK "\x88" #define EIGHT_STAR_Make_SK "\x09" #define EIGHT_STAR_Break_SK "\x89" #define NINE_LEFT_CURVED_BRACKET_Make_SK "\x0a" #define NINE_LEFT_CURVED_BRACKET_Break_SK "\x8a" #define ZERO_RIGHT_CURVED_BRACKET_Make_SK "\x0b" #define ZERO_RIGHT_CURVED_BRACKET_Break_SK "\x8b" #define BACKSLASH_PIPE_Make_SK "\x2b" #define BACKSLASH_PIPE_Break_SK "\xab" #define LEFT_APOSTROPHY_TILDE_Make_SK "\x29" #define LEFT_APOSTROPHY_TILDE_Break_SK "\xa9" #define LEFT_SQUARE_BRACKET_LEFT_SQUIGLY_BRACKET_Make_SK "\x1a" #define LEFT_SQUARE_BRACKET_LEFT_SQUIGLY_BRACKET_Break_SK "\x9a" #define RIGHT_SQUARE_BRACKET_RIGHT_SQUIGLY_BRACKET_Make_SK "\x1b" #define RIGHT_SQUARE_BRACKET_RIGHT_SQUIGLY_BRACKET_Break_SK "\x9b" #define DASH_UNDERSCORE_Make_SK "\x0c" #define DASH_UNDERSCORE_Break_SK "\x8c" #define SLASH_QUESTIONMARK_Make_SK "\x35" #define SLASH_QUESTIONMARK_Break_SK "\xb5" #define EQUALS_PLUS_Make_SK "\x0d" #define EQUALS_PLUS_Break_SK "\x8d" #define ADD_Make_SK "\x2a\x0d" #define ADD_Break_SK "\x8d\xaa" #define MULTIPLY_Make_SK "\x2a\x09" #define MULTIPLY_Break_SK "\x89\xaa" #define PERCENT_Make_SK "\x2a\x06" #define PERCENT_Break_SK "\x86\xaa" #define AMPERSAND_Make_SK "\x2a\x08" #define AMPERSAND_Break_SK "\x88\xaa" #define QUESTIONMARK_Make_SK "\x2a\x35" #define QUESTIONMARK_Break_SK "\xb5\xaa" #define EXCLIMATION_Make_SK "\x2a\x02" #define EXCLIMATION_Break_SK "\xb5\x82" #define QUOTES_Make_SK "" #define QUOTES_Break_SK "\x2a\x28\xa8\x28\xa8\xaa\xe0\x4b\xe0\xcb" #define PARENS_Make_SK "" #define PARENS_Break_SK "\x2a\x0a\x8a\x0b\x8b\xaa\xe0\x4b\xe0\xcb" #define DOUBLE_ZERO_Make_SK "" #define DOUBLE_ZERO_Break_SK "\x0b\x8b\x0b\x8b" #define TRIPLE_ZERO_Make_SK "" #define TRIPLE_ZERO_Break_SK "\x0b\x8b\x0b\x8b\x0b\x8b" #define FUNCTION_MODE_SK "" #define NUMBER_MODE_SK "" #define RESET_SK "" #define MACRO1_SK "" #define MACRO2_SK "" #define KEYPAD_MODE_SK "" #define NUMBER_MODE_LOCK_SK "" #define WORDCHORD_SK "" #define PINKY_MAKECODE 0x18 #define RING_MAKECODE 0x21 #define MIDDLE_MAKECODE 0x23 #define INDEX_MAKECODE 0x03 #define THUMB_RED_MAKECODE 0x10 #define THUMB_GREY_MAKECODE 0x25 #define THUMB_BLUE_MAKECODE 0x27 #define PINKY_BREAKCODE 0x98 #define RING_BREAKCODE 0xa1 #define MIDDLE_BREAKCODE 0xa3 #define INDEX_BREAKCODE 0x83 #define THUMB_RED_BREAKCODE 0x90 #define THUMB_GREY_BREAKCODE 0xa5 #define THUMB_BLUE_BREAKCODE 0xa7 #define RESET_CHORD 0x70 #define SHIFT_CHORD 0x40 #define ALT_CHORD 0x17 #define CTL_CHORD 0x1b #define NUM_CHORD 0x10 #define NUMLOCK_CHORD 0x1f #define FUNC_CHORD 0x11 const int PINKY_SWITCH = (1<<0); const int RING_SWITCH = (1<<1); const int MIDDLE_SWITCH = (1<<2); const int INDEX_SWITCH = (1<<3); const int THUMB_RED_SWITCH = (1<<4); const int THUMB_GREY_SWITCH = (1<<5); const int THUMB_BLUE_SWITCH = (1<<6); const int SHIFT_STICK = (1<<0); const int ALT_STICK = (1<<1); const int CNTL_STICK = (1<<2); const int NUM_LOCK = (1<<3); const int CHORD_ON = (1<<4); const int CHORD_UP = (1<<5); const int CHORD_FIRST = (1<<6); const int NUMBER_MODE = 0x01; const int FUNCTION_MODE = 0x02; const char ALT_SCANCODE = 0x38; const char CTL_SCANCODE = 0x1d; const char SHIFT_SCANCODE = 0x2a;