changed 'KEY__' to 'KEYBOARD__' for keycode macros

partial-rewrite
Ben Blazak 2013-04-18 13:32:37 -07:00
parent bf13abc274
commit e4b1717657
5 changed files with 468 additions and 468 deletions

View File

@ -75,11 +75,11 @@
*
* Needed by ".../lib/layout/keys.h"
*/
#define KEYS__SHIFTED(name, value) \
void P(name) (void) { KF(press)(KEY__LeftShift); \
KF(press)(value); } \
void R(name) (void) { KF(release)(value); \
KF(release)(KEY__LeftShift); }
#define KEYS__SHIFTED(name, value) \
void P(name) (void) { KF(press)(KEYBOARD__LeftShift); \
KF(press)(value); } \
void R(name) (void) { KF(release)(value); \
KF(release)(KEYBOARD__LeftShift); }
/** macros/KEYS__LAYER__PUSH_POP/description
* Define the functions for a layer push-pop key (i.e. a layer shift key).
@ -130,27 +130,27 @@
* These macros are meant to be used (if necessary) in the layout file, since
* they need to know the layer on which the number pad has been placed.
*/
#define KEYS__LAYER__NUM_PU_PO(ID, LAYER) \
void P(numPuPo) (void) { layer_stack__push(ID, LAYER); \
KF(press)(KEY__LockingNumLock); \
usb__kb__send_report(); \
KF(release)(KEY__LockingNumLock); \
usb__kb__send_report(); } \
void R(numPuPo) (void) { layer_stack__pop_id(ID); \
KF(press)(KEY__LockingNumLock); \
usb__kb__send_report(); \
KF(release)(KEY__LockingNumLock); \
#define KEYS__LAYER__NUM_PU_PO(ID, LAYER) \
void P(numPuPo) (void) { layer_stack__push(ID, LAYER); \
KF(press)(KEYBOARD__LockingNumLock); \
usb__kb__send_report(); \
KF(release)(KEYBOARD__LockingNumLock); \
usb__kb__send_report(); } \
void R(numPuPo) (void) { layer_stack__pop_id(ID); \
KF(press)(KEYBOARD__LockingNumLock); \
usb__kb__send_report(); \
KF(release)(KEYBOARD__LockingNumLock); \
usb__kb__send_report(); }
#define KEYS__LAYER__NUM_PUSH(LAYER, ID) \
void P(numPush) (void) { layer_stack__push(ID, LAYER); \
KF(press)(KEY__LockingNumLock); } \
void R(numPush) (void) { KF(release)(KEY__LockingNumLock); }
#define KEYS__LAYER__NUM_PUSH(LAYER, ID) \
void P(numPush) (void) { layer_stack__push(ID, LAYER); \
KF(press)(KEYBOARD__LockingNumLock); } \
void R(numPush) (void) { KF(release)(KEYBOARD__LockingNumLock); }
#define KEYS__LAYER__NUM_POP(LAYER, ID) \
void P(numPop) (void) { layer_stack__pop_id(ID); \
KF(press)(KEY__LockingNumLock); } \
void R(numPop) (void) { KF(release)(KEY__LockingNumLock); }
#define KEYS__LAYER__NUM_POP(LAYER, ID) \
void P(numPop) (void) { layer_stack__pop_id(ID); \
KF(press)(KEYBOARD__LockingNumLock); } \
void R(numPop) (void) { KF(release)(KEYBOARD__LockingNumLock); }
// ----------------------------------------------------------------------------
@ -193,9 +193,9 @@ void KF(2_keys_capslock)(bool pressed, uint8_t keycode) {
* non-transparent key at the same position.
*
* Notes:
* - Keys may be half transparent; that is, the "press" part of a key may be
* transparent while the "release" part isn't, or vice versa. I expect this
* to be fairly uncommon though.
* - With this scheme, keys may be half transparent; that is, the "press" part
* of a key may be transparent while the "release" part isn't, or vice versa.
* I expect this to be fairly uncommon though.
*/
#define keys__press__transp NULL
#define keys__release__transp NULL
@ -211,10 +211,10 @@ void R(nop) (void) {}
// --- special keycode --------------------------------------------------------
KEYS__DEFAULT( power, KEY__Power );
KEYS__DEFAULT( volumeU, KEY__VolumeUp );
KEYS__DEFAULT( volumeD, KEY__VolumeDown );
KEYS__DEFAULT( mute, KEY__Mute );
KEYS__DEFAULT( power, KEYBOARD__Power );
KEYS__DEFAULT( volumeU, KEYBOARD__VolumeUp );
KEYS__DEFAULT( volumeD, KEYBOARD__VolumeDown );
KEYS__DEFAULT( mute, KEYBOARD__Mute );
// --- special function -------------------------------------------------------
@ -225,8 +225,8 @@ KEYS__DEFAULT( mute, KEY__Mute );
* This key always generates a left shift. If the `shR2kcap` is pressed at
* the same time, "capslock" will be toggled.
*/
void P(shL2kcap) (void) { KF(2_keys_capslock)(true, KEY__LeftShift); }
void R(shL2kcap) (void) { KF(2_keys_capslock)(false, KEY__LeftShift); }
void P(shL2kcap) (void) { KF(2_keys_capslock)(true, KEYBOARD__LeftShift); }
void R(shL2kcap) (void) { KF(2_keys_capslock)(false, KEYBOARD__LeftShift); }
/** keys/shR2kcap/description
* right shift + toggle capslock (if both shifts are pressed)
@ -234,8 +234,8 @@ void R(shL2kcap) (void) { KF(2_keys_capslock)(false, KEY__LeftShift); }
* This key always generates a right shift. If the `shL2kcaps` is pressed at
* the same time, "capslock" will be toggled.
*/
void P(shR2kcap) (void) { KF(2_keys_capslock)(true, KEY__RightShift); }
void R(shR2kcap) (void) { KF(2_keys_capslock)(false, KEY__RightShift); }
void P(shR2kcap) (void) { KF(2_keys_capslock)(true, KEYBOARD__RightShift); }
void R(shR2kcap) (void) { KF(2_keys_capslock)(false, KEYBOARD__RightShift); }
/** keys/btldr/description
* jump to the bootloader

View File

@ -19,21 +19,21 @@
void kf__toggle_capslock (uint16_t ignore) {
// save the state of left and right shift
bool lshift_pressed = usb__kb__read_key(KEY__LeftShift);
bool rshift_pressed = usb__kb__read_key(KEY__RightShift);
bool lshift_pressed = usb__kb__read_key(KEYBOARD__LeftShift);
bool rshift_pressed = usb__kb__read_key(KEYBOARD__RightShift);
// disable both shifts
usb__kb__set_key(false, KEY__LeftShift);
usb__kb__set_key(false, KEY_RightShift);
usb__kb__set_key(false, KEYBOARD__LeftShift);
usb__kb__set_key(false, KEYBOARD__RightShift);
// toggle capslock
usb__kb__set_key(true, KEY_CapsLock);
usb__kb__set_key(true, KEYBOARD__CapsLock);
usb_keyboard_send();
usb__kb__set_key(false, KEY_CapsLock);
usb__kb__set_key(false, KEYBOARD__CapsLock);
usb_keyboard_send();
// restore the state of both shifts
if (lshift_pressed) usb__kb__set_key(true, KEY_LeftShift);
if (rshift_pressed) usb__kb__set_key(true, KEY_RightShift);
if (lshift_pressed) usb__kb__set_key(true, KEYBOARD__LeftShift);
if (rshift_pressed) usb__kb__set_key(true, KEYBOARD__RightShift);
}

View File

@ -38,184 +38,184 @@
// ----------------------------------------------------------------------------
// letters
KEYS__DEFAULT( a, KEY__a_A );
KEYS__DEFAULT( b, KEY__b_B );
KEYS__DEFAULT( c, KEY__c_C );
KEYS__DEFAULT( d, KEY__d_D );
KEYS__DEFAULT( e, KEY__e_E );
KEYS__DEFAULT( f, KEY__f_F );
KEYS__DEFAULT( g, KEY__g_G );
KEYS__DEFAULT( h, KEY__h_H );
KEYS__DEFAULT( i, KEY__i_I );
KEYS__DEFAULT( j, KEY__j_J );
KEYS__DEFAULT( k, KEY__k_K );
KEYS__DEFAULT( l, KEY__l_L );
KEYS__DEFAULT( m, KEY__m_M );
KEYS__DEFAULT( n, KEY__n_N );
KEYS__DEFAULT( o, KEY__o_O );
KEYS__DEFAULT( p, KEY__p_P );
KEYS__DEFAULT( q, KEY__q_Q );
KEYS__DEFAULT( r, KEY__r_R );
KEYS__DEFAULT( s, KEY__s_S );
KEYS__DEFAULT( t, KEY__t_T );
KEYS__DEFAULT( u, KEY__u_U );
KEYS__DEFAULT( v, KEY__v_V );
KEYS__DEFAULT( w, KEY__w_W );
KEYS__DEFAULT( x, KEY__x_X );
KEYS__DEFAULT( y, KEY__y_Y );
KEYS__DEFAULT( z, KEY__z_Z );
KEYS__DEFAULT( a, KEYBOARD__a_A );
KEYS__DEFAULT( b, KEYBOARD__b_B );
KEYS__DEFAULT( c, KEYBOARD__c_C );
KEYS__DEFAULT( d, KEYBOARD__d_D );
KEYS__DEFAULT( e, KEYBOARD__e_E );
KEYS__DEFAULT( f, KEYBOARD__f_F );
KEYS__DEFAULT( g, KEYBOARD__g_G );
KEYS__DEFAULT( h, KEYBOARD__h_H );
KEYS__DEFAULT( i, KEYBOARD__i_I );
KEYS__DEFAULT( j, KEYBOARD__j_J );
KEYS__DEFAULT( k, KEYBOARD__k_K );
KEYS__DEFAULT( l, KEYBOARD__l_L );
KEYS__DEFAULT( m, KEYBOARD__m_M );
KEYS__DEFAULT( n, KEYBOARD__n_N );
KEYS__DEFAULT( o, KEYBOARD__o_O );
KEYS__DEFAULT( p, KEYBOARD__p_P );
KEYS__DEFAULT( q, KEYBOARD__q_Q );
KEYS__DEFAULT( r, KEYBOARD__r_R );
KEYS__DEFAULT( s, KEYBOARD__s_S );
KEYS__DEFAULT( t, KEYBOARD__t_T );
KEYS__DEFAULT( u, KEYBOARD__u_U );
KEYS__DEFAULT( v, KEYBOARD__v_V );
KEYS__DEFAULT( w, KEYBOARD__w_W );
KEYS__DEFAULT( x, KEYBOARD__x_X );
KEYS__DEFAULT( y, KEYBOARD__y_Y );
KEYS__DEFAULT( z, KEYBOARD__z_Z );
// --- (shifted) ---
KEYS__SHIFTED( A, KEY__a_A );
KEYS__SHIFTED( B, KEY__b_B );
KEYS__SHIFTED( C, KEY__c_C );
KEYS__SHIFTED( D, KEY__d_D );
KEYS__SHIFTED( E, KEY__e_E );
KEYS__SHIFTED( F, KEY__f_F );
KEYS__SHIFTED( G, KEY__g_G );
KEYS__SHIFTED( H, KEY__h_H );
KEYS__SHIFTED( I, KEY__i_I );
KEYS__SHIFTED( J, KEY__j_J );
KEYS__SHIFTED( K, KEY__k_K );
KEYS__SHIFTED( L, KEY__l_L );
KEYS__SHIFTED( M, KEY__m_M );
KEYS__SHIFTED( N, KEY__n_N );
KEYS__SHIFTED( O, KEY__o_O );
KEYS__SHIFTED( P, KEY__p_P );
KEYS__SHIFTED( Q, KEY__q_Q );
KEYS__SHIFTED( R, KEY__r_R );
KEYS__SHIFTED( S, KEY__s_S );
KEYS__SHIFTED( T, KEY__t_T );
KEYS__SHIFTED( U, KEY__u_U );
KEYS__SHIFTED( V, KEY__v_V );
KEYS__SHIFTED( W, KEY__w_W );
KEYS__SHIFTED( X, KEY__x_X );
KEYS__SHIFTED( Y, KEY__y_Y );
KEYS__SHIFTED( Z, KEY__z_Z );
KEYS__SHIFTED( A, KEYBOARD__a_A );
KEYS__SHIFTED( B, KEYBOARD__b_B );
KEYS__SHIFTED( C, KEYBOARD__c_C );
KEYS__SHIFTED( D, KEYBOARD__d_D );
KEYS__SHIFTED( E, KEYBOARD__e_E );
KEYS__SHIFTED( F, KEYBOARD__f_F );
KEYS__SHIFTED( G, KEYBOARD__g_G );
KEYS__SHIFTED( H, KEYBOARD__h_H );
KEYS__SHIFTED( I, KEYBOARD__i_I );
KEYS__SHIFTED( J, KEYBOARD__j_J );
KEYS__SHIFTED( K, KEYBOARD__k_K );
KEYS__SHIFTED( L, KEYBOARD__l_L );
KEYS__SHIFTED( M, KEYBOARD__m_M );
KEYS__SHIFTED( N, KEYBOARD__n_N );
KEYS__SHIFTED( O, KEYBOARD__o_O );
KEYS__SHIFTED( P, KEYBOARD__p_P );
KEYS__SHIFTED( Q, KEYBOARD__q_Q );
KEYS__SHIFTED( R, KEYBOARD__r_R );
KEYS__SHIFTED( S, KEYBOARD__s_S );
KEYS__SHIFTED( T, KEYBOARD__t_T );
KEYS__SHIFTED( U, KEYBOARD__u_U );
KEYS__SHIFTED( V, KEYBOARD__v_V );
KEYS__SHIFTED( W, KEYBOARD__w_W );
KEYS__SHIFTED( X, KEYBOARD__x_X );
KEYS__SHIFTED( Y, KEYBOARD__y_Y );
KEYS__SHIFTED( Z, KEYBOARD__z_Z );
// numbers
KEYS__DEFAULT( 0, KEY__0_RightParenthesis );
KEYS__DEFAULT( 1, KEY__1_Exclamation );
KEYS__DEFAULT( 2, KEY__2_At );
KEYS__DEFAULT( 3, KEY__3_Pound );
KEYS__DEFAULT( 4, KEY__4_Dollar );
KEYS__DEFAULT( 5, KEY__5_Percent );
KEYS__DEFAULT( 6, KEY__6_Caret );
KEYS__DEFAULT( 7, KEY__7_Ampersand );
KEYS__DEFAULT( 8, KEY__8_Asterisk );
KEYS__DEFAULT( 9, KEY__9_LeftParenthesis );
KEYS__DEFAULT( 0, KEYBOARD__0_RightParenthesis );
KEYS__DEFAULT( 1, KEYBOARD__1_Exclamation );
KEYS__DEFAULT( 2, KEYBOARD__2_At );
KEYS__DEFAULT( 3, KEYBOARD__3_Pound );
KEYS__DEFAULT( 4, KEYBOARD__4_Dollar );
KEYS__DEFAULT( 5, KEYBOARD__5_Percent );
KEYS__DEFAULT( 6, KEYBOARD__6_Caret );
KEYS__DEFAULT( 7, KEYBOARD__7_Ampersand );
KEYS__DEFAULT( 8, KEYBOARD__8_Asterisk );
KEYS__DEFAULT( 9, KEYBOARD__9_LeftParenthesis );
// --- (shifted) ---
KEYS__SHIFTED( parenR, KEY__0_RightParenthesis );
KEYS__SHIFTED( exclam, KEY__1_Exclamation );
KEYS__SHIFTED( at, KEY__2_At );
KEYS__SHIFTED( pound, KEY__3_Pound );
KEYS__SHIFTED( dollar, KEY__4_Dollar );
KEYS__SHIFTED( percent, KEY__5_Percent );
KEYS__SHIFTED( caret, KEY__6_Caret );
KEYS__SHIFTED( amp, KEY__7_Ampersand );
KEYS__SHIFTED( asterisk, KEY__8_Asterisk );
KEYS__SHIFTED( parenL, KEY__9_LeftParenthesis );
KEYS__SHIFTED( parenR, KEYBOARD__0_RightParenthesis );
KEYS__SHIFTED( exclam, KEYBOARD__1_Exclamation );
KEYS__SHIFTED( at, KEYBOARD__2_At );
KEYS__SHIFTED( pound, KEYBOARD__3_Pound );
KEYS__SHIFTED( dollar, KEYBOARD__4_Dollar );
KEYS__SHIFTED( percent, KEYBOARD__5_Percent );
KEYS__SHIFTED( caret, KEYBOARD__6_Caret );
KEYS__SHIFTED( amp, KEYBOARD__7_Ampersand );
KEYS__SHIFTED( asterisk, KEYBOARD__8_Asterisk );
KEYS__SHIFTED( parenL, KEYBOARD__9_LeftParenthesis );
// --- (keypad) ---
KEYS__DEFAULT( kp0, KEYPAD__0_Insert );
KEYS__DEFAULT( kp1, KEYPAD__1_End );
KEYS__DEFAULT( kp2, KEYPAD__2_DownArrow );
KEYS__DEFAULT( kp3, KEYPAD__3_PageDown );
KEYS__DEFAULT( kp4, KEYPAD__4_LeftArrow );
KEYS__DEFAULT( kp5, KEYPAD__5 );
KEYS__DEFAULT( kp6, KEYPAD__6_RightArrow );
KEYS__DEFAULT( kp7, KEYPAD__7_Home );
KEYS__DEFAULT( kp8, KEYPAD__8_UpArrow );
KEYS__DEFAULT( kp9, KEYPAD__9_PageUp );
KEYS__DEFAULT( kp0, KEYPAD__0_Insert );
KEYS__DEFAULT( kp1, KEYPAD__1_End );
KEYS__DEFAULT( kp2, KEYPAD__2_DownArrow );
KEYS__DEFAULT( kp3, KEYPAD__3_PageDown );
KEYS__DEFAULT( kp4, KEYPAD__4_LeftArrow );
KEYS__DEFAULT( kp5, KEYPAD__5 );
KEYS__DEFAULT( kp6, KEYPAD__6_RightArrow );
KEYS__DEFAULT( kp7, KEYPAD__7_Home );
KEYS__DEFAULT( kp8, KEYPAD__8_UpArrow );
KEYS__DEFAULT( kp9, KEYPAD__9_PageUp );
// function
KEYS__DEFAULT( F1, KEY__F1 );
KEYS__DEFAULT( F2, KEY__F2 );
KEYS__DEFAULT( F3, KEY__F3 );
KEYS__DEFAULT( F4, KEY__F4 );
KEYS__DEFAULT( F5, KEY__F5 );
KEYS__DEFAULT( F6, KEY__F6 );
KEYS__DEFAULT( F7, KEY__F7 );
KEYS__DEFAULT( F8, KEY__F8 );
KEYS__DEFAULT( F9, KEY__F9 );
KEYS__DEFAULT( F10, KEY__F10 );
KEYS__DEFAULT( F11, KEY__F11 );
KEYS__DEFAULT( F12, KEY__F12 );
KEYS__DEFAULT( F1, KEYBOARD__F1 );
KEYS__DEFAULT( F2, KEYBOARD__F2 );
KEYS__DEFAULT( F3, KEYBOARD__F3 );
KEYS__DEFAULT( F4, KEYBOARD__F4 );
KEYS__DEFAULT( F5, KEYBOARD__F5 );
KEYS__DEFAULT( F6, KEYBOARD__F6 );
KEYS__DEFAULT( F7, KEYBOARD__F7 );
KEYS__DEFAULT( F8, KEYBOARD__F8 );
KEYS__DEFAULT( F9, KEYBOARD__F9 );
KEYS__DEFAULT( F10, KEYBOARD__F10 );
KEYS__DEFAULT( F11, KEYBOARD__F11 );
KEYS__DEFAULT( F12, KEYBOARD__F12 );
// whitespace and symbols
KEYS__DEFAULT( enter, KEY__ReturnEnter );
KEYS__DEFAULT( space, KEY__Spacebar );
KEYS__DEFAULT( tab, KEY__Tab );
KEYS__DEFAULT( enter, KEYBOARD__ReturnEnter );
KEYS__DEFAULT( space, KEYBOARD__Spacebar );
KEYS__DEFAULT( tab, KEYBOARD__Tab );
// ---
KEYS__DEFAULT( bkslash, KEY__Backslash_Pipe );
KEYS__DEFAULT( brktL, KEY__LeftBracket_LeftBrace );
KEYS__DEFAULT( brktR, KEY__RightBracket_RightBrace );
KEYS__DEFAULT( comma, KEY__Comma_LessThan );
KEYS__DEFAULT( dash, KEY__Dash_Underscore );
KEYS__DEFAULT( equal, KEY__Equal_Plus );
KEYS__DEFAULT( grave, KEY__GraveAccent_Tilde );
KEYS__DEFAULT( period, KEY__Period_GreaterThan );
KEYS__DEFAULT( quote, KEY__SingleQuote_DoubleQuote );
KEYS__DEFAULT( semicol, KEY__Semicolon_Colon );
KEYS__DEFAULT( slash, KEY__Slash_Question );
KEYS__DEFAULT( bkslash, KEYBOARD__Backslash_Pipe );
KEYS__DEFAULT( brktL, KEYBOARD__LeftBracket_LeftBrace );
KEYS__DEFAULT( brktR, KEYBOARD__RightBracket_RightBrace );
KEYS__DEFAULT( comma, KEYBOARD__Comma_LessThan );
KEYS__DEFAULT( dash, KEYBOARD__Dash_Underscore );
KEYS__DEFAULT( equal, KEYBOARD__Equal_Plus );
KEYS__DEFAULT( grave, KEYBOARD__GraveAccent_Tilde );
KEYS__DEFAULT( period, KEYBOARD__Period_GreaterThan );
KEYS__DEFAULT( quote, KEYBOARD__SingleQuote_DoubleQuote );
KEYS__DEFAULT( semicol, KEYBOARD__Semicolon_Colon );
KEYS__DEFAULT( slash, KEYBOARD__Slash_Question );
// --- (shifted) ---
KEYS__SHIFTED( pipe, KEY__Backslash_Pipe );
KEYS__SHIFTED( braceL, KEY__LeftBracket_LeftBrace );
KEYS__SHIFTED( braceR, KEY__RightBracket_RightBrace );
KEYS__SHIFTED( lessThan, KEY__Comma_LessThan );
KEYS__SHIFTED( undersc, KEY__Dash_Underscore );
KEYS__SHIFTED( plus, KEY__Equal_Plus );
KEYS__SHIFTED( tilde, KEY__GraveAccent_Tilde );
KEYS__SHIFTED( grtrThan, KEY__Period_GreaterThan );
KEYS__SHIFTED( dblQuote, KEY__SingleQuote_DoubleQuote );
KEYS__SHIFTED( colon, KEY__Semicolon_Colon );
KEYS__SHIFTED( question, KEY__Slash_Question );
KEYS__SHIFTED( pipe, KEYBOARD__Backslash_Pipe );
KEYS__SHIFTED( braceL, KEYBOARD__LeftBracket_LeftBrace );
KEYS__SHIFTED( braceR, KEYBOARD__RightBracket_RightBrace );
KEYS__SHIFTED( lessThan, KEYBOARD__Comma_LessThan );
KEYS__SHIFTED( undersc, KEYBOARD__Dash_Underscore );
KEYS__SHIFTED( plus, KEYBOARD__Equal_Plus );
KEYS__SHIFTED( tilde, KEYBOARD__GraveAccent_Tilde );
KEYS__SHIFTED( grtrThan, KEYBOARD__Period_GreaterThan );
KEYS__SHIFTED( dblQuote, KEYBOARD__SingleQuote_DoubleQuote );
KEYS__SHIFTED( colon, KEYBOARD__Semicolon_Colon );
KEYS__SHIFTED( question, KEYBOARD__Slash_Question );
// --- (keypad) ---
KEYS__DEFAULT( kpEnter, KEYPAD__Enter );
KEYS__DEFAULT( kpEnter, KEYPAD__Enter );
// ---
KEYS__DEFAULT( kpDec, KEYPAD__Period_Delete );
KEYS__DEFAULT( kpDec, KEYPAD__Period_Delete );
// ---
KEYS__DEFAULT( kpAdd, KEYPAD__Plus );
KEYS__DEFAULT( kpSub, KEYPAD__Minus );
KEYS__DEFAULT( kpMul, KEYPAD__Asterisk );
KEYS__DEFAULT( kpDiv, KEYPAD__Slash );
KEYS__DEFAULT( kpAdd, KEYPAD__Plus );
KEYS__DEFAULT( kpSub, KEYPAD__Minus );
KEYS__DEFAULT( kpMul, KEYPAD__Asterisk );
KEYS__DEFAULT( kpDiv, KEYPAD__Slash );
// text control
KEYS__DEFAULT( arrowU, KEY__UpArrow );
KEYS__DEFAULT( arrowD, KEY__DownArrow );
KEYS__DEFAULT( arrowL, KEY__LeftArrow );
KEYS__DEFAULT( arrowR, KEY__RightArrow );
KEYS__DEFAULT( bs, KEY__DeleteBackspace );
KEYS__DEFAULT( del, KEY__DeleteForward );
KEYS__DEFAULT( end, KEY__End );
KEYS__DEFAULT( esc, KEY__Escape );
KEYS__DEFAULT( home, KEY__Home );
KEYS__DEFAULT( ins, KEY__Insert );
KEYS__DEFAULT( pageU, KEY__PageUp );
KEYS__DEFAULT( pageD, KEY__PageDown );
KEYS__DEFAULT( arrowU, KEYBOARD__UpArrow );
KEYS__DEFAULT( arrowD, KEYBOARD__DownArrow );
KEYS__DEFAULT( arrowL, KEYBOARD__LeftArrow );
KEYS__DEFAULT( arrowR, KEYBOARD__RightArrow );
KEYS__DEFAULT( bs, KEYBOARD__DeleteBackspace );
KEYS__DEFAULT( del, KEYBOARD__DeleteForward );
KEYS__DEFAULT( end, KEYBOARD__End );
KEYS__DEFAULT( esc, KEYBOARD__Escape );
KEYS__DEFAULT( home, KEYBOARD__Home );
KEYS__DEFAULT( ins, KEYBOARD__Insert );
KEYS__DEFAULT( pageU, KEYBOARD__PageUp );
KEYS__DEFAULT( pageD, KEYBOARD__PageDown );
// modifier
KEYS__DEFAULT( altR, KEY__RightAlt );
KEYS__DEFAULT( altL, KEY__LeftAlt );
KEYS__DEFAULT( ctrlL, KEY__LeftControl );
KEYS__DEFAULT( ctrlR, KEY__RightControl );
KEYS__DEFAULT( guiL, KEY__LeftGUI );
KEYS__DEFAULT( guiR, KEY__RightGUI );
KEYS__DEFAULT( shiftL, KEY__LeftShift );
KEYS__DEFAULT( shiftR, KEY__RightShift );
KEYS__DEFAULT( altR, KEYBOARD__RightAlt );
KEYS__DEFAULT( altL, KEYBOARD__LeftAlt );
KEYS__DEFAULT( ctrlL, KEYBOARD__LeftControl );
KEYS__DEFAULT( ctrlR, KEYBOARD__RightControl );
KEYS__DEFAULT( guiL, KEYBOARD__LeftGUI );
KEYS__DEFAULT( guiR, KEYBOARD__RightGUI );
KEYS__DEFAULT( shiftL, KEYBOARD__LeftShift );
KEYS__DEFAULT( shiftR, KEYBOARD__RightShift );
// lock
KEYS__DEFAULT( caps, KEY__CapsLock );
KEYS__DEFAULT( scrl, KEY__ScrollLock );
KEYS__DEFAULT( caps, KEYBOARD__CapsLock );
KEYS__DEFAULT( scrl, KEYBOARD__ScrollLock );
// --- (keypad) ---
KEYS__DEFAULT( num, KEYPAD__NumLock_Clear );
KEYS__DEFAULT( num, KEYPAD__NumLock_Clear );
// special function
KEYS__DEFAULT( app, KEY__Application );
KEYS__DEFAULT( pause, KEY__Pause );
KEYS__DEFAULT( prScr, KEY__PrintScreen );
KEYS__DEFAULT( app, KEYBOARD__Application );
KEYS__DEFAULT( pause, KEYBOARD__Pause );
KEYS__DEFAULT( prScr, KEYBOARD__PrintScreen );
// international and language
KEYS__DEFAULT( nonUSBkslash, KEY__NonUS_Backslash_Pipe );
KEYS__DEFAULT( nonUSPound, KEY__NonUS_Pound_Tilde );
KEYS__DEFAULT( nonUSBkslash, KEYBOARD__NonUS_Backslash_Pipe );
KEYS__DEFAULT( nonUSPound, KEYBOARD__NonUS_Pound_Tilde );
// ----------------------------------------------------------------------------

View File

@ -22,38 +22,38 @@ uint8_t usb__kb__set_key(bool pressed, uint8_t keycode) {
// modifier keys
switch (keycode) {
case KEY__LeftControl: (pressed)
? (keyboard_modifier_keys |= (1<<0))
: (keyboard_modifier_keys &= ~(1<<0));
return 0;
case KEY__LeftShift: (pressed)
? (keyboard_modifier_keys |= (1<<1))
: (keyboard_modifier_keys &= ~(1<<1));
return 0;
case KEY__LeftAlt: (pressed)
? (keyboard_modifier_keys |= (1<<2))
: (keyboard_modifier_keys &= ~(1<<2));
return 0;
case KEY__LeftGUI: (pressed)
? (keyboard_modifier_keys |= (1<<3))
: (keyboard_modifier_keys &= ~(1<<3));
return 0;
case KEY__RightControl: (pressed)
? (keyboard_modifier_keys |= (1<<4))
: (keyboard_modifier_keys &= ~(1<<4));
return 0;
case KEY__RightShift: (pressed)
? (keyboard_modifier_keys |= (1<<5))
: (keyboard_modifier_keys &= ~(1<<5));
return 0;
case KEY__RightAlt: (pressed)
? (keyboard_modifier_keys |= (1<<6))
: (keyboard_modifier_keys &= ~(1<<6));
return 0;
case KEY__RightGUI: (pressed)
? (keyboard_modifier_keys |= (1<<7))
: (keyboard_modifier_keys &= ~(1<<7));
return 0;
case KEYBOARD__LeftControl: (pressed)
? (keyboard_modifier_keys |= (1<<0))
: (keyboard_modifier_keys &= ~(1<<0));
return 0;
case KEYBOARD__LeftShift: (pressed)
? (keyboard_modifier_keys |= (1<<1))
: (keyboard_modifier_keys &= ~(1<<1));
return 0;
case KEYBOARD__LeftAlt: (pressed)
? (keyboard_modifier_keys |= (1<<2))
: (keyboard_modifier_keys &= ~(1<<2));
return 0;
case KEYBOARD__LeftGUI: (pressed)
? (keyboard_modifier_keys |= (1<<3))
: (keyboard_modifier_keys &= ~(1<<3));
return 0;
case KEYBOARD__RightControl: (pressed)
? (keyboard_modifier_keys |= (1<<4))
: (keyboard_modifier_keys &= ~(1<<4));
return 0;
case KEYBOARD__RightShift: (pressed)
? (keyboard_modifier_keys |= (1<<5))
: (keyboard_modifier_keys &= ~(1<<5));
return 0;
case KEYBOARD__RightAlt: (pressed)
? (keyboard_modifier_keys |= (1<<6))
: (keyboard_modifier_keys &= ~(1<<6));
return 0;
case KEYBOARD__RightGUI: (pressed)
? (keyboard_modifier_keys |= (1<<7))
: (keyboard_modifier_keys &= ~(1<<7));
return 0;
}
// all others
@ -81,22 +81,22 @@ bool usb__kb__read_key(uint8_t keycode) {
// modifier keys
switch (keycode) {
case KEY__LeftControl: if (keyboard_modifier_keys & (1<<0))
return true;
case KEY__LeftShift: if (keyboard_modifier_keys & (1<<1))
return true;
case KEY__LeftAlt: if (keyboard_modifier_keys & (1<<2))
return true;
case KEY__LeftGUI: if (keyboard_modifier_keys & (1<<3))
return true;
case KEY__RightControl: if (keyboard_modifier_keys & (1<<4))
return true;
case KEY__RightShift: if (keyboard_modifier_keys & (1<<5))
return true;
case KEY__RightAlt: if (keyboard_modifier_keys & (1<<6))
return true;
case KEY__RightGUI: if (keyboard_modifier_keys & (1<<7))
return true;
case KEYBOARD__LeftControl: if (keyboard_modifier_keys & (1<<0))
return true;
case KEYBOARD__LeftShift: if (keyboard_modifier_keys & (1<<1))
return true;
case KEYBOARD__LeftAlt: if (keyboard_modifier_keys & (1<<2))
return true;
case KEYBOARD__LeftGUI: if (keyboard_modifier_keys & (1<<3))
return true;
case KEYBOARD__RightControl: if (keyboard_modifier_keys & (1<<4))
return true;
case KEYBOARD__RightShift: if (keyboard_modifier_keys & (1<<5))
return true;
case KEYBOARD__RightAlt: if (keyboard_modifier_keys & (1<<6))
return true;
case KEYBOARD__RightGUI: if (keyboard_modifier_keys & (1<<7))
return true;
}
// all others

View File

@ -7,7 +7,7 @@
/** description
* USB Keyboard Key Codes (usage page 0x07)
*
* Prefixes: `KEY__`, `KEYPAD__`
* Prefixes: `KEYBOARD__`, `KEYPAD__`
*
* Taken from [the HID Usage Tables pdf][1], Section 10, which can be found on
* [the HID Page][2] at <http://www.usb.org>
@ -31,246 +31,246 @@
// ----------------------------------------------------------------------------
// Name ID // PC Mac Unix Boot Keyboard Req.
// ---------------------------- ---- -- --- ---- --------------------
// Name ID // PC Mac Unix Boot Keyboard Req.
// ---------------------------- ---- -- --- ---- --------------------
// (Reserved) 0x00 // √ √ √ 84/101/104
// (Reserved) 0x00 // √ √ √ 84/101/104
#define KEY__ErrorRollOver 0x01 // √ √ √ 84/101/104
#define KEY__POSTFail 0x02 // √ √ √ 84/101/104
#define KEY__ErrorUndefined 0x03 // √ √ √ 84/101/104
#define KEY__a_A 0x04 // √ √ √ 84/101/104
#define KEY__b_B 0x05 // √ √ √ 84/101/104
#define KEY__c_C 0x06 // √ √ √ 84/101/104
#define KEY__d_D 0x07 // √ √ √ 84/101/104
#define KEY__e_E 0x08 // √ √ √ 84/101/104
#define KEY__f_F 0x09 // √ √ √ 84/101/104
#define KEY__g_G 0x0A // √ √ √ 84/101/104
#define KEY__h_H 0x0B // √ √ √ 84/101/104
#define KEY__i_I 0x0C // √ √ √ 84/101/104
#define KEY__j_J 0x0D // √ √ √ 84/101/104
#define KEY__k_K 0x0E // √ √ √ 84/101/104
#define KEY__l_L 0x0F // √ √ √ 84/101/104
#define KEY__m_M 0x10 // √ √ √ 84/101/104
#define KEY__n_N 0x11 // √ √ √ 84/101/104
#define KEY__o_O 0x12 // √ √ √ 84/101/104
#define KEY__p_P 0x13 // √ √ √ 84/101/104
#define KEY__q_Q 0x14 // √ √ √ 84/101/104
#define KEY__r_R 0x15 // √ √ √ 84/101/104
#define KEY__s_S 0x16 // √ √ √ 84/101/104
#define KEY__t_T 0x17 // √ √ √ 84/101/104
#define KEY__u_U 0x18 // √ √ √ 84/101/104
#define KEY__v_V 0x19 // √ √ √ 84/101/104
#define KEY__w_W 0x1A // √ √ √ 84/101/104
#define KEY__x_X 0x1B // √ √ √ 84/101/104
#define KEY__y_Y 0x1C // √ √ √ 84/101/104
#define KEY__z_Z 0x1D // √ √ √ 84/101/104
#define KEY__1_Exclamation 0x1E // √ √ √ 84/101/104
#define KEY__2_At 0x1F // √ √ √ 84/101/104
#define KEY__3_Pound 0x20 // √ √ √ 84/101/104
#define KEY__4_Dollar 0x21 // √ √ √ 84/101/104
#define KEY__5_Percent 0x22 // √ √ √ 84/101/104
#define KEY__6_Caret 0x23 // √ √ √ 84/101/104
#define KEY__7_Ampersand 0x24 // √ √ √ 84/101/104
#define KEY__8_Asterisk 0x25 // √ √ √ 84/101/104
#define KEY__9_LeftParenthesis 0x26 // √ √ √ 84/101/104
#define KEY__0_RightParenthesis 0x27 // √ √ √ 84/101/104
#define KEY__ReturnEnter 0x28 // √ √ √ 84/101/104
#define KEY__Escape 0x29 // √ √ √ 84/101/104
#define KEY__DeleteBackspace 0x2A // √ √ √ 84/101/104
#define KEY__Tab 0x2B // √ √ √ 84/101/104
#define KEY__Spacebar 0x2C // √ √ √ 84/101/104
#define KEY__Dash_Underscore 0x2D // √ √ √ 84/101/104
#define KEY__Equal_Plus 0x2E // √ √ √ 84/101/104
#define KEY__LeftBracket_LeftBrace 0x2F // √ √ √ 84/101/104
#define KEY__RightBracket_RightBrace 0x30 // √ √ √ 84/101/104
#define KEY__Backslash_Pipe 0x31 // √ √ √ 84/101/104
#define KEY__NonUS_Pound_Tilde 0x32 // √ √ √ 84/101/104
#define KEY__Semicolon_Colon 0x33 // √ √ √ 84/101/104
#define KEY__SingleQuote_DoubleQuote 0x34 // √ √ √ 84/101/104
#define KEY__GraveAccent_Tilde 0x35 // √ √ √ 84/101/104
#define KEY__Comma_LessThan 0x36 // √ √ √ 84/101/104
#define KEY__Period_GreaterThan 0x37 // √ √ √ 84/101/104
#define KEY__Slash_Question 0x38 // √ √ √ 84/101/104
#define KEY__CapsLock 0x39 // √ √ √ 84/101/104
#define KEY__F1 0x3A // √ √ √ 84/101/104
#define KEY__F2 0x3B // √ √ √ 84/101/104
#define KEY__F3 0x3C // √ √ √ 84/101/104
#define KEY__F4 0x3D // √ √ √ 84/101/104
#define KEY__F5 0x3E // √ √ √ 84/101/104
#define KEY__F6 0x3F // √ √ √ 84/101/104
#define KEY__F7 0x40 // √ √ √ 84/101/104
#define KEY__F8 0x41 // √ √ √ 84/101/104
#define KEY__F9 0x42 // √ √ √ 84/101/104
#define KEY__F10 0x43 // √ √ √ 84/101/104
#define KEY__F11 0x44 // √ √ √ 101/104
#define KEY__F12 0x45 // √ √ √ 101/104
#define KEY__PrintScreen 0x46 // √ √ √ 101/104
#define KEY__ScrollLock 0x47 // √ √ √ 84/101/104
#define KEY__Pause 0x48 // √ √ √ 101/104
#define KEY__Insert 0x49 // √ √ √ 101/104
#define KEY__Home 0x4A // √ √ √ 101/104
#define KEY__PageUp 0x4B // √ √ √ 101/104
#define KEY__DeleteForward 0x4C // √ √ √ 101/104
#define KEY__End 0x4D // √ √ √ 101/104
#define KEY__PageDown 0x4E // √ √ √ 101/104
#define KEY__RightArrow 0x4F // √ √ √ 101/104
#define KEY__LeftArrow 0x50 // √ √ √ 101/104
#define KEY__DownArrow 0x51 // √ √ √ 101/104
#define KEY__UpArrow 0x52 // √ √ √ 101/104
#define KEYBOARD__ErrorRollOver 0x01 // √ √ √ 84/101/104
#define KEYBOARD__POSTFail 0x02 // √ √ √ 84/101/104
#define KEYBOARD__ErrorUndefined 0x03 // √ √ √ 84/101/104
#define KEYBOARD__a_A 0x04 // √ √ √ 84/101/104
#define KEYBOARD__b_B 0x05 // √ √ √ 84/101/104
#define KEYBOARD__c_C 0x06 // √ √ √ 84/101/104
#define KEYBOARD__d_D 0x07 // √ √ √ 84/101/104
#define KEYBOARD__e_E 0x08 // √ √ √ 84/101/104
#define KEYBOARD__f_F 0x09 // √ √ √ 84/101/104
#define KEYBOARD__g_G 0x0A // √ √ √ 84/101/104
#define KEYBOARD__h_H 0x0B // √ √ √ 84/101/104
#define KEYBOARD__i_I 0x0C // √ √ √ 84/101/104
#define KEYBOARD__j_J 0x0D // √ √ √ 84/101/104
#define KEYBOARD__k_K 0x0E // √ √ √ 84/101/104
#define KEYBOARD__l_L 0x0F // √ √ √ 84/101/104
#define KEYBOARD__m_M 0x10 // √ √ √ 84/101/104
#define KEYBOARD__n_N 0x11 // √ √ √ 84/101/104
#define KEYBOARD__o_O 0x12 // √ √ √ 84/101/104
#define KEYBOARD__p_P 0x13 // √ √ √ 84/101/104
#define KEYBOARD__q_Q 0x14 // √ √ √ 84/101/104
#define KEYBOARD__r_R 0x15 // √ √ √ 84/101/104
#define KEYBOARD__s_S 0x16 // √ √ √ 84/101/104
#define KEYBOARD__t_T 0x17 // √ √ √ 84/101/104
#define KEYBOARD__u_U 0x18 // √ √ √ 84/101/104
#define KEYBOARD__v_V 0x19 // √ √ √ 84/101/104
#define KEYBOARD__w_W 0x1A // √ √ √ 84/101/104
#define KEYBOARD__x_X 0x1B // √ √ √ 84/101/104
#define KEYBOARD__y_Y 0x1C // √ √ √ 84/101/104
#define KEYBOARD__z_Z 0x1D // √ √ √ 84/101/104
#define KEYBOARD__1_Exclamation 0x1E // √ √ √ 84/101/104
#define KEYBOARD__2_At 0x1F // √ √ √ 84/101/104
#define KEYBOARD__3_Pound 0x20 // √ √ √ 84/101/104
#define KEYBOARD__4_Dollar 0x21 // √ √ √ 84/101/104
#define KEYBOARD__5_Percent 0x22 // √ √ √ 84/101/104
#define KEYBOARD__6_Caret 0x23 // √ √ √ 84/101/104
#define KEYBOARD__7_Ampersand 0x24 // √ √ √ 84/101/104
#define KEYBOARD__8_Asterisk 0x25 // √ √ √ 84/101/104
#define KEYBOARD__9_LeftParenthesis 0x26 // √ √ √ 84/101/104
#define KEYBOARD__0_RightParenthesis 0x27 // √ √ √ 84/101/104
#define KEYBOARD__ReturnEnter 0x28 // √ √ √ 84/101/104
#define KEYBOARD__Escape 0x29 // √ √ √ 84/101/104
#define KEYBOARD__DeleteBackspace 0x2A // √ √ √ 84/101/104
#define KEYBOARD__Tab 0x2B // √ √ √ 84/101/104
#define KEYBOARD__Spacebar 0x2C // √ √ √ 84/101/104
#define KEYBOARD__Dash_Underscore 0x2D // √ √ √ 84/101/104
#define KEYBOARD__Equal_Plus 0x2E // √ √ √ 84/101/104
#define KEYBOARD__LeftBracket_LeftBrace 0x2F // √ √ √ 84/101/104
#define KEYBOARD__RightBracket_RightBrace 0x30 // √ √ √ 84/101/104
#define KEYBOARD__Backslash_Pipe 0x31 // √ √ √ 84/101/104
#define KEYBOARD__NonUS_Pound_Tilde 0x32 // √ √ √ 84/101/104
#define KEYBOARD__Semicolon_Colon 0x33 // √ √ √ 84/101/104
#define KEYBOARD__SingleQuote_DoubleQuote 0x34 // √ √ √ 84/101/104
#define KEYBOARD__GraveAccent_Tilde 0x35 // √ √ √ 84/101/104
#define KEYBOARD__Comma_LessThan 0x36 // √ √ √ 84/101/104
#define KEYBOARD__Period_GreaterThan 0x37 // √ √ √ 84/101/104
#define KEYBOARD__Slash_Question 0x38 // √ √ √ 84/101/104
#define KEYBOARD__CapsLock 0x39 // √ √ √ 84/101/104
#define KEYBOARD__F1 0x3A // √ √ √ 84/101/104
#define KEYBOARD__F2 0x3B // √ √ √ 84/101/104
#define KEYBOARD__F3 0x3C // √ √ √ 84/101/104
#define KEYBOARD__F4 0x3D // √ √ √ 84/101/104
#define KEYBOARD__F5 0x3E // √ √ √ 84/101/104
#define KEYBOARD__F6 0x3F // √ √ √ 84/101/104
#define KEYBOARD__F7 0x40 // √ √ √ 84/101/104
#define KEYBOARD__F8 0x41 // √ √ √ 84/101/104
#define KEYBOARD__F9 0x42 // √ √ √ 84/101/104
#define KEYBOARD__F10 0x43 // √ √ √ 84/101/104
#define KEYBOARD__F11 0x44 // √ √ √ 101/104
#define KEYBOARD__F12 0x45 // √ √ √ 101/104
#define KEYBOARD__PrintScreen 0x46 // √ √ √ 101/104
#define KEYBOARD__ScrollLock 0x47 // √ √ √ 84/101/104
#define KEYBOARD__Pause 0x48 // √ √ √ 101/104
#define KEYBOARD__Insert 0x49 // √ √ √ 101/104
#define KEYBOARD__Home 0x4A // √ √ √ 101/104
#define KEYBOARD__PageUp 0x4B // √ √ √ 101/104
#define KEYBOARD__DeleteForward 0x4C // √ √ √ 101/104
#define KEYBOARD__End 0x4D // √ √ √ 101/104
#define KEYBOARD__PageDown 0x4E // √ √ √ 101/104
#define KEYBOARD__RightArrow 0x4F // √ √ √ 101/104
#define KEYBOARD__LeftArrow 0x50 // √ √ √ 101/104
#define KEYBOARD__DownArrow 0x51 // √ √ √ 101/104
#define KEYBOARD__UpArrow 0x52 // √ √ √ 101/104
#define KEYPAD__NumLock_Clear 0x53 // √ √ √ 101/104
#define KEYPAD__Slash 0x54 // √ √ √ 101/104
#define KEYPAD__Asterisk 0x55 // √ √ √ 84/101/104
#define KEYPAD__Minus 0x56 // √ √ √ 84/101/104
#define KEYPAD__Plus 0x57 // √ √ √ 84/101/104
#define KEYPAD__Enter 0x58 // √ √ √ 101/104
#define KEYPAD__1_End 0x59 // √ √ √ 84/101/104
#define KEYPAD__2_DownArrow 0x5A // √ √ √ 84/101/104
#define KEYPAD__3_PageDown 0x5B // √ √ √ 84/101/104
#define KEYPAD__4_LeftArrow 0x5C // √ √ √ 84/101/104
#define KEYPAD__5 0x5D // √ √ √ 84/101/104
#define KEYPAD__6_RightArrow 0x5E // √ √ √ 84/101/104
#define KEYPAD__7_Home 0x5F // √ √ √ 84/101/104
#define KEYPAD__8_UpArrow 0x60 // √ √ √ 84/101/104
#define KEYPAD__9_PageUp 0x61 // √ √ √ 84/101/104
#define KEYPAD__0_Insert 0x62 // √ √ √ 84/101/104
#define KEYPAD__Period_Delete 0x63 // √ √ √ 84/101/104
#define KEYPAD__NumLock_Clear 0x53 // √ √ √ 101/104
#define KEYPAD__Slash 0x54 // √ √ √ 101/104
#define KEYPAD__Asterisk 0x55 // √ √ √ 84/101/104
#define KEYPAD__Minus 0x56 // √ √ √ 84/101/104
#define KEYPAD__Plus 0x57 // √ √ √ 84/101/104
#define KEYPAD__Enter 0x58 // √ √ √ 101/104
#define KEYPAD__1_End 0x59 // √ √ √ 84/101/104
#define KEYPAD__2_DownArrow 0x5A // √ √ √ 84/101/104
#define KEYPAD__3_PageDown 0x5B // √ √ √ 84/101/104
#define KEYPAD__4_LeftArrow 0x5C // √ √ √ 84/101/104
#define KEYPAD__5 0x5D // √ √ √ 84/101/104
#define KEYPAD__6_RightArrow 0x5E // √ √ √ 84/101/104
#define KEYPAD__7_Home 0x5F // √ √ √ 84/101/104
#define KEYPAD__8_UpArrow 0x60 // √ √ √ 84/101/104
#define KEYPAD__9_PageUp 0x61 // √ √ √ 84/101/104
#define KEYPAD__0_Insert 0x62 // √ √ √ 84/101/104
#define KEYPAD__Period_Delete 0x63 // √ √ √ 84/101/104
#define KEY__NonUS_Backslash_Pipe 0x64 // √ √ √ 84/101/104
#define KEY__Application 0x65 // √ - √ 104
#define KEY__Power 0x66 // - √ √ -
#define KEYBOARD__NonUS_Backslash_Pipe 0x64 // √ √ √ 84/101/104
#define KEYBOARD__Application 0x65 // √ - √ 104
#define KEYBOARD__Power 0x66 // - √ √ -
#define KEYPAD__Equal 0x67 // - √ - -
#define KEYPAD__Equal 0x67 // - √ - -
#define KEY__F13 0x68 // - √ - -
#define KEY__F14 0x69 // - √ - -
#define KEY__F15 0x6A // - √ - -
#define KEY__F16 0x6B // - - - -
#define KEY__F17 0x6C // - - - -
#define KEY__F18 0x6D // - - - -
#define KEY__F19 0x6E // - - - -
#define KEY__F20 0x6F // - - - -
#define KEY__F21 0x70 // - - - -
#define KEY__F22 0x71 // - - - -
#define KEY__F23 0x72 // - - - -
#define KEY__F24 0x73 // - - - -
#define KEY__Execute 0x74 // - - √ -
#define KEY__Help 0x75 // - - √ -
#define KEY__Menu 0x76 // - - √ -
#define KEY__Select 0x77 // - - √ -
#define KEY__Stop 0x78 // - - √ -
#define KEY__Again 0x79 // - - √ -
#define KEY__Undo 0x7A // - - √ -
#define KEY__Cut 0x7B // - - √ -
#define KEY__Copy 0x7C // - - √ -
#define KEY__Paste 0x7D // - - √ -
#define KEY__Find 0x7E // - - √ -
#define KEY__Mute 0x7F // - - √ -
#define KEY__VolumeUp 0x80 // - - √ -
#define KEY__VolumeDown 0x81 // - - √ -
#define KEY__LockingCapsLock 0x82 // - - √ -
#define KEY__LockingNumLock 0x83 // - - √ -
#define KEY__LockingScrollLock 0x84 // - - √ -
#define KEYBOARD__F13 0x68 // - √ - -
#define KEYBOARD__F14 0x69 // - √ - -
#define KEYBOARD__F15 0x6A // - √ - -
#define KEYBOARD__F16 0x6B // - - - -
#define KEYBOARD__F17 0x6C // - - - -
#define KEYBOARD__F18 0x6D // - - - -
#define KEYBOARD__F19 0x6E // - - - -
#define KEYBOARD__F20 0x6F // - - - -
#define KEYBOARD__F21 0x70 // - - - -
#define KEYBOARD__F22 0x71 // - - - -
#define KEYBOARD__F23 0x72 // - - - -
#define KEYBOARD__F24 0x73 // - - - -
#define KEYBOARD__Execute 0x74 // - - √ -
#define KEYBOARD__Help 0x75 // - - √ -
#define KEYBOARD__Menu 0x76 // - - √ -
#define KEYBOARD__Select 0x77 // - - √ -
#define KEYBOARD__Stop 0x78 // - - √ -
#define KEYBOARD__Again 0x79 // - - √ -
#define KEYBOARD__Undo 0x7A // - - √ -
#define KEYBOARD__Cut 0x7B // - - √ -
#define KEYBOARD__Copy 0x7C // - - √ -
#define KEYBOARD__Paste 0x7D // - - √ -
#define KEYBOARD__Find 0x7E // - - √ -
#define KEYBOARD__Mute 0x7F // - - √ -
#define KEYBOARD__VolumeUp 0x80 // - - √ -
#define KEYBOARD__VolumeDown 0x81 // - - √ -
#define KEYBOARD__LockingCapsLock 0x82 // - - √ -
#define KEYBOARD__LockingNumLock 0x83 // - - √ -
#define KEYBOARD__LockingScrollLock 0x84 // - - √ -
#define KEYPAD__Comma 0x85 // - - - -
#define KEYPAD__EqualSign 0x86 // - - - -
#define KEYPAD__Comma 0x85 // - - - -
#define KEYPAD__EqualSign 0x86 // - - - -
#define KEY__International1 0x87 // - - - -
#define KEY__International2 0x88 // - - - -
#define KEY__International3 0x89 // - - - -
#define KEY__International4 0x8A // - - - -
#define KEY__International5 0x8B // - - - -
#define KEY__International6 0x8C // - - - -
#define KEY__International7 0x8D // - - - -
#define KEY__International8 0x8E // - - - -
#define KEY__International9 0x8F // - - - -
#define KEY__LANG1 0x90 // - - - -
#define KEY__LANG2 0x91 // - - - -
#define KEY__LANG3 0x92 // - - - -
#define KEY__LANG4 0x93 // - - - -
#define KEY__LANG5 0x94 // - - - -
#define KEY__LANG6 0x95 // - - - -
#define KEY__LANG7 0x96 // - - - -
#define KEY__LANG8 0x97 // - - - -
#define KEY__LANG9 0x98 // - - - -
#define KEY__AlternateErase 0x99 // - - - -
#define KEY__SysReq_Attention 0x9A // - - - -
#define KEY__Cancel 0x9B // - - - -
#define KEY__Clear 0x9C // - - - -
#define KEY__Prior 0x9D // - - - -
#define KEY__Return 0x9E // - - - -
#define KEY__Separator 0x9F // - - - -
#define KEY__Out 0xA0 // - - - -
#define KEY__Oper 0xA1 // - - - -
#define KEY__Clear_Again 0xA2 // - - - -
#define KEY__CrSel_Props 0xA3 // - - - -
#define KEY__ExSel 0xA4 // - - - -
#define KEYBOARD__International1 0x87 // - - - -
#define KEYBOARD__International2 0x88 // - - - -
#define KEYBOARD__International3 0x89 // - - - -
#define KEYBOARD__International4 0x8A // - - - -
#define KEYBOARD__International5 0x8B // - - - -
#define KEYBOARD__International6 0x8C // - - - -
#define KEYBOARD__International7 0x8D // - - - -
#define KEYBOARD__International8 0x8E // - - - -
#define KEYBOARD__International9 0x8F // - - - -
#define KEYBOARD__LANG1 0x90 // - - - -
#define KEYBOARD__LANG2 0x91 // - - - -
#define KEYBOARD__LANG3 0x92 // - - - -
#define KEYBOARD__LANG4 0x93 // - - - -
#define KEYBOARD__LANG5 0x94 // - - - -
#define KEYBOARD__LANG6 0x95 // - - - -
#define KEYBOARD__LANG7 0x96 // - - - -
#define KEYBOARD__LANG8 0x97 // - - - -
#define KEYBOARD__LANG9 0x98 // - - - -
#define KEYBOARD__AlternateErase 0x99 // - - - -
#define KEYBOARD__SysReq_Attention 0x9A // - - - -
#define KEYBOARD__Cancel 0x9B // - - - -
#define KEYBOARD__Clear 0x9C // - - - -
#define KEYBOARD__Prior 0x9D // - - - -
#define KEYBOARD__Return 0x9E // - - - -
#define KEYBOARD__Separator 0x9F // - - - -
#define KEYBOARD__Out 0xA0 // - - - -
#define KEYBOARD__Oper 0xA1 // - - - -
#define KEYBOARD__Clear_Again 0xA2 // - - - -
#define KEYBOARD__CrSel_Props 0xA3 // - - - -
#define KEYBOARD__ExSel 0xA4 // - - - -
// (Reserved) 0xA5..0xAF // - - - -
// (Reserved) 0xA5..0xAF // - - - -
#define KEYPAD__00 0xB0 // - - - -
#define KEYPAD__000 0xB1 // - - - -
#define KEYPAD__00 0xB0 // - - - -
#define KEYPAD__000 0xB1 // - - - -
#define KEY__ThousandsSeparator 0xB2 // - - - -
#define KEY__DecimalSeparator 0xB3 // - - - -
#define KEY__CurrencyUnit 0xB4 // - - - -
#define KEY__CurrencySubunit 0xB5 // - - - -
#define KEYBOARD__ThousandsSeparator 0xB2 // - - - -
#define KEYBOARD__DecimalSeparator 0xB3 // - - - -
#define KEYBOARD__CurrencyUnit 0xB4 // - - - -
#define KEYBOARD__CurrencySubunit 0xB5 // - - - -
#define KEYPAD__LeftParenthesis 0xB6 // - - - -
#define KEYPAD__RightParenthesis 0xB7 // - - - -
#define KEYPAD__LeftBrace 0xB8 // - - - -
#define KEYPAD__RightBrace 0xB9 // - - - -
#define KEYPAD__LeftParenthesis 0xB6 // - - - -
#define KEYPAD__RightParenthesis 0xB7 // - - - -
#define KEYPAD__LeftBrace 0xB8 // - - - -
#define KEYPAD__RightBrace 0xB9 // - - - -
#define KEYPAD__Tab 0xBA // - - - -
#define KEYPAD__Backspace 0xBB // - - - -
#define KEYPAD__A 0xBC // - - - -
#define KEYPAD__B 0xBD // - - - -
#define KEYPAD__C 0xBE // - - - -
#define KEYPAD__D 0xBF // - - - -
#define KEYPAD__E 0xC0 // - - - -
#define KEYPAD__F 0xC1 // - - - -
#define KEYPAD__XOR 0xC2 // - - - -
#define KEYPAD__Caret 0xC3 // - - - -
#define KEYPAD__Percent 0xC4 // - - - -
#define KEYPAD__LessThan 0xC5 // - - - -
#define KEYPAD__GreaterThan 0xC6 // - - - -
#define KEYPAD__Ampersand 0xC7 // - - - -
#define KEYPAD__AmpersandAmpersand 0xC8 // - - - -
#define KEYPAD__Pipe 0xC9 // - - - -
#define KEYPAD__PipePipe 0xCA // - - - -
#define KEYPAD__Colon 0xCB // - - - -
#define KEYPAD__Pound 0xCC // - - - -
#define KEYPAD__Space 0xCD // - - - -
#define KEYPAD__At 0xCE // - - - -
#define KEYPAD__Exclamation 0xCF // - - - -
#define KEYPAD__MemoryStore 0xD0 // - - - -
#define KEYPAD__MemoryRecall 0xD1 // - - - -
#define KEYPAD__MemoryClear 0xD2 // - - - -
#define KEYPAD__MemoryAdd 0xD3 // - - - -
#define KEYPAD__MemorySubtract 0xD4 // - - - -
#define KEYPAD__MemoryMultiply 0xD5 // - - - -
#define KEYPAD__MemoryDivide 0xD6 // - - - -
#define KEYPAD__PlusMinus 0xD7 // - - - -
#define KEYPAD__Clear 0xD8 // - - - -
#define KEYPAD__ClearEntry 0xD9 // - - - -
#define KEYPAD__Binary 0xDA // - - - -
#define KEYPAD__Octal 0xDB // - - - -
#define KEYPAD__Decimal 0xDC // - - - -
#define KEYPAD__Hexadecimal 0xDD // - - - -
#define KEYPAD__Tab 0xBA // - - - -
#define KEYPAD__Backspace 0xBB // - - - -
#define KEYPAD__A 0xBC // - - - -
#define KEYPAD__B 0xBD // - - - -
#define KEYPAD__C 0xBE // - - - -
#define KEYPAD__D 0xBF // - - - -
#define KEYPAD__E 0xC0 // - - - -
#define KEYPAD__F 0xC1 // - - - -
#define KEYPAD__XOR 0xC2 // - - - -
#define KEYPAD__Caret 0xC3 // - - - -
#define KEYPAD__Percent 0xC4 // - - - -
#define KEYPAD__LessThan 0xC5 // - - - -
#define KEYPAD__GreaterThan 0xC6 // - - - -
#define KEYPAD__Ampersand 0xC7 // - - - -
#define KEYPAD__AmpersandAmpersand 0xC8 // - - - -
#define KEYPAD__Pipe 0xC9 // - - - -
#define KEYPAD__PipePipe 0xCA // - - - -
#define KEYPAD__Colon 0xCB // - - - -
#define KEYPAD__Pound 0xCC // - - - -
#define KEYPAD__Space 0xCD // - - - -
#define KEYPAD__At 0xCE // - - - -
#define KEYPAD__Exclamation 0xCF // - - - -
#define KEYPAD__MemoryStore 0xD0 // - - - -
#define KEYPAD__MemoryRecall 0xD1 // - - - -
#define KEYPAD__MemoryClear 0xD2 // - - - -
#define KEYPAD__MemoryAdd 0xD3 // - - - -
#define KEYPAD__MemorySubtract 0xD4 // - - - -
#define KEYPAD__MemoryMultiply 0xD5 // - - - -
#define KEYPAD__MemoryDivide 0xD6 // - - - -
#define KEYPAD__PlusMinus 0xD7 // - - - -
#define KEYPAD__Clear 0xD8 // - - - -
#define KEYPAD__ClearEntry 0xD9 // - - - -
#define KEYPAD__Binary 0xDA // - - - -
#define KEYPAD__Octal 0xDB // - - - -
#define KEYPAD__Decimal 0xDC // - - - -
#define KEYPAD__Hexadecimal 0xDD // - - - -
// (Reserved) 0xDE..0xDF // - - - -
// (Reserved) 0xDE..0xDF // - - - -
#define KEY__LeftControl 0xE0 // √ √ √ 84/101/104
#define KEY__LeftShift 0xE1 // √ √ √ 84/101/104
#define KEY__LeftAlt 0xE2 // √ √ √ 84/101/104
#define KEY__LeftGUI 0xE3 // √ √ √ 104
#define KEY__RightControl 0xE4 // √ √ √ 101/104
#define KEY__RightShift 0xE5 // √ √ √ 84/101/104
#define KEY__RightAlt 0xE6 // √ √ √ 101/104
#define KEY__RightGUI 0xE7 // √ √ √ 104
#define KEYBOARD__LeftControl 0xE0 // √ √ √ 84/101/104
#define KEYBOARD__LeftShift 0xE1 // √ √ √ 84/101/104
#define KEYBOARD__LeftAlt 0xE2 // √ √ √ 84/101/104
#define KEYBOARD__LeftGUI 0xE3 // √ √ √ 104
#define KEYBOARD__RightControl 0xE4 // √ √ √ 101/104
#define KEYBOARD__RightShift 0xE5 // √ √ √ 84/101/104
#define KEYBOARD__RightAlt 0xE6 // √ √ √ 101/104
#define KEYBOARD__RightGUI 0xE7 // √ √ √ 104
// (Reserved) 0xE8..0xFFFF // - - - -
// (Reserved) 0xE8..0xFFFF // - - - -
// ----------------------------------------------------------------------------