MCPcopy Create free account
hub / github.com/emscripten-core/emscripten / EventHandler

Function EventHandler

test/browser/test_sdl_key.c:14–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12int result = 1;
13
14int SDLCALL EventHandler(void *userdata, SDL_Event *event) {
15 switch(event->type) {
16 case SDL_KEYDOWN:
17 break;
18 case SDL_KEYUP:
19 // don't handle the modifier key events
20 if (event->key.keysym.sym == SDLK_LCTRL ||
21 event->key.keysym.sym == SDLK_LSHIFT ||
22 event->key.keysym.sym == SDLK_LALT) {
23 return 0;
24 }
25 if ((event->key.keysym.mod & KMOD_LCTRL) || (event->key.keysym.mod & KMOD_RCTRL)) {
26 result *= 2;
27 }
28 if ((event->key.keysym.mod & KMOD_LSHIFT) || (event->key.keysym.mod & KMOD_RSHIFT)) {
29 result *= 3;
30 }
31 if ((event->key.keysym.mod & KMOD_LALT) || (event->key.keysym.mod & KMOD_RALT)) {
32 result *= 5;
33 }
34 switch (event->key.keysym.sym) {
35 case SDLK_RIGHT: printf("right\n"); result *= 7; break;
36 case SDLK_LEFT: printf("left\n"); result *= 11; break;
37 case SDLK_DOWN: printf("down\n"); result *= 13; break;
38 case SDLK_UP: printf("up\n"); result *= 17; break;
39 case SDLK_a: printf("a\n"); result *= 19; break;
40 default: {
41 if (event->key.keysym.scancode == SDL_SCANCODE_B) {
42 printf("b scancode\n"); result *= 23; break;
43 }
44 printf("unknown key: sym %d scancode %d\n", event->key.keysym.sym, event->key.keysym.scancode);
45 emscripten_force_exit(result); // comment this out to leave event handling active. Use the following to log DOM keys:
46 // addEventListener('keyup', function(event) { console.log(event->keyCode) }, true)
47 }
48 }
49 break;
50 default: /* Report an unhandled event */
51 printf("I don't know what this event is (type=%d)!\n", event->type);
52 }
53 return 0;
54}
55
56void one() {
57#ifndef TEST_EMSCRIPTEN_SDL_SETEVENTHANDLER

Callers 1

oneFunction · 0.70

Calls 1

printfFunction · 0.85

Tested by

no test coverage detected