VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions
vsf_input_keyboard.h File Reference
#include "../vsf_input_cfg.h"
#include "../vsf_input_get_type.h"

Go to the source code of this file.

Data Structures

struct  vk_keyboard_evt_t
 

Macros

#define vsf_input_keyboard_set(__event, __keycode, __is_down, __keymod)
 
#define vsf_input_keyboard_get_keymod(__event)    ((uint16_t)(((__event)->id >> 11) & 0xFFF))
 
#define vsf_input_keyboard_get_keycode(__event)    ((uint16_t)(((__event)->id >> 0) & 0x3FF))
 
#define vsf_input_keyboard_is_down(__event)    (((__event)->id >> 10) & 0x01)
 
#define vsf_input_keyboard_is_kpevt(__event)
 
#define vsf_input_keyboard_is_kbevt(__event)    (!vsf_input_keyboard_is_kpevt(__event))
 
#define vsf_input_keyboard_get_scancode_from_keycode(__keycode, __scancode_ptr)    __vsf_input_keyboard_get_scancode((__keycode) & 0xFF, (__scancode_ptr))
 
#define vsf_input_keyboard_get_scancode(__event, __scancode_ptr)
 

Typedefs

typedef struct vk_keyboard_evt_t vk_keyboard_evt_t
 

Enumerations

enum  { VSF_INPUT_TYPE_KEYBOARD = VSF_INPUT_USER_TYPE }
 
