55#include "video.h"
66
77#include <SDL2/SDL.h>
8+ #include <SDL2/SDL_scancode.h>
89#include <stdint.h>
910#include <string.h>
1011
@@ -17,10 +18,10 @@ typedef enum ceda_associator_type_t {
1718 CEDA_ASSOCIATOR_FUNC ,
1819} ceda_associator_type_t ;
1920
20- typedef void (* ceda_associator_func_t )(SDL_Keycode );
21+ typedef void (* ceda_associator_func_t )(SDL_Scancode );
2122
2223typedef struct ceda_associator_t {
23- SDL_Keycode sdl ;
24+ SDL_Scancode sdl ;
2425 ceda_associator_type_t type ;
2526 void * ptr ;
2627} ceda_associator_t ;
@@ -43,19 +44,19 @@ static uint8_t modifiers = KEYBOARD_MODIFIERS_DEFAULT;
4344
4445static void keyboard_toggle_modifier (SDL_Keycode code ) {
4546 switch (code ) {
46- case SDLK_LSHIFT :
47- case SDLK_RSHIFT :
47+ case SDL_SCANCODE_LSHIFT :
48+ case SDL_SCANCODE_RSHIFT :
4849 modifiers ^= KEYBOARD_MODIFIER_SHIFT ;
4950 break ;
50- case SDLK_CAPSLOCK :
51+ case SDL_SCANCODE_CAPSLOCK :
5152 modifiers ^= KEYBOARD_MODIFIER_CAPS_LOCK ;
5253 break ;
53- case SDLK_LALT :
54- case SDLK_RALT :
54+ case SDL_SCANCODE_LALT :
55+ case SDL_SCANCODE_RALT :
5556 modifiers ^= KEYBOARD_MODIFIER_ALT ;
5657 break ;
57- case SDLK_LCTRL :
58- case SDLK_RCTRL :
58+ case SDL_SCANCODE_LCTRL :
59+ case SDL_SCANCODE_RCTRL :
5960 modifiers ^= KEYBOARD_MODIFIER_CTRL ;
6061 break ;
6162 default :
@@ -65,120 +66,120 @@ static void keyboard_toggle_modifier(SDL_Keycode code) {
6566
6667static const ceda_associator_t associators [] = {
6768 // row 0
68- {SDLK_INSERT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4D }},
69- {SDLK_F1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4E }},
70- {SDLK_F2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4F }},
71- {SDLK_F3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x50 }},
72- {SDLK_F4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x51 }},
73- {SDLK_F5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x52 }},
74- {SDLK_F6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x53 }},
75- {SDLK_F7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x54 }},
76- {SDLK_F8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x55 }},
77- {SDLK_F9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x56 }},
78- {SDLK_F10 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x57 }},
79- {SDLK_F11 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x58 }},
80- {SDLK_F12 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x59 }},
81- {SDLK_F13 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5A }},
82- {SDLK_F14 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5B }},
83- {SDLK_F15 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5C }},
69+ {SDL_SCANCODE_INSERT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4D }},
70+ {SDL_SCANCODE_F1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4E }},
71+ {SDL_SCANCODE_F2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4F }},
72+ {SDL_SCANCODE_F3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x50 }},
73+ {SDL_SCANCODE_F4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x51 }},
74+ {SDL_SCANCODE_F5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x52 }},
75+ {SDL_SCANCODE_F6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x53 }},
76+ {SDL_SCANCODE_F7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x54 }},
77+ {SDL_SCANCODE_F8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x55 }},
78+ {SDL_SCANCODE_F9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x56 }},
79+ {SDL_SCANCODE_F10 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x57 }},
80+ {SDL_SCANCODE_F11 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x58 }},
81+ {SDL_SCANCODE_F12 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x59 }},
82+ {SDL_SCANCODE_F13 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5A }},
83+ {SDL_SCANCODE_F14 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5B }},
84+ {SDL_SCANCODE_F15 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x5C }},
8485
8586 // row 1
86- {SDLK_ESCAPE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x01 }},
87- {SDLK_LESS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x02 }},
88- {SDLK_1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x03 }},
89- {SDLK_2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x04 }},
90- {SDLK_3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x05 }},
91- {SDLK_4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x06 }},
92- {SDLK_5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x07 }},
93- {SDLK_6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x08 }},
94- {SDLK_7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x09 }},
95- {SDLK_8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0a }},
96- {SDLK_9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0b }},
97- {SDLK_0 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0C }},
98- {SDLK_HASH , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0D }},
99- {SDLK_AT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0E }},
100- {SDLK_DELETE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0F }},
101- { SDLK_CARET , CEDA_ASSOCIATOR_KEY , & ( uint8_t ){ 0x10 }},
87+ {SDL_SCANCODE_ESCAPE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x01 }},
88+ {SDL_SCANCODE_GRAVE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x02 }},
89+ {SDL_SCANCODE_1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x03 }},
90+ {SDL_SCANCODE_2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x04 }},
91+ {SDL_SCANCODE_3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x05 }},
92+ {SDL_SCANCODE_4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x06 }},
93+ {SDL_SCANCODE_5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x07 }},
94+ {SDL_SCANCODE_6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x08 }},
95+ {SDL_SCANCODE_7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x09 }},
96+ {SDL_SCANCODE_8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0a }},
97+ {SDL_SCANCODE_9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0b }},
98+ {SDL_SCANCODE_0 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0C }},
99+ {SDL_SCANCODE_MINUS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0D }},
100+ {SDL_SCANCODE_EQUALS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0E }},
101+ {SDL_SCANCODE_DELETE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x0F }},
102+ // {} ex CARET ( 0x10)
102103
103104 // row 2
104105 // {} BREAK (0x11)
105- {SDLK_TAB , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x12 }},
106- {SDLK_a , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x13 }},
107- {SDLK_z , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x14 }},
108- {SDLK_e , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x15 }},
109- {SDLK_r , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x16 }},
110- {SDLK_t , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x17 }},
111- {SDLK_y , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x18 }},
112- {SDLK_u , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x19 }},
113- {SDLK_i , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1A }},
114- {SDLK_o , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1B }},
115- {SDLK_p , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1C }},
116- {SDLK_GREATER , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1D }},
117- // {} umlaut / dieresis (0x1E)
118- {SDLK_KP_RIGHTBRACE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1F }},
106+ {SDL_SCANCODE_TAB , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x12 }},
107+ {SDL_SCANCODE_Q , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x13 }},
108+ {SDL_SCANCODE_W , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x14 }},
109+ {SDL_SCANCODE_E , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x15 }},
110+ {SDL_SCANCODE_R , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x16 }},
111+ {SDL_SCANCODE_T , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x17 }},
112+ {SDL_SCANCODE_Y , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x18 }},
113+ {SDL_SCANCODE_U , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x19 }},
114+ {SDL_SCANCODE_I , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1A }},
115+ {SDL_SCANCODE_O , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1B }},
116+ {SDL_SCANCODE_P , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1C }},
117+ {SDL_SCANCODE_LEFTBRACKET , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1D }},
118+ { SDL_SCANCODE_RIGHTBRACKET , CEDA_ASSOCIATOR_KEY , & ( uint8_t ){ 0x1E }},
119+ {SDL_SCANCODE_BACKSLASH , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x1F }},
119120
120121 // row 3
121- {SDLK_CAPSLOCK , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
122- // {} SHIFT LOCK
123- {SDLK_q , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x20 }},
124- {SDLK_s , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x21 }},
125- {SDLK_d , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x22 }},
126- {SDLK_f , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x23 }},
127- {SDLK_g , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x24 }},
128- {SDLK_h , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x25 }},
129- {SDLK_j , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x26 }},
130- {SDLK_k , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x27 }},
131- {SDLK_l , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x28 }},
132- {SDLK_m , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x29 }},
133- {SDLK_PERCENT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2A }},
134- {SDLK_RETURN , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2B }},
135- { SDLK_KP_LEFTBRACE , CEDA_ASSOCIATOR_KEY , & ( uint8_t ){ 0x2C }},
122+ {SDL_SCANCODE_CAPSLOCK , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
123+ // {} SHIFT LOCK (0x65)
124+ {SDL_SCANCODE_A , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x20 }},
125+ {SDL_SCANCODE_S , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x21 }},
126+ {SDL_SCANCODE_D , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x22 }},
127+ {SDL_SCANCODE_F , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x23 }},
128+ {SDL_SCANCODE_G , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x24 }},
129+ {SDL_SCANCODE_H , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x25 }},
130+ {SDL_SCANCODE_J , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x26 }},
131+ {SDL_SCANCODE_K , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x27 }},
132+ {SDL_SCANCODE_L , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x28 }},
133+ {SDL_SCANCODE_SEMICOLON , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x29 }},
134+ {SDL_SCANCODE_APOSTROPHE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2A }},
135+ {SDL_SCANCODE_RETURN , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2B }},
136+ // {} ex LEFT BRACKET ( 0x2C)
136137
137138 // row 4
138139 // {} CAN (0x2D)
139- {SDLK_LSHIFT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
140- {SDLK_w , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2E }},
141- {SDLK_x , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2F }},
142- {SDLK_c , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x30 }},
143- {SDLK_v , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x31 }},
144- {SDLK_b , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x32 }},
145- {SDLK_n , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x33 }},
146- {SDLK_SLASH , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x34 }},
147- {SDLK_PERIOD , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x35 }},
148- {SDLK_MINUS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x36 }},
149- {SDLK_PLUS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x37 }},
150- {SDLK_RSHIFT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
140+ {SDL_SCANCODE_LSHIFT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
141+ {SDL_SCANCODE_Z , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2E }},
142+ {SDL_SCANCODE_X , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x2F }},
143+ {SDL_SCANCODE_C , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x30 }},
144+ {SDL_SCANCODE_V , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x31 }},
145+ {SDL_SCANCODE_B , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x32 }},
146+ {SDL_SCANCODE_N , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x33 }},
147+ {SDL_SCANCODE_M , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x34 }},
148+ {SDL_SCANCODE_COMMA , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x35 }},
149+ {SDL_SCANCODE_PERIOD , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x36 }},
150+ {SDL_SCANCODE_SLASH , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x37 }},
151+ {SDL_SCANCODE_RSHIFT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
151152 // {} LINE FEED (0x38)
152153
153154 // row 5
154- {SDLK_LCTRL , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
155- {SDLK_SPACE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x39 }},
156- {SDLK_RALT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
155+ {SDL_SCANCODE_LCTRL , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
156+ {SDL_SCANCODE_SPACE , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x39 }},
157+ {SDL_SCANCODE_RALT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
157158
158159 // useful keys on modern IBM keyboards
159- {SDLK_RCTRL , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
160- {SDLK_LALT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
160+ {SDL_SCANCODE_RCTRL , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
161+ {SDL_SCANCODE_LALT , CEDA_ASSOCIATOR_FUNC , keyboard_toggle_modifier },
161162
162163 // number pad
163- {SDLK_UP , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3A }},
164- {SDLK_DOWN , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3B }},
165- {SDLK_LEFT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3C }},
166- {SDLK_RIGHT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3D }},
167- {SDLK_KP_7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3E }},
168- {SDLK_KP_8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3F }},
169- {SDLK_KP_9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x40 }},
170- {SDLK_KP_CLEAR , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x41 }},
171- {SDLK_KP_4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x42 }},
172- {SDLK_KP_5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x43 }},
173- {SDLK_KP_6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x44 }},
174- {SDLK_KP_MINUS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x45 }},
175- {SDLK_KP_1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x46 }},
176- {SDLK_KP_2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x47 }},
177- {SDLK_KP_3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x48 }},
178- {SDLK_KP_ENTER , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4C }},
179- {SDLK_KP_PERIOD , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x49 }},
180- {SDLK_KP_0 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4A }},
181- {SDLK_KP_00 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4B }},
164+ {SDL_SCANCODE_UP , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3A }},
165+ {SDL_SCANCODE_DOWN , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3B }},
166+ {SDL_SCANCODE_LEFT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3C }},
167+ {SDL_SCANCODE_RIGHT , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3D }},
168+ {SDL_SCANCODE_KP_7 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3E }},
169+ {SDL_SCANCODE_KP_8 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x3F }},
170+ {SDL_SCANCODE_KP_9 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x40 }},
171+ {SDL_SCANCODE_KP_CLEAR , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x41 }},
172+ {SDL_SCANCODE_KP_4 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x42 }},
173+ {SDL_SCANCODE_KP_5 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x43 }},
174+ {SDL_SCANCODE_KP_6 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x44 }},
175+ {SDL_SCANCODE_KP_MINUS , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x45 }},
176+ {SDL_SCANCODE_KP_1 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x46 }},
177+ {SDL_SCANCODE_KP_2 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x47 }},
178+ {SDL_SCANCODE_KP_3 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x48 }},
179+ {SDL_SCANCODE_KP_ENTER , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4C }},
180+ {SDL_SCANCODE_KP_PERIOD , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x49 }},
181+ {SDL_SCANCODE_KP_0 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4A }},
182+ {SDL_SCANCODE_KP_00 , CEDA_ASSOCIATOR_KEY , & (uint8_t ){0x4B }},
182183};
183184
184185void keyboard_init (void ) {
@@ -192,12 +193,12 @@ void keyboard_init(void) {
192193}
193194
194195void keyboard_handleEvent (const SDL_KeyboardEvent * event ) {
195- LOG_DEBUG ("keycode = %" PRId32 ", repeat = %d\n" , event -> keysym .sym ,
196+ LOG_DEBUG ("keycode = %" PRId32 ", repeat = %d\n" , event -> keysym .scancode ,
196197 (int )event -> repeat );
197198
198199 for (size_t i = 0 ; i < ARRAY_SIZE (associators ); ++ i ) {
199200 const ceda_associator_t * const associator = & associators [i ];
200- if (associator -> sdl != event -> keysym .sym )
201+ if (associator -> sdl != event -> keysym .scancode )
201202 continue ;
202203
203204 switch (associator -> type ) {
0 commit comments