usim

Check-in [994fa0d7b2]
Login

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

Overview
Comment:Garbage attempt at handling keyboard.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | ams/sdl1
Files: files | file ages | folders
SHA3-256: 994fa0d7b2af2fb0280c2a25211b42ef721ee1f3631d2e6a39cf79ece4636103
User & Date: ams 2024-06-05 08:26:13
Context
2024-06-11
11:19
Half working SDL2 keyboard input. check-in: ee2075a420 user: ams tags: ams/sdl1
2024-06-05
08:26
Garbage attempt at handling keyboard. check-in: 994fa0d7b2 user: ams tags: ams/sdl1
07:40
ucfg.c: Initialize default SDL2 mapping. check-in: e3862ddf7f user: ams tags: ams/sdl1
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to cadet.c.

251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
		printf("kbd (cadet): bucky pressed; scc = 0%o, shifts = 0%o (previous: 0%o)\n", scc, cadet_shifts, oshift);
		kbd_event(scc, keydown);
		return;
	}
	lmchar = kbd_map[keysym];
	printf("kbd (cadet): kbd_map[%d] (lmchar) = 0%o\n", keysym, kbd_map[keysym]);
	if (lmchar > LMCH_CODE_LIMIT || lmchar == LMCH_NoSymbol) {
		NOTICE(TRACE_USIM, "kbd (cadet): unable to translate to lispm key (keysym = 0%o)\n", keysym);
		return;
	}
	scc = cadet_kbd_map[lmchar][0];
	wantshift = cadet_kbd_map[lmchar][1];
	printf("kbd (cadet): non bucky pressed; scc = 0%o, wantshift = %d\n", scc, wantshift);
	/*
	 * If modifiers correct, just post the event, else







|







251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
		printf("kbd (cadet): bucky pressed; scc = 0%o, shifts = 0%o (previous: 0%o)\n", scc, cadet_shifts, oshift);
		kbd_event(scc, keydown);
		return;
	}
	lmchar = kbd_map[keysym];
	printf("kbd (cadet): kbd_map[%d] (lmchar) = 0%o\n", keysym, kbd_map[keysym]);
	if (lmchar > LMCH_CODE_LIMIT || lmchar == LMCH_NoSymbol) {
		printf("kbd (cadet): unable to translate to lispm key (keysym = 0%o)\n", keysym);
		return;
	}
	scc = cadet_kbd_map[lmchar][0];
	wantshift = cadet_kbd_map[lmchar][1];
	printf("kbd (cadet): non bucky pressed; scc = 0%o, wantshift = %d\n", scc, wantshift);
	/*
	 * If modifiers correct, just post the event, else

Changes to sdl2.c.

121
122
123
124
125
126
127


128
129
130
131
132
133
134
135
136



137












138
139
140
141
142
143
144
145
146
147
148
149
void
sdl2_event(void)
{
	SDL_Event ev;
	
	send_accumulated_updates();
	kbd_dequeue_key_event();


	while (SDL_PollEvent(&ev)) {
		switch (ev.type) {
		case SDL_WINDOWEVENT:
			SDL_UpdateTexture(texture, NULL, tv_bitmap, tv_width * sizeof (Uint32));
			// flush
			SDL_RenderClear(renderer);
			SDL_RenderCopy(renderer, texture, NULL, NULL);
			SDL_RenderPresent(renderer);
			break;



		case SDL_KEYDOWN:












			process_key(ev.key, 1);
			break;
		case SDL_KEYUP:
			process_key(ev.key, 0);
			break;
		case SDL_MOUSEMOTION:
		case SDL_MOUSEBUTTONDOWN:
		case SDL_MOUSEBUTTONUP:
			mouse_event(ev.button.x, ev.button.y, ev.button.button);
			break;
		case SDL_QUIT:
			exit(0);







>
>









>
>
>

>
>
>
>
>
>
>
>
>
>
>
>
|
|
|
|
|







121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
void
sdl2_event(void)
{
	SDL_Event ev;
	
	send_accumulated_updates();
	kbd_dequeue_key_event();
	SDL_StartTextInput();
	int ctrl = 0, shift = 0;
	while (SDL_PollEvent(&ev)) {
		switch (ev.type) {
		case SDL_WINDOWEVENT:
			SDL_UpdateTexture(texture, NULL, tv_bitmap, tv_width * sizeof (Uint32));
			// flush
			SDL_RenderClear(renderer);
			SDL_RenderCopy(renderer, texture, NULL, NULL);
			SDL_RenderPresent(renderer);
			break;
		case SDL_TEXTINPUT: 
			printf("text: %s shift %d\n", ev.text.text, shift);
			break;
		case SDL_KEYDOWN:
			if (ev.key.keysym.sym == SDLK_RCTRL || ev.key.keysym.sym == SDLK_LCTRL)
				ctrl = 1;
			if (ev.key.keysym.sym == SDLK_RSHIFT || ev.key.keysym.sym == SDLK_LSHIFT)
				shift = 1;
			break;
		case SDL_KEYUP:
			if (ev.key.keysym.sym == SDLK_RCTRL || ev.key.keysym.sym == SDLK_LCTRL)
				ctrl = 0;
			if (ev.key.keysym.sym == SDLK_RSHIFT || ev.key.keysym.sym == SDLK_LSHIFT)
				shift = 1;
			break;
//		case SDL_KEYDOWN:
//			process_key(ev.key, 1);
//			break;
//		case SDL_KEYUP:
//			process_key(ev.key, 0);
//			break;
		case SDL_MOUSEMOTION:
		case SDL_MOUSEBUTTONDOWN:
		case SDL_MOUSEBUTTONUP:
			mouse_event(ev.button.x, ev.button.y, ev.button.button);
			break;
		case SDL_QUIT:
			exit(0);