diff options
| author | Ian C <ianc@noddybox.co.uk> | 2026-06-15 00:52:40 +0100 |
|---|---|---|
| committer | Ian C <ianc@noddybox.co.uk> | 2026-06-15 00:52:40 +0100 |
| commit | 47e68b48a085efbc0a71b7814659dba159314475 (patch) | |
| tree | 0c7ad1ee36bdf3d35ce48b959821e677f702a4c4 /src/symtochar.c | |
| parent | f540fb7da37d6c5b5544715e4ee6b83d440ea61d (diff) | |
Added type lookup to file selector. Removed old CVS tags. Added SDL keysym to char lookup.
Diffstat (limited to 'src/symtochar.c')
| -rw-r--r-- | src/symtochar.c | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/symtochar.c b/src/symtochar.c new file mode 100644 index 0000000..3817f5a --- /dev/null +++ b/src/symtochar.c @@ -0,0 +1,99 @@ +/* + + espec - Sinclair Spectrum emulator + + Copyright (C) 2026 Ian Cowburn (ianc@noddybox.demon.co.uk) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + ------------------------------------------------------------------------- + + Convert an SDL keysym into a char + +*/ +#include "symtochar.h" + + +/* ---------------------------------------- GLOBALS +*/ +static struct +{ + SDL_Keycode sym; + char c; +} map[] = +{ + {SDLK_1, '1'}, + {SDLK_2, '2'}, + {SDLK_3, '3'}, + {SDLK_4, '4'}, + {SDLK_5, '5'}, + {SDLK_6, '6'}, + {SDLK_7, '7'}, + {SDLK_8, '8'}, + {SDLK_9, '9'}, + {SDLK_0, '0'}, + + {SDLK_a, 'a'}, + {SDLK_b, 'b'}, + {SDLK_c, 'c'}, + {SDLK_d, 'd'}, + {SDLK_e, 'e'}, + {SDLK_f, 'f'}, + {SDLK_g, 'g'}, + {SDLK_h, 'h'}, + {SDLK_i, 'i'}, + {SDLK_j, 'j'}, + {SDLK_k, 'k'}, + {SDLK_l, 'l'}, + {SDLK_m, 'm'}, + {SDLK_n, 'n'}, + {SDLK_o, 'o'}, + {SDLK_p, 'p'}, + {SDLK_q, 'q'}, + {SDLK_r, 'r'}, + {SDLK_s, 's'}, + {SDLK_t, 't'}, + {SDLK_u, 'u'}, + {SDLK_v, 'v'}, + {SDLK_w, 'w'}, + {SDLK_x, 'x'}, + {SDLK_y, 'y'}, + {SDLK_z, 'z'}, + + {SDLK_SPACE, ' '}, + + {SDLK_UNKNOWN, 0} +}; + +/* ---------------------------------------- INTERFACES +*/ + +char SYMToChar(SDL_Keycode keysym) +{ + int f; + + for(f = 0; map[f].sym != SDLK_UNKNOWN; f++) + { + if (map[f].sym == keysym) + { + return map[f].c; + } + } + + return 0; +} + + +/* END OF FILE */ |