enum  {
  VSF_KB_UNKNOWN = 0 ,
  VSF_KB_a = 4 ,
  VSF_KB_b = 5 ,
  VSF_KB_c = 6 ,
  VSF_KB_d = 7 ,
  VSF_KB_e = 8 ,
  VSF_KB_f = 9 ,
  VSF_KB_g = 10 ,
  VSF_KB_h = 11 ,
  VSF_KB_i = 12 ,
  VSF_KB_j = 13 ,
  VSF_KB_k = 14 ,
  VSF_KB_l = 15 ,
  VSF_KB_m = 16 ,
  VSF_KB_n = 17 ,
  VSF_KB_o = 18 ,
  VSF_KB_p = 19 ,
  VSF_KB_q = 20 ,
  VSF_KB_r = 21 ,
  VSF_KB_s = 22 ,
  VSF_KB_t = 23 ,
  VSF_KB_u = 24 ,
  VSF_KB_v = 25 ,
  VSF_KB_w = 26 ,
  VSF_KB_x = 27 ,
  VSF_KB_y = 28 ,
  VSF_KB_z = 29 ,
  VSF_KB_1 = 30 ,
  VSF_KB_2 = 31 ,
  VSF_KB_3 = 32 ,
  VSF_KB_4 = 33 ,
  VSF_KB_5 = 34 ,
  VSF_KB_6 = 35 ,
  VSF_KB_7 = 36 ,
  VSF_KB_8 = 37 ,
  VSF_KB_9 = 38 ,
  VSF_KB_0 = 39 ,
  VSF_KB_ENTER = 40 ,
  VSF_KB_RETURN = 40 ,
  VSF_KB_ESCAPE = 41 ,
  VSF_KB_BACKSPACE = 42 ,
  VSF_KB_TAB = 43 ,
  VSF_KB_SPACE = 44 ,
  VSF_KB_MINUS = 45 ,
  VSF_KB_EQUAL = 46 ,
  VSF_KB_EQUALS = 46 ,
  VSF_KB_LEFT_BRACKET = 47 ,
  VSF_KB_LEFTBRACKET = 47 ,
  VSF_KB_RIGHT_BRACKET = 48 ,
  VSF_KB_RIGHTBRACKET = 48 ,
  VSF_KB_BACKSLASH = 49 ,
  VSF_KB_SEMICOLON = 51 ,
  VSF_KB_APOSTROPHE = 52 ,
  VSF_KB_SINGLE_QUOTE = VSF_KB_APOSTROPHE ,
  VSF_KB_GRAVE = 53 ,
  VSF_KB_BACKQUOTE = 53 ,
  VSF_KB_COMMA = 54 ,
  VSF_KB_DOT = 55 ,
  VSF_KB_PERIOD = 55 ,
  VSF_KB_SLASH = 56 ,
  VSF_KB_CAPSLOCK = 57 ,
  VSF_KB_F1 = 58 ,
  VSF_KB_F2 = 59 ,
  VSF_KB_F3 = 60 ,
  VSF_KB_F4 = 61 ,
  VSF_KB_F5 = 62 ,
  VSF_KB_F6 = 63 ,
  VSF_KB_F7 = 64 ,
  VSF_KB_F8 = 65 ,
  VSF_KB_F9 = 66 ,
  VSF_KB_F10 = 67 ,
  VSF_KB_F11 = 68 ,
  VSF_KB_F12 = 69 ,
  VSF_KB_PRINT_SCREEN = 70 ,
  VSF_KB_SCROLL_LOCK = 71 ,
  VSF_KB_SCROLLLOCK = 71 ,
  VSF_KB_PAUSE = 72 ,
  VSF_KB_INSERT = 73 ,
  VSF_KB_HOME = 74 ,
  VSF_KB_PAGE_UP = 75 ,
  VSF_KB_PAGEUP = 75 ,
  VSF_KB_DELETE = 76 ,
  VSF_KB_END = 77 ,
  VSF_KB_PAGE_DOWN = 78 ,
  VSF_KB_PAGEDOWN = 78 ,
  VSF_KB_RIGHT = 79 ,
  VSF_KB_LEFT = 80 ,
  VSF_KB_DOWN = 81 ,
  VSF_KB_UP = 82 ,
  VSF_KP_NUMLOCK = 83 ,
  VSF_KP_DIVIDE = 84 ,
  VSF_KP_ASTERISK = 85 ,
  VSF_KP_MULTIPLY = VSF_KP_ASTERISK ,
  VSF_KP_MINUS = 86 ,
  VSF_KP_PLUS = 87 ,
  VSF_KP_ENTER = 88 ,
  VSF_KP_1 = 89 ,
  VSF_KP_2 = 90 ,
  VSF_KP_3 = 91 ,
  VSF_KP_4 = 92 ,
  VSF_KP_5 = 93 ,
  VSF_KP_6 = 94 ,
  VSF_KP_7 = 95 ,
  VSF_KP_8 = 96 ,
  VSF_KP_9 = 97 ,
  VSF_KP_0 = 98 ,
  VSF_KP_DOT = 99 ,
  VSF_KP_PERIOD = 99 ,
  VSF_KB_APPLICATION = 101 ,
  VSF_KB_POWER = 102 ,
  VSF_KP_EQUAL = 103 ,
  VSF_KP_EQUALS = 103 ,
  VSF_KB_F13 = 104 ,
  VSF_KB_F14 = 105 ,
  VSF_KB_F15 = 106 ,
  VSF_KB_F16 = 107 ,
  VSF_KB_F17 = 108 ,
  VSF_KB_F18 = 109 ,
  VSF_KB_F19 = 110 ,
  VSF_KB_F20 = 111 ,
  VSF_KB_F21 = 112 ,
  VSF_KB_F22 = 113 ,
  VSF_KB_F23 = 114 ,
  VSF_KB_F24 = 115 ,
  VSF_KB_EXECUTE = 116 ,
  VSF_KB_HELP = 117 ,
  VSF_KB_MENU = 118 ,
  VSF_KB_SELECT = 119 ,
  VSF_KB_STOP = 120 ,
  VSF_KB_AGAIN = 121 ,
  VSF_KB_UNDO = 122 ,
  VSF_KB_CUT = 123 ,
  VSF_KB_COPY = 124 ,
  VSF_KB_PASTE = 125 ,
  VSF_KB_FIND = 126 ,
  VSF_KB_MUTE = 127 ,
  VSF_KB_VOLUMEUP = 128 ,
  VSF_KB_VOLUMEDOWN = 129 ,
  VSF_KP_COMMA = 133 ,
  VSF_KB_MODIFIER_START = 224 ,
  VSF_KB_LCTRL = 224 ,
  VSF_KB_LSHIFT = 225 ,
  VSF_KB_LALT = 226 ,
  VSF_KB_LGUI = 227 ,
  VSF_KB_LMETA = VSF_KB_LGUI ,
  VSF_KB_RCTRL = 228 ,
  VSF_KB_RSHIFT = 229 ,
  VSF_KB_RALT = 230 ,
  VSF_KB_RGUI = 231 ,
  VSF_KB_RMETA = VSF_KB_RGUI ,
  VSF_KB_MODIFIER_END = 231 ,
  VSF_KB_MODIFIER_NUM = 8 ,
  VSF_KB_MODE = 257 ,
  VSF_KB_EJECT = 281 ,
  VSF_KB_SLEEP = 282 ,
  VSF_KB_USER = 283 ,
  VSF_KB_EXT = 0x0200 ,
  VSF_KB_EXCLAM = VSF_KB_1 | VSF_KB_EXT ,
  VSF_KB_AT = VSF_KB_2 | VSF_KB_EXT ,
  VSF_KB_POUND = VSF_KB_3 | VSF_KB_EXT ,
  VSF_KB_DOLLAR = VSF_KB_4 | VSF_KB_EXT ,
  VSF_KB_PERCENT = VSF_KB_5 | VSF_KB_EXT ,
  VSF_KB_CARET = VSF_KB_6 | VSF_KB_EXT ,
  VSF_KB_AMPERSAND = VSF_KB_7 | VSF_KB_EXT ,
  VSF_KB_ASTERISK = VSF_KB_8 | VSF_KB_EXT ,
  VSF_KB_LEFT_PAREN = VSF_KB_9 | VSF_KB_EXT ,
  VSF_KB_RIGHT_PAREN = VSF_KB_0 | VSF_KB_EXT ,
  VSF_KB_UNDERSCORE = VSF_KB_MINUS | VSF_KB_EXT ,
  VSF_KB_PLUS = VSF_KB_EQUAL | VSF_KB_EXT ,
  VSF_KB_LEFT_BRACE = VSF_KB_LEFT_BRACKET | VSF_KB_EXT ,
  VSF_KB_RIGHT_BRACE = VSF_KB_RIGHT_BRACKET | VSF_KB_EXT ,
  VSF_KB_BAR = VSF_KB_BACKSLASH | VSF_KB_EXT ,
  VSF_KB_COLON = VSF_KB_SEMICOLON | VSF_KB_EXT ,
  VSF_KB_DOUBLE_QUOTE = VSF_KB_SINGLE_QUOTE | VSF_KB_EXT ,
  VSF_KB_TIDE = VSF_KB_GRAVE | VSF_KB_EXT ,
  VSF_KB_LESS = VSF_KB_COMMA | VSF_KB_EXT ,
  VSF_KB_GREATER = VSF_KB_DOT | VSF_KB_EXT ,
  VSF_KB_QUESTION = VSF_KB_SLASH | VSF_KB_EXT ,
  VSF_KB_A = VSF_KB_a | VSF_KB_EXT ,
  VSF_KB_B = VSF_KB_b | VSF_KB_EXT ,
  VSF_KB_C = VSF_KB_c | VSF_KB_EXT ,
  VSF_KB_D = VSF_KB_d | VSF_KB_EXT ,
  VSF_KB_E = VSF_KB_e | VSF_KB_EXT ,
  VSF_KB_F = VSF_KB_f | VSF_KB_EXT ,
  VSF_KB_G = VSF_KB_g | VSF_KB_EXT ,
  VSF_KB_H = VSF_KB_h | VSF_KB_EXT ,
  VSF_KB_I = VSF_KB_i | VSF_KB_EXT ,
  VSF_KB_J = VSF_KB_j | VSF_KB_EXT ,
  VSF_KB_K = VSF_KB_k | VSF_KB_EXT ,
  VSF_KB_L = VSF_KB_l | VSF_KB_EXT ,
  VSF_KB_M = VSF_KB_m | VSF_KB_EXT ,
  VSF_KB_N = VSF_KB_n | VSF_KB_EXT ,
  VSF_KB_O = VSF_KB_o | VSF_KB_EXT ,
  VSF_KB_P = VSF_KB_p | VSF_KB_EXT ,
  VSF_KB_Q = VSF_KB_q | VSF_KB_EXT ,
  VSF_KB_R = VSF_KB_r | VSF_KB_EXT ,
  VSF_KB_S = VSF_KB_s | VSF_KB_EXT ,
  VSF_KB_T = VSF_KB_t | VSF_KB_EXT ,
  VSF_KB_U = VSF_KB_u | VSF_KB_EXT ,
  VSF_KB_V = VSF_KB_v | VSF_KB_EXT ,
  VSF_KB_W = VSF_KB_w | VSF_KB_EXT ,
  VSF_KB_X = VSF_KB_x | VSF_KB_EXT ,
  VSF_KB_Y = VSF_KB_y | VSF_KB_EXT ,
  VSF_KB_Z = VSF_KB_z | VSF_KB_EXT
}
 
enum  {
  VSF_KM_NONE = 0x00 ,
  VSF_KM_LEFT_SHIFT = 0x01 ,
  VSF_KM_LSHIFT = 0x01 ,
  VSF_KM_LEFT_CTRL = 0x02 ,
  VSF_KM_LCTRL = 0x02 ,
  VSF_KM_LEFT_ALT = 0x04 ,
  VSF_KM_LALT = 0x04 ,
  VSF_KM_LEFT_GUI = 0x08 ,
  VSF_KM_LGUI = 0x08 ,
  VSF_KM_RIGHT_SHIFT = 0x10 ,
  VSF_KM_RSHIFT = 0x10 ,
  VSF_KM_RIGHT_CTRL = 0x20 ,
  VSF_KM_RCTRL = 0x20 ,
  VSF_KM_RIGHT_ALT = 0x40 ,
  VSF_KM_RALT = 0x40 ,
  VSF_KM_RIGHT_GUI = 0x80 ,
  VSF_KM_RGUI = 0x80 ,
  VSF_KM_NUMLOCK = 0x100 ,
  VSF_KM_NUM = 0x100 ,
  VSF_KM_CAPSLOCK = 0x200 ,
  VSF_KM_CAPS = 0x200 ,
  VSF_KM_SCROLLLOCK = 0x400 ,
  VSF_KM_SCROLL = 0x400 ,
  VSF_KM_FN = 0x800 ,
  VSF_KM_SHIFT = VSF_KM_LEFT_SHIFT | VSF_KM_RIGHT_SHIFT ,
  VSF_KM_CTRL = VSF_KM_LEFT_CTRL | VSF_KM_RIGHT_CTRL ,
  VSF_KM_ALT = VSF_KM_LEFT_ALT | VSF_KM_RIGHT_ALT ,
  VSF_KM_GUI = VSF_KM_LEFT_GUI | VSF_KM_RIGHT_GUI
}
 

Functions

uint_fast8_t __vsf_input_keyboard_get_scancode (uint8_t keycode, uint8_t scancode[6])
 

Macro Definition Documentation

◆ vsf_input_keyboard_set

#define vsf_input_keyboard_set (   __event,
  __keycode,
  __is_down,
  __keymod 
)
Value:
do { \
(__event)->id = (((__keycode) << 0) | ((__is_down) << 10) | ((__keymod) << 11));\
} while (0)

◆ vsf_input_keyboard_get_keymod

#define vsf_input_keyboard_get_keymod (   __event)     ((uint16_t)(((__event)->id >> 11) & 0xFFF))

◆ vsf_input_keyboard_get_keycode

#define vsf_input_keyboard_get_keycode (   __event)     ((uint16_t)(((__event)->id >> 0) & 0x3FF))

◆ vsf_input_keyboard_is_down

#define vsf_input_keyboard_is_down (   __event)     (((__event)->id >> 10) & 0x01)

◆ vsf_input_keyboard_is_kpevt

#define vsf_input_keyboard_is_kpevt (   __event)
Value:
#define vsf_input_keyboard_get_keycode(__event)
Definition vsf_input_keyboard.h:40
@ VSF_KB_APPLICATION
Definition vsf_input_keyboard.h:180
@ VSF_KP_EQUALS
Definition vsf_input_keyboard.h:183
@ VSF_KB_POWER
Definition vsf_input_keyboard.h:181
@ VSF_KP_NUMLOCK
Definition vsf_input_keyboard.h:161

◆ vsf_input_keyboard_is_kbevt

#define vsf_input_keyboard_is_kbevt (   __event)     (!vsf_input_keyboard_is_kpevt(__event))

◆ vsf_input_keyboard_get_scancode_from_keycode

#define vsf_input_keyboard_get_scancode_from_keycode (   __keycode,
  __scancode_ptr 
)     __vsf_input_keyboard_get_scancode((__keycode) & 0xFF, (__scancode_ptr))

◆ vsf_input_keyboard_get_scancode

#define vsf_input_keyboard_get_scancode (   __event,
  __scancode_ptr 
)
Value:
vsf_input_keyboard_get_keycode(__event) & 0xFF, (__scancode_ptr))
uint_fast8_t __vsf_input_keyboard_get_scancode(uint8_t keycode, uint8_t scancode[6])
Definition vsf_input_keyboard.c:153

Typedef Documentation

◆ vk_keyboard_evt_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
VSF_INPUT_TYPE_KEYBOARD 

◆ anonymous enum

anonymous enum
Enumerator
VSF_KB_UNKNOWN 
VSF_KB_a 
VSF_KB_b 
VSF_KB_c 
VSF_KB_d 
VSF_KB_e 
VSF_KB_f 
VSF_KB_g 
VSF_KB_h 
VSF_KB_i 
VSF_KB_j 
VSF_KB_k 
VSF_KB_l 
VSF_KB_m 
VSF_KB_n 
VSF_KB_o 
VSF_KB_p 
VSF_KB_q 
VSF_KB_r 
VSF_KB_s 
VSF_KB_t 
VSF_KB_u 
VSF_KB_v 
VSF_KB_w 
VSF_KB_x 
VSF_KB_y 
VSF_KB_z 
VSF_KB_1 
VSF_KB_2 
VSF_KB_3 
VSF_KB_4 
VSF_KB_5 
VSF_KB_6 
VSF_KB_7 
VSF_KB_8 
VSF_KB_9 
VSF_KB_0 
VSF_KB_ENTER 
VSF_KB_RETURN 
VSF_KB_ESCAPE 
VSF_KB_BACKSPACE 
VSF_KB_TAB 
VSF_KB_SPACE 
VSF_KB_MINUS 
VSF_KB_EQUAL 
VSF_KB_EQUALS 
VSF_KB_LEFT_BRACKET 
VSF_KB_LEFTBRACKET 
VSF_KB_RIGHT_BRACKET 
VSF_KB_RIGHTBRACKET 
VSF_KB_BACKSLASH 
VSF_KB_SEMICOLON 
VSF_KB_APOSTROPHE 
VSF_KB_SINGLE_QUOTE 
VSF_KB_GRAVE 
VSF_KB_BACKQUOTE 
VSF_KB_COMMA 
VSF_KB_DOT 
VSF_KB_PERIOD 
VSF_KB_SLASH 
VSF_KB_CAPSLOCK 
VSF_KB_F1 
VSF_KB_F2 
VSF_KB_F3 
VSF_KB_F4 
VSF_KB_F5 
VSF_KB_F6 
VSF_KB_F7 
VSF_KB_F8 
VSF_KB_F9 
VSF_KB_F10 
VSF_KB_F11 
VSF_KB_F12 
VSF_KB_PRINT_SCREEN 
VSF_KB_SCROLL_LOCK 
VSF_KB_SCROLLLOCK 
VSF_KB_PAUSE 
VSF_KB_INSERT 
VSF_KB_HOME 
VSF_KB_PAGE_UP 
VSF_KB_PAGEUP 
VSF_KB_DELETE 
VSF_KB_END 
VSF_KB_PAGE_DOWN 
VSF_KB_PAGEDOWN 
VSF_KB_RIGHT 
VSF_KB_LEFT 
VSF_KB_DOWN 
VSF_KB_UP 
VSF_KP_NUMLOCK 
VSF_KP_DIVIDE 
VSF_KP_ASTERISK 
VSF_KP_MULTIPLY 
VSF_KP_MINUS 
VSF_KP_PLUS 
VSF_KP_ENTER 
VSF_KP_1 
VSF_KP_2 
VSF_KP_3 
VSF_KP_4 
VSF_KP_5 
VSF_KP_6 
VSF_KP_7 
VSF_KP_8 
VSF_KP_9 
VSF_KP_0 
VSF_KP_DOT 
VSF_KP_PERIOD 
VSF_KB_APPLICATION 
VSF_KB_POWER 
VSF_KP_EQUAL 
VSF_KP_EQUALS 
VSF_KB_F13 
VSF_KB_F14 
VSF_KB_F15 
VSF_KB_F16 
VSF_KB_F17 
VSF_KB_F18 
VSF_KB_F19 
VSF_KB_F20 
VSF_KB_F21 
VSF_KB_F22 
VSF_KB_F23 
VSF_KB_F24 
VSF_KB_EXECUTE 
VSF_KB_HELP 
VSF_KB_MENU 
VSF_KB_SELECT 
VSF_KB_STOP 
VSF_KB_AGAIN 
VSF_KB_UNDO 
VSF_KB_CUT 
VSF_KB_COPY 
VSF_KB_PASTE 
VSF_KB_FIND 
VSF_KB_MUTE 
VSF_KB_VOLUMEUP 
VSF_KB_VOLUMEDOWN 
VSF_KP_COMMA 
VSF_KB_MODIFIER_START 
VSF_KB_LCTRL 
VSF_KB_LSHIFT 
VSF_KB_LALT 
VSF_KB_LGUI 
VSF_KB_LMETA 
VSF_KB_RCTRL 
VSF_KB_RSHIFT 
VSF_KB_RALT 
VSF_KB_RGUI 
VSF_KB_RMETA 
VSF_KB_MODIFIER_END 
VSF_KB_MODIFIER_NUM 
VSF_KB_MODE 
VSF_KB_EJECT 
VSF_KB_SLEEP 
VSF_KB_USER 
VSF_KB_EXT 
VSF_KB_EXCLAM 
VSF_KB_AT 
VSF_KB_POUND 
VSF_KB_DOLLAR 
VSF_KB_PERCENT 
VSF_KB_CARET 
VSF_KB_AMPERSAND 
VSF_KB_ASTERISK 
VSF_KB_LEFT_PAREN 
VSF_KB_RIGHT_PAREN 
VSF_KB_UNDERSCORE 
VSF_KB_PLUS 
VSF_KB_LEFT_BRACE 
VSF_KB_RIGHT_BRACE 
VSF_KB_BAR 
VSF_KB_COLON 
VSF_KB_DOUBLE_QUOTE 
VSF_KB_TIDE 
VSF_KB_LESS 
VSF_KB_GREATER 
VSF_KB_QUESTION 
VSF_KB_A 
VSF_KB_B 
VSF_KB_C 
VSF_KB_D 
VSF_KB_E 
VSF_KB_F 
VSF_KB_G 
VSF_KB_H 
VSF_KB_I 
VSF_KB_J 
VSF_KB_K 
VSF_KB_L 
VSF_KB_M 
VSF_KB_N 
VSF_KB_O 
VSF_KB_P 
VSF_KB_Q 
VSF_KB_R 
VSF_KB_S 
VSF_KB_T 
VSF_KB_U 
VSF_KB_V 
VSF_KB_W 
VSF_KB_X 
VSF_KB_Y 
VSF_KB_Z 

◆ anonymous enum

anonymous enum
Enumerator
VSF_KM_NONE 
VSF_KM_LEFT_SHIFT 
VSF_KM_LSHIFT 
VSF_KM_LEFT_CTRL 
VSF_KM_LCTRL 
VSF_KM_LEFT_ALT 
VSF_KM_LALT 
VSF_KM_LEFT_GUI 
VSF_KM_LGUI 
VSF_KM_RIGHT_SHIFT 
VSF_KM_RSHIFT 
VSF_KM_RIGHT_CTRL 
VSF_KM_RCTRL 
VSF_KM_RIGHT_ALT 
VSF_KM_RALT 
VSF_KM_RIGHT_GUI 
VSF_KM_RGUI 
VSF_KM_NUMLOCK 
VSF_KM_NUM 
VSF_KM_CAPSLOCK 
VSF_KM_CAPS 
VSF_KM_SCROLLLOCK 
VSF_KM_SCROLL 
VSF_KM_FN 
VSF_KM_SHIFT 
VSF_KM_CTRL 
VSF_KM_ALT 
VSF_KM_GUI 

Function Documentation

◆ __vsf_input_keyboard_get_scancode()

uint_fast8_t __vsf_input_keyboard_get_scancode ( uint8_t  keycode,
uint8_t  scancode[6] 
)
extern