usim

Check-in [0c7ac5fa5d]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:sdl2.c: Half working buckies.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | ams/sdl
Files: files | file ages | folders
SHA3-256: 0c7ac5fa5d8618cfeceeea0f6b94183e071bc5ab4df8cb0e93ccc558faae6998
User & Date: ams 2024-06-18 07:24:23
Context
2024-06-18
07:35
sdl2.c: Use keysyms instead of scancodes; SDL2 input now works. check-in: 19e882e080 user: ams tags: ams/sdl
07:24
sdl2.c: Half working buckies. check-in: 0c7ac5fa5d user: ams tags: ams/sdl
07:02
sdl2.c: Include <X11/keysym.h> and <X11/X.h>. check-in: 401803fc1b user: ams tags: ams/sdl
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to sdl2.c.

61
62
63
64
65
66
67








68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//	}
//	u_minh = 0x7fffffff;
//	u_maxh = 0;
//	u_minv = 0x7fffffff;
//	u_maxv = 0;
}









int
sdl2_bucky(/* SDL_Keymod mod */)
{
		int mod = SDL_GetModState();

	if (mod & KMOD_CTRL) return ControlMapIndex;
	if (mod & KMOD_SHIFT) return ShiftMapIndex;
	if (mod & KMOD_ALT) return Mod1MapIndex;
	if (mod & KMOD_NUM) return Mod2MapIndex;
	if (mod & KMOD_MODE) return Mod3MapIndex;
	if (mod & KMOD_GUI) return Mod4MapIndex;
	if (mod & KMOD_SCROLL) return Mod5MapIndex;
	return -1;
}

int
sdl2_keysym_to_xk(SDL_KeyboardEvent e)
{
	switch (e.keysym.scancode) {







>
>
>
>
>
>
>
>

|

|

|
|
|
|
|
|
|







61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//	}
//	u_minh = 0x7fffffff;
//	u_maxh = 0;
//	u_minv = 0x7fffffff;
//	u_maxv = 0;
}

//typedef struct SDL_Keysym
//{
//    SDL_Scancode scancode;      /**< SDL physical key code - see SDL_Scancode for details */
//    SDL_Keycode sym;            /**< SDL virtual key code - see SDL_Keycode for details */
//    Uint16 mod;                 /**< current key modifiers */
//    Uint32 unused;
//} SDL_Keysym;
 
int
sdl2_bucky(SDL_KeyboardEvent e)
{
	int mod = SDL_GetModState();

	if (mod & KMOD_CTRL && (e.keysym.scancode == SDL_SCANCODE_LCTRL || e.keysym.scancode == SDL_SCANCODE_RCTRL)) return ControlMapIndex;
	if (mod & KMOD_SHIFT && (e.keysym.scancode == SDL_SCANCODE_LSHIFT || e.keysym.scancode == SDL_SCANCODE_RSHIFT)) return ShiftMapIndex;
	if (mod & KMOD_ALT  && (e.keysym.scancode == SDL_SCANCODE_LALT || e.keysym.scancode == SDL_SCANCODE_RALT)) return Mod1MapIndex;
//	if (mod & KMOD_NUM) return Mod2MapIndex;
//	if (mod & KMOD_MODE) return Mod3MapIndex;
	if (mod & KMOD_GUI && (e.keysym.scancode == SDL_SCANCODE_LGUI || e.keysym.scancode == SDL_SCANCODE_RGUI)) return Mod4MapIndex;
//	if (mod & KMOD_SCROLL) return Mod5MapIndex;
	return -1;
}

int
sdl2_keysym_to_xk(SDL_KeyboardEvent e)
{
	switch (e.keysym.scancode) {
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
//			knight_process_bucky(Mod3MapIndex, &bi);
//		if (mod & Mod4Mask)
//			knight_process_bucky(Mod4MapIndex, &bi);
//		if (mod & Mod5Mask)
//			knight_process_bucky(Mod5MapIndex, &bi);
		knight_process_key(e.keysym.sym, bi, keydown);
	} else {
		bi = sdl2_bucky(/* keysym */);
		cadet_process_key(keysym, bi, keydown);
	}
}

void
sdl2_event(void)
{
	SDL_Event ev;







|
|







215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
//			knight_process_bucky(Mod3MapIndex, &bi);
//		if (mod & Mod4Mask)
//			knight_process_bucky(Mod4MapIndex, &bi);
//		if (mod & Mod5Mask)
//			knight_process_bucky(Mod5MapIndex, &bi);
		knight_process_key(e.keysym.sym, bi, keydown);
	} else {
		bi = sdl2_bucky(e);
		cadet_process_key(keysym /* xk_keysym*/, bi, keydown);
	}
}

void
sdl2_event(void)
{
	SDL_Event ev;