Files
snake2025/MLV/keyboard.c
2025-03-26 09:05:12 +01:00

1679 lines
42 KiB
C

/*
* This file is part of the MLV Library.
*
* Copyright (C) 2010,2011,2012 Adrien Boussicault, Marc Zipstein
*
*
* This Library 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 3 of the License, or
* (at your option) any later version.
*
* This Library 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 Library. If not, see <http://www.gnu.org/licenses/>.
*/
#include "MLV_keyboard.h"
#include "MLV_event.h"
#include "MLV_time.h"
#ifndef MEMORY_DEBUG
#include <SDL/SDL.h>
#else
#include "memory_debug.h"
#endif
#include "warning_error.h"
#include "memory_management.h"
void MLV_wait_keyboard( MLV_Keyboard_button* sym, MLV_Keyboard_modifier* mod, int* unicode ){
MLV_Button_state state;
// We remove all existing event from the queue
MLV_flush_event_queue();
//We wait for a new keyboard event
while(
(
MLV_wait_event(
sym, mod, unicode,
NULL, NULL,
NULL, NULL, NULL,
&state
) != MLV_KEY
) ||
( state != MLV_PRESSED )
);
}
int MLV_wait_keyboard_or_seconds( MLV_Keyboard_button* sym, MLV_Keyboard_modifier* mod, int* unicode, int seconds ){
MLV_Button_state state;
// We remove all existing event from the queue
MLV_flush_event_queue();
int time = MLV_get_time();
MLV_Keyboard_button tmp_sym;
MLV_Keyboard_modifier tmp_mod;
int tmp_unicode;
//We wait for a new keyboard event
int resultat = 0;
while(
(
(
resultat = (
MLV_wait_event_or_seconds(
&tmp_sym, &tmp_mod, &tmp_unicode,
NULL, NULL,
NULL, NULL, NULL,
&state,
seconds - (MLV_get_time() - time)/1000
) != MLV_KEY
)
) ||
( state != MLV_PRESSED )
) && (
(MLV_get_time() - time) < seconds*1000
)
);
if( ! resultat && state == MLV_PRESSED ){
if( sym ) *sym = tmp_sym;
if( mod ) *mod = tmp_mod;
if( unicode ) *unicode = tmp_unicode;
}
return resultat;
}
MLV_Keyboard_button MLV_convert_string_to_keyboard_button( const char* key_string ){
if(strcmp(key_string,"MLV_KEYBOARD_UNKNOWN") == 0){
return MLV_KEYBOARD_UNKNOWN;
}
if(strcmp(key_string,"MLV_KEYBOARD_FIRST") == 0){
return MLV_KEYBOARD_FIRST;
}
if(strcmp(key_string,"MLV_KEYBOARD_BACKSPACE") == 0){
return MLV_KEYBOARD_BACKSPACE;
}
if(strcmp(key_string,"MLV_KEYBOARD_TAB") == 0){
return MLV_KEYBOARD_TAB;
}
if(strcmp(key_string,"MLV_KEYBOARD_CLEAR") == 0){
return MLV_KEYBOARD_CLEAR;
}
if(strcmp(key_string,"MLV_KEYBOARD_RETURN") == 0){
return MLV_KEYBOARD_RETURN;
}
if(strcmp(key_string,"MLV_KEYBOARD_PAUSE") == 0){
return MLV_KEYBOARD_PAUSE;
}
if(strcmp(key_string,"MLV_KEYBOARD_ESCAPE") == 0){
return MLV_KEYBOARD_ESCAPE;
}
if(strcmp(key_string,"MLV_KEYBOARD_SPACE") == 0){
return MLV_KEYBOARD_SPACE;
}
if(strcmp(key_string,"MLV_KEYBOARD_EXCLAIM") == 0){
return MLV_KEYBOARD_EXCLAIM;
}
if(strcmp(key_string,"MLV_KEYBOARD_QUOTEDBL") == 0){
return MLV_KEYBOARD_QUOTEDBL;
}
if(strcmp(key_string,"MLV_KEYBOARD_HASH") == 0){
return MLV_KEYBOARD_HASH;
}
if(strcmp(key_string,"MLV_KEYBOARD_DOLLAR") == 0){
return MLV_KEYBOARD_DOLLAR;
}
if(strcmp(key_string,"MLV_KEYBOARD_AMPERSAND") == 0){
return MLV_KEYBOARD_AMPERSAND;
}
if(strcmp(key_string,"MLV_KEYBOARD_QUOTE") == 0){
return MLV_KEYBOARD_QUOTE;
}
if(strcmp(key_string,"MLV_KEYBOARD_LEFTPAREN") == 0){
return MLV_KEYBOARD_LEFTPAREN;
}
if(strcmp(key_string,"MLV_KEYBOARD_RIGHTPAREN") == 0){
return MLV_KEYBOARD_RIGHTPAREN;
}
if(strcmp(key_string,"MLV_KEYBOARD_ASTERISK") == 0){
return MLV_KEYBOARD_ASTERISK;
}
if(strcmp(key_string,"MLV_KEYBOARD_PLUS") == 0){
return MLV_KEYBOARD_PLUS;
}
if(strcmp(key_string,"MLV_KEYBOARD_COMMA") == 0){
return MLV_KEYBOARD_COMMA;
}
if(strcmp(key_string,"MLV_KEYBOARD_MINUS") == 0){
return MLV_KEYBOARD_MINUS;
}
if(strcmp(key_string,"MLV_KEYBOARD_PERIOD") == 0){
return MLV_KEYBOARD_PERIOD;
}
if(strcmp(key_string,"MLV_KEYBOARD_SLASH") == 0){
return MLV_KEYBOARD_SLASH;
}
if(strcmp(key_string,"MLV_KEYBOARD_0") == 0){
return MLV_KEYBOARD_0;
}
if(strcmp(key_string,"MLV_KEYBOARD_1") == 0){
return MLV_KEYBOARD_1;
}
if(strcmp(key_string,"MLV_KEYBOARD_2") == 0){
return MLV_KEYBOARD_2;
}
if(strcmp(key_string,"MLV_KEYBOARD_3") == 0){
return MLV_KEYBOARD_3;
}
if(strcmp(key_string,"MLV_KEYBOARD_4") == 0){
return MLV_KEYBOARD_4;
}
if(strcmp(key_string,"MLV_KEYBOARD_5") == 0){
return MLV_KEYBOARD_5;
}
if(strcmp(key_string,"MLV_KEYBOARD_6") == 0){
return MLV_KEYBOARD_6;
}
if(strcmp(key_string,"MLV_KEYBOARD_7") == 0){
return MLV_KEYBOARD_7;
}
if(strcmp(key_string,"MLV_KEYBOARD_8") == 0){
return MLV_KEYBOARD_8;
}
if(strcmp(key_string,"MLV_KEYBOARD_9") == 0){
return MLV_KEYBOARD_9;
}
if(strcmp(key_string,"MLV_KEYBOARD_COLON") == 0){
return MLV_KEYBOARD_COLON;
}
if(strcmp(key_string,"MLV_KEYBOARD_SEMICOLON") == 0){
return MLV_KEYBOARD_SEMICOLON;
}
if(strcmp(key_string,"MLV_KEYBOARD_LESS") == 0){
return MLV_KEYBOARD_LESS;
}
if(strcmp(key_string,"MLV_KEYBOARD_EQUALS") == 0){
return MLV_KEYBOARD_EQUALS;
}
if(strcmp(key_string,"MLV_KEYBOARD_GREATER") == 0){
return MLV_KEYBOARD_GREATER;
}
if(strcmp(key_string,"MLV_KEYBOARD_QUESTION") == 0){
return MLV_KEYBOARD_QUESTION;
}
if(strcmp(key_string,"MLV_KEYBOARD_AT") == 0){
return MLV_KEYBOARD_AT;
}
if(strcmp(key_string,"MLV_KEYBOARD_LEFTBRACKET") == 0){
return MLV_KEYBOARD_LEFTBRACKET;
}
if(strcmp(key_string,"MLV_KEYBOARD_BACKSLASH") == 0){
return MLV_KEYBOARD_BACKSLASH;
}
if(strcmp(key_string,"MLV_KEYBOARD_RIGHTBRACKET") == 0){
return MLV_KEYBOARD_RIGHTBRACKET;
}
if(strcmp(key_string,"MLV_KEYBOARD_CARET") == 0){
return MLV_KEYBOARD_CARET;
}
if(strcmp(key_string,"MLV_KEYBOARD_UNDERSCORE") == 0){
return MLV_KEYBOARD_UNDERSCORE;
}
if(strcmp(key_string,"MLV_KEYBOARD_BACKQUOTE") == 0){
return MLV_KEYBOARD_BACKQUOTE;
}
if(strcmp(key_string,"MLV_KEYBOARD_a") == 0){
return MLV_KEYBOARD_a;
}
if(strcmp(key_string,"MLV_KEYBOARD_b") == 0){
return MLV_KEYBOARD_b;
}
if(strcmp(key_string,"MLV_KEYBOARD_c") == 0){
return MLV_KEYBOARD_c;
}
if(strcmp(key_string,"MLV_KEYBOARD_d") == 0){
return MLV_KEYBOARD_d;
}
if(strcmp(key_string,"MLV_KEYBOARD_e") == 0){
return MLV_KEYBOARD_e;
}
if(strcmp(key_string,"MLV_KEYBOARD_f") == 0){
return MLV_KEYBOARD_f;
}
if(strcmp(key_string,"MLV_KEYBOARD_g") == 0){
return MLV_KEYBOARD_g;
}
if(strcmp(key_string,"MLV_KEYBOARD_h") == 0){
return MLV_KEYBOARD_h;
}
if(strcmp(key_string,"MLV_KEYBOARD_i") == 0){
return MLV_KEYBOARD_i;
}
if(strcmp(key_string,"MLV_KEYBOARD_j") == 0){
return MLV_KEYBOARD_j;
}
if(strcmp(key_string,"MLV_KEYBOARD_k") == 0){
return MLV_KEYBOARD_k;
}
if(strcmp(key_string,"MLV_KEYBOARD_l") == 0){
return MLV_KEYBOARD_l;
}
if(strcmp(key_string,"MLV_KEYBOARD_m") == 0){
return MLV_KEYBOARD_m;
}
if(strcmp(key_string,"MLV_KEYBOARD_n") == 0){
return MLV_KEYBOARD_n;
}
if(strcmp(key_string,"MLV_KEYBOARD_o") == 0){
return MLV_KEYBOARD_o;
}
if(strcmp(key_string,"MLV_KEYBOARD_p") == 0){
return MLV_KEYBOARD_p;
}
if(strcmp(key_string,"MLV_KEYBOARD_q") == 0){
return MLV_KEYBOARD_q;
}
if(strcmp(key_string,"MLV_KEYBOARD_r") == 0){
return MLV_KEYBOARD_r;
}
if(strcmp(key_string,"MLV_KEYBOARD_s") == 0){
return MLV_KEYBOARD_s;
}
if(strcmp(key_string,"MLV_KEYBOARD_t") == 0){
return MLV_KEYBOARD_t;
}
if(strcmp(key_string,"MLV_KEYBOARD_u") == 0){
return MLV_KEYBOARD_u;
}
if(strcmp(key_string,"MLV_KEYBOARD_v") == 0){
return MLV_KEYBOARD_v;
}
if(strcmp(key_string,"MLV_KEYBOARD_w") == 0){
return MLV_KEYBOARD_w;
}
if(strcmp(key_string,"MLV_KEYBOARD_x") == 0){
return MLV_KEYBOARD_x;
}
if(strcmp(key_string,"MLV_KEYBOARD_y") == 0){
return MLV_KEYBOARD_y;
}
if(strcmp(key_string,"MLV_KEYBOARD_z") == 0){
return MLV_KEYBOARD_z;
}
if(strcmp(key_string,"MLV_KEYBOARD_DELETE") == 0){
return MLV_KEYBOARD_DELETE;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_0") == 0){
return MLV_KEYBOARD_WORLD_0;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_1") == 0){
return MLV_KEYBOARD_WORLD_1;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_2") == 0){
return MLV_KEYBOARD_WORLD_2;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_3") == 0){
return MLV_KEYBOARD_WORLD_3;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_4") == 0){
return MLV_KEYBOARD_WORLD_4;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_5") == 0){
return MLV_KEYBOARD_WORLD_5;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_6") == 0){
return MLV_KEYBOARD_WORLD_6;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_7") == 0){
return MLV_KEYBOARD_WORLD_7;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_8") == 0){
return MLV_KEYBOARD_WORLD_8;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_9") == 0){
return MLV_KEYBOARD_WORLD_9;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_10") == 0){
return MLV_KEYBOARD_WORLD_10;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_11") == 0){
return MLV_KEYBOARD_WORLD_11;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_12") == 0){
return MLV_KEYBOARD_WORLD_12;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_13") == 0){
return MLV_KEYBOARD_WORLD_13;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_14") == 0){
return MLV_KEYBOARD_WORLD_14;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_15") == 0){
return MLV_KEYBOARD_WORLD_15;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_16") == 0){
return MLV_KEYBOARD_WORLD_16;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_17") == 0){
return MLV_KEYBOARD_WORLD_17;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_18") == 0){
return MLV_KEYBOARD_WORLD_18;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_19") == 0){
return MLV_KEYBOARD_WORLD_19;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_20") == 0){
return MLV_KEYBOARD_WORLD_20;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_21") == 0){
return MLV_KEYBOARD_WORLD_21;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_22") == 0){
return MLV_KEYBOARD_WORLD_22;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_23") == 0){
return MLV_KEYBOARD_WORLD_23;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_24") == 0){
return MLV_KEYBOARD_WORLD_24;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_25") == 0){
return MLV_KEYBOARD_WORLD_25;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_26") == 0){
return MLV_KEYBOARD_WORLD_26;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_27") == 0){
return MLV_KEYBOARD_WORLD_27;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_28") == 0){
return MLV_KEYBOARD_WORLD_28;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_29") == 0){
return MLV_KEYBOARD_WORLD_29;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_30") == 0){
return MLV_KEYBOARD_WORLD_30;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_31") == 0){
return MLV_KEYBOARD_WORLD_31;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_32") == 0){
return MLV_KEYBOARD_WORLD_32;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_33") == 0){
return MLV_KEYBOARD_WORLD_33;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_34") == 0){
return MLV_KEYBOARD_WORLD_34;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_35") == 0){
return MLV_KEYBOARD_WORLD_35;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_36") == 0){
return MLV_KEYBOARD_WORLD_36;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_37") == 0){
return MLV_KEYBOARD_WORLD_37;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_38") == 0){
return MLV_KEYBOARD_WORLD_38;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_39") == 0){
return MLV_KEYBOARD_WORLD_39;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_40") == 0){
return MLV_KEYBOARD_WORLD_40;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_41") == 0){
return MLV_KEYBOARD_WORLD_41;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_42") == 0){
return MLV_KEYBOARD_WORLD_42;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_43") == 0){
return MLV_KEYBOARD_WORLD_43;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_44") == 0){
return MLV_KEYBOARD_WORLD_44;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_45") == 0){
return MLV_KEYBOARD_WORLD_45;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_46") == 0){
return MLV_KEYBOARD_WORLD_46;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_47") == 0){
return MLV_KEYBOARD_WORLD_47;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_48") == 0){
return MLV_KEYBOARD_WORLD_48;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_49") == 0){
return MLV_KEYBOARD_WORLD_49;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_50") == 0){
return MLV_KEYBOARD_WORLD_50;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_51") == 0){
return MLV_KEYBOARD_WORLD_51;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_52") == 0){
return MLV_KEYBOARD_WORLD_52;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_53") == 0){
return MLV_KEYBOARD_WORLD_53;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_54") == 0){
return MLV_KEYBOARD_WORLD_54;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_55") == 0){
return MLV_KEYBOARD_WORLD_55;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_56") == 0){
return MLV_KEYBOARD_WORLD_56;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_57") == 0){
return MLV_KEYBOARD_WORLD_57;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_58") == 0){
return MLV_KEYBOARD_WORLD_58;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_59") == 0){
return MLV_KEYBOARD_WORLD_59;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_60") == 0){
return MLV_KEYBOARD_WORLD_60;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_61") == 0){
return MLV_KEYBOARD_WORLD_61;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_62") == 0){
return MLV_KEYBOARD_WORLD_62;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_63") == 0){
return MLV_KEYBOARD_WORLD_63;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_64") == 0){
return MLV_KEYBOARD_WORLD_64;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_65") == 0){
return MLV_KEYBOARD_WORLD_65;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_66") == 0){
return MLV_KEYBOARD_WORLD_66;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_67") == 0){
return MLV_KEYBOARD_WORLD_67;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_68") == 0){
return MLV_KEYBOARD_WORLD_68;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_69") == 0){
return MLV_KEYBOARD_WORLD_69;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_70") == 0){
return MLV_KEYBOARD_WORLD_70;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_71") == 0){
return MLV_KEYBOARD_WORLD_71;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_72") == 0){
return MLV_KEYBOARD_WORLD_72;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_73") == 0){
return MLV_KEYBOARD_WORLD_73;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_74") == 0){
return MLV_KEYBOARD_WORLD_74;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_75") == 0){
return MLV_KEYBOARD_WORLD_75;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_76") == 0){
return MLV_KEYBOARD_WORLD_76;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_77") == 0){
return MLV_KEYBOARD_WORLD_77;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_78") == 0){
return MLV_KEYBOARD_WORLD_78;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_79") == 0){
return MLV_KEYBOARD_WORLD_79;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_80") == 0){
return MLV_KEYBOARD_WORLD_80;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_81") == 0){
return MLV_KEYBOARD_WORLD_81;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_82") == 0){
return MLV_KEYBOARD_WORLD_82;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_83") == 0){
return MLV_KEYBOARD_WORLD_83;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_84") == 0){
return MLV_KEYBOARD_WORLD_84;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_85") == 0){
return MLV_KEYBOARD_WORLD_85;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_86") == 0){
return MLV_KEYBOARD_WORLD_86;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_87") == 0){
return MLV_KEYBOARD_WORLD_87;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_88") == 0){
return MLV_KEYBOARD_WORLD_88;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_89") == 0){
return MLV_KEYBOARD_WORLD_89;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_90") == 0){
return MLV_KEYBOARD_WORLD_90;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_91") == 0){
return MLV_KEYBOARD_WORLD_91;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_92") == 0){
return MLV_KEYBOARD_WORLD_92;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_93") == 0){
return MLV_KEYBOARD_WORLD_93;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_94") == 0){
return MLV_KEYBOARD_WORLD_94;
}
if(strcmp(key_string,"MLV_KEYBOARD_WORLD_95") == 0){
return MLV_KEYBOARD_WORLD_95;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP0") == 0){
return MLV_KEYBOARD_KP0;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP1") == 0){
return MLV_KEYBOARD_KP1;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP2") == 0){
return MLV_KEYBOARD_KP2;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP3") == 0){
return MLV_KEYBOARD_KP3;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP4") == 0){
return MLV_KEYBOARD_KP4;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP5") == 0){
return MLV_KEYBOARD_KP5;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP6") == 0){
return MLV_KEYBOARD_KP6;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP7") == 0){
return MLV_KEYBOARD_KP7;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP8") == 0){
return MLV_KEYBOARD_KP8;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP9") == 0){
return MLV_KEYBOARD_KP9;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_PERIOD") == 0){
return MLV_KEYBOARD_KP_PERIOD;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_DIVIDE") == 0){
return MLV_KEYBOARD_KP_DIVIDE;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_MULTIPLY") == 0){
return MLV_KEYBOARD_KP_MULTIPLY;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_MINUS") == 0){
return MLV_KEYBOARD_KP_MINUS;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_PLUS") == 0){
return MLV_KEYBOARD_KP_PLUS;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_ENTER") == 0){
return MLV_KEYBOARD_KP_ENTER;
}
if(strcmp(key_string,"MLV_KEYBOARD_KP_EQUALS") == 0){
return MLV_KEYBOARD_KP_EQUALS;
}
if(strcmp(key_string,"MLV_KEYBOARD_UP") == 0){
return MLV_KEYBOARD_UP;
}
if(strcmp(key_string,"MLV_KEYBOARD_DOWN") == 0){
return MLV_KEYBOARD_DOWN;
}
if(strcmp(key_string,"MLV_KEYBOARD_RIGHT") == 0){
return MLV_KEYBOARD_RIGHT;
}
if(strcmp(key_string,"MLV_KEYBOARD_LEFT") == 0){
return MLV_KEYBOARD_LEFT;
}
if(strcmp(key_string,"MLV_KEYBOARD_INSERT") == 0){
return MLV_KEYBOARD_INSERT;
}
if(strcmp(key_string,"MLV_KEYBOARD_HOME") == 0){
return MLV_KEYBOARD_HOME;
}
if(strcmp(key_string,"MLV_KEYBOARD_END") == 0){
return MLV_KEYBOARD_END;
}
if(strcmp(key_string,"MLV_KEYBOARD_PAGEUP") == 0){
return MLV_KEYBOARD_PAGEUP;
}
if(strcmp(key_string,"MLV_KEYBOARD_PAGEDOWN") == 0){
return MLV_KEYBOARD_PAGEDOWN;
}
if(strcmp(key_string,"MLV_KEYBOARD_F1") == 0){
return MLV_KEYBOARD_F1;
}
if(strcmp(key_string,"MLV_KEYBOARD_F2") == 0){
return MLV_KEYBOARD_F2;
}
if(strcmp(key_string,"MLV_KEYBOARD_F3") == 0){
return MLV_KEYBOARD_F3;
}
if(strcmp(key_string,"MLV_KEYBOARD_F4") == 0){
return MLV_KEYBOARD_F4;
}
if(strcmp(key_string,"MLV_KEYBOARD_F5") == 0){
return MLV_KEYBOARD_F5;
}
if(strcmp(key_string,"MLV_KEYBOARD_F6") == 0){
return MLV_KEYBOARD_F6;
}
if(strcmp(key_string,"MLV_KEYBOARD_F7") == 0){
return MLV_KEYBOARD_F7;
}
if(strcmp(key_string,"MLV_KEYBOARD_F8") == 0){
return MLV_KEYBOARD_F8;
}
if(strcmp(key_string,"MLV_KEYBOARD_F9") == 0){
return MLV_KEYBOARD_F9;
}
if(strcmp(key_string,"MLV_KEYBOARD_F10") == 0){
return MLV_KEYBOARD_F10;
}
if(strcmp(key_string,"MLV_KEYBOARD_F11") == 0){
return MLV_KEYBOARD_F11;
}
if(strcmp(key_string,"MLV_KEYBOARD_F12") == 0){
return MLV_KEYBOARD_F12;
}
if(strcmp(key_string,"MLV_KEYBOARD_F13") == 0){
return MLV_KEYBOARD_F13;
}
if(strcmp(key_string,"MLV_KEYBOARD_F14") == 0){
return MLV_KEYBOARD_F14;
}
if(strcmp(key_string,"MLV_KEYBOARD_F15") == 0){
return MLV_KEYBOARD_F15;
}
if(strcmp(key_string,"MLV_KEYBOARD_NUMLOCK") == 0){
return MLV_KEYBOARD_NUMLOCK;
}
if(strcmp(key_string,"MLV_KEYBOARD_CAPSLOCK") == 0){
return MLV_KEYBOARD_CAPSLOCK;
}
if(strcmp(key_string,"MLV_KEYBOARD_SCROLLOCK") == 0){
return MLV_KEYBOARD_SCROLLOCK;
}
if(strcmp(key_string,"MLV_KEYBOARD_RSHIFT") == 0){
return MLV_KEYBOARD_RSHIFT;
}
if(strcmp(key_string,"MLV_KEYBOARD_LSHIFT") == 0){
return MLV_KEYBOARD_LSHIFT;
}
if(strcmp(key_string,"MLV_KEYBOARD_RCTRL") == 0){
return MLV_KEYBOARD_RCTRL;
}
if(strcmp(key_string,"MLV_KEYBOARD_LCTRL") == 0){
return MLV_KEYBOARD_LCTRL;
}
if(strcmp(key_string,"MLV_KEYBOARD_RALT") == 0){
return MLV_KEYBOARD_RALT;
}
if(strcmp(key_string,"MLV_KEYBOARD_LALT") == 0){
return MLV_KEYBOARD_LALT;
}
if(strcmp(key_string,"MLV_KEYBOARD_RMETA") == 0){
return MLV_KEYBOARD_RMETA;
}
if(strcmp(key_string,"MLV_KEYBOARD_LMETA") == 0){
return MLV_KEYBOARD_LMETA;
}
if(strcmp(key_string,"MLV_KEYBOARD_LSUPER") == 0){
return MLV_KEYBOARD_LSUPER;
}
if(strcmp(key_string,"MLV_KEYBOARD_RSUPER") == 0){
return MLV_KEYBOARD_RSUPER;
}
if(strcmp(key_string,"MLV_KEYBOARD_MODE") == 0){
return MLV_KEYBOARD_MODE;
}
if(strcmp(key_string,"MLV_KEYBOARD_COMPOSE") == 0){
return MLV_KEYBOARD_COMPOSE;
}
if(strcmp(key_string,"MLV_KEYBOARD_HELP") == 0){
return MLV_KEYBOARD_HELP;
}
if(strcmp(key_string,"MLV_KEYBOARD_PRINT") == 0){
return MLV_KEYBOARD_PRINT;
}
if(strcmp(key_string,"MLV_KEYBOARD_SYSREQ") == 0){
return MLV_KEYBOARD_SYSREQ;
}
if(strcmp(key_string,"MLV_KEYBOARD_BREAK") == 0){
return MLV_KEYBOARD_BREAK;
}
if(strcmp(key_string,"MLV_KEYBOARD_MENU") == 0){
return MLV_KEYBOARD_MENU;
}
if(strcmp(key_string,"MLV_KEYBOARD_POWER") == 0){
return MLV_KEYBOARD_POWER;
}
if(strcmp(key_string,"MLV_KEYBOARD_EURO") == 0){
return MLV_KEYBOARD_EURO;
}
if(strcmp(key_string,"MLV_KEYBOARD_UNDO") == 0){
return MLV_KEYBOARD_UNDO;
}
if(strcmp(key_string,"MLV_KEYBOARD_LAST") == 0){
return MLV_KEYBOARD_LAST;
}
ERROR( "Keyboard type unexpected" );
return 0;
}
const char* MLV_convert_keyboard_button_to_string( MLV_Keyboard_button key_code ){
switch( key_code ){
case MLV_KEYBOARD_UNKNOWN :
return "MLV_KEYBOARD_UNKNOWN";
case MLV_KEYBOARD_BACKSPACE :
return "MLV_KEYBOARD_BACKSPACE";
case MLV_KEYBOARD_TAB :
return "MLV_KEYBOARD_TAB";
case MLV_KEYBOARD_CLEAR :
return "MLV_KEYBOARD_CLEAR";
case MLV_KEYBOARD_RETURN :
return "MLV_KEYBOARD_RETURN";
case MLV_KEYBOARD_PAUSE :
return "MLV_KEYBOARD_PAUSE";
case MLV_KEYBOARD_ESCAPE :
return "MLV_KEYBOARD_ESCAPE";
case MLV_KEYBOARD_SPACE :
return "MLV_KEYBOARD_SPACE";
case MLV_KEYBOARD_EXCLAIM :
return "MLV_KEYBOARD_EXCLAIM";
case MLV_KEYBOARD_QUOTEDBL :
return "MLV_KEYBOARD_QUOTEDBL";
case MLV_KEYBOARD_HASH :
return "MLV_KEYBOARD_HASH";
case MLV_KEYBOARD_DOLLAR :
return "MLV_KEYBOARD_DOLLAR";
case MLV_KEYBOARD_AMPERSAND :
return "MLV_KEYBOARD_AMPERSAND";
case MLV_KEYBOARD_QUOTE :
return "MLV_KEYBOARD_QUOTE";
case MLV_KEYBOARD_LEFTPAREN :
return "MLV_KEYBOARD_LEFTPAREN";
case MLV_KEYBOARD_RIGHTPAREN :
return "MLV_KEYBOARD_RIGHTPAREN";
case MLV_KEYBOARD_ASTERISK :
return "MLV_KEYBOARD_ASTERISK";
case MLV_KEYBOARD_PLUS :
return "MLV_KEYBOARD_PLUS";
case MLV_KEYBOARD_COMMA :
return "MLV_KEYBOARD_COMMA";
case MLV_KEYBOARD_MINUS :
return "MLV_KEYBOARD_MINUS";
case MLV_KEYBOARD_PERIOD :
return "MLV_KEYBOARD_PERIOD";
case MLV_KEYBOARD_SLASH :
return "MLV_KEYBOARD_SLASH";
case MLV_KEYBOARD_0 :
return "MLV_KEYBOARD_0";
case MLV_KEYBOARD_1 :
return "MLV_KEYBOARD_1";
case MLV_KEYBOARD_2 :
return "MLV_KEYBOARD_2";
case MLV_KEYBOARD_3 :
return "MLV_KEYBOARD_3";
case MLV_KEYBOARD_4 :
return "MLV_KEYBOARD_4";
case MLV_KEYBOARD_5 :
return "MLV_KEYBOARD_5";
case MLV_KEYBOARD_6 :
return "MLV_KEYBOARD_6";
case MLV_KEYBOARD_7 :
return "MLV_KEYBOARD_7";
case MLV_KEYBOARD_8 :
return "MLV_KEYBOARD_8";
case MLV_KEYBOARD_9 :
return "MLV_KEYBOARD_9";
case MLV_KEYBOARD_COLON :
return "MLV_KEYBOARD_COLON";
case MLV_KEYBOARD_SEMICOLON :
return "MLV_KEYBOARD_SEMICOLON";
case MLV_KEYBOARD_LESS :
return "MLV_KEYBOARD_LESS";
case MLV_KEYBOARD_EQUALS :
return "MLV_KEYBOARD_EQUALS";
case MLV_KEYBOARD_GREATER :
return "MLV_KEYBOARD_GREATER";
case MLV_KEYBOARD_QUESTION :
return "MLV_KEYBOARD_QUESTION";
case MLV_KEYBOARD_AT :
return "MLV_KEYBOARD_AT";
case MLV_KEYBOARD_LEFTBRACKET :
return "MLV_KEYBOARD_LEFTBRACKET";
case MLV_KEYBOARD_BACKSLASH :
return "MLV_KEYBOARD_BACKSLASH";
case MLV_KEYBOARD_RIGHTBRACKET :
return "MLV_KEYBOARD_RIGHTBRACKET";
case MLV_KEYBOARD_CARET :
return "MLV_KEYBOARD_CARET";
case MLV_KEYBOARD_UNDERSCORE :
return "MLV_KEYBOARD_UNDERSCORE";
case MLV_KEYBOARD_BACKQUOTE :
return "MLV_KEYBOARD_BACKQUOTE";
case MLV_KEYBOARD_a :
return "MLV_KEYBOARD_a";
case MLV_KEYBOARD_b :
return "MLV_KEYBOARD_b";
case MLV_KEYBOARD_c :
return "MLV_KEYBOARD_c";
case MLV_KEYBOARD_d :
return "MLV_KEYBOARD_d";
case MLV_KEYBOARD_e :
return "MLV_KEYBOARD_e";
case MLV_KEYBOARD_f :
return "MLV_KEYBOARD_f";
case MLV_KEYBOARD_g :
return "MLV_KEYBOARD_g";
case MLV_KEYBOARD_h :
return "MLV_KEYBOARD_h";
case MLV_KEYBOARD_i :
return "MLV_KEYBOARD_i";
case MLV_KEYBOARD_j :
return "MLV_KEYBOARD_j";
case MLV_KEYBOARD_k :
return "MLV_KEYBOARD_k";
case MLV_KEYBOARD_l :
return "MLV_KEYBOARD_l";
case MLV_KEYBOARD_m :
return "MLV_KEYBOARD_m";
case MLV_KEYBOARD_n :
return "MLV_KEYBOARD_n";
case MLV_KEYBOARD_o :
return "MLV_KEYBOARD_o";
case MLV_KEYBOARD_p :
return "MLV_KEYBOARD_p";
case MLV_KEYBOARD_q :
return "MLV_KEYBOARD_q";
case MLV_KEYBOARD_r :
return "MLV_KEYBOARD_r";
case MLV_KEYBOARD_s :
return "MLV_KEYBOARD_s";
case MLV_KEYBOARD_t :
return "MLV_KEYBOARD_t";
case MLV_KEYBOARD_u :
return "MLV_KEYBOARD_u";
case MLV_KEYBOARD_v :
return "MLV_KEYBOARD_v";
case MLV_KEYBOARD_w :
return "MLV_KEYBOARD_w";
case MLV_KEYBOARD_x :
return "MLV_KEYBOARD_x";
case MLV_KEYBOARD_y :
return "MLV_KEYBOARD_y";
case MLV_KEYBOARD_z :
return "MLV_KEYBOARD_z";
case MLV_KEYBOARD_DELETE :
return "MLV_KEYBOARD_DELETE";
case MLV_KEYBOARD_WORLD_0 :
return "MLV_KEYBOARD_WORLD_0";
case MLV_KEYBOARD_WORLD_1 :
return "MLV_KEYBOARD_WORLD_1";
case MLV_KEYBOARD_WORLD_2 :
return "MLV_KEYBOARD_WORLD_2";
case MLV_KEYBOARD_WORLD_3 :
return "MLV_KEYBOARD_WORLD_3";
case MLV_KEYBOARD_WORLD_4 :
return "MLV_KEYBOARD_WORLD_4";
case MLV_KEYBOARD_WORLD_5 :
return "MLV_KEYBOARD_WORLD_5";
case MLV_KEYBOARD_WORLD_6 :
return "MLV_KEYBOARD_WORLD_6";
case MLV_KEYBOARD_WORLD_7 :
return "MLV_KEYBOARD_WORLD_7";
case MLV_KEYBOARD_WORLD_8 :
return "MLV_KEYBOARD_WORLD_8";
case MLV_KEYBOARD_WORLD_9 :
return "MLV_KEYBOARD_WORLD_9";
case MLV_KEYBOARD_WORLD_10 :
return "MLV_KEYBOARD_WORLD_10";
case MLV_KEYBOARD_WORLD_11 :
return "MLV_KEYBOARD_WORLD_11";
case MLV_KEYBOARD_WORLD_12 :
return "MLV_KEYBOARD_WORLD_12";
case MLV_KEYBOARD_WORLD_13 :
return "MLV_KEYBOARD_WORLD_13";
case MLV_KEYBOARD_WORLD_14 :
return "MLV_KEYBOARD_WORLD_14";
case MLV_KEYBOARD_WORLD_15 :
return "MLV_KEYBOARD_WORLD_15";
case MLV_KEYBOARD_WORLD_16 :
return "MLV_KEYBOARD_WORLD_16";
case MLV_KEYBOARD_WORLD_17 :
return "MLV_KEYBOARD_WORLD_17";
case MLV_KEYBOARD_WORLD_18 :
return "MLV_KEYBOARD_WORLD_18";
case MLV_KEYBOARD_WORLD_19 :
return "MLV_KEYBOARD_WORLD_19";
case MLV_KEYBOARD_WORLD_20 :
return "MLV_KEYBOARD_WORLD_20";
case MLV_KEYBOARD_WORLD_21 :
return "MLV_KEYBOARD_WORLD_21";
case MLV_KEYBOARD_WORLD_22 :
return "MLV_KEYBOARD_WORLD_22";
case MLV_KEYBOARD_WORLD_23 :
return "MLV_KEYBOARD_WORLD_23";
case MLV_KEYBOARD_WORLD_24 :
return "MLV_KEYBOARD_WORLD_24";
case MLV_KEYBOARD_WORLD_25 :
return "MLV_KEYBOARD_WORLD_25";
case MLV_KEYBOARD_WORLD_26 :
return "MLV_KEYBOARD_WORLD_26";
case MLV_KEYBOARD_WORLD_27 :
return "MLV_KEYBOARD_WORLD_27";
case MLV_KEYBOARD_WORLD_28 :
return "MLV_KEYBOARD_WORLD_28";
case MLV_KEYBOARD_WORLD_29 :
return "MLV_KEYBOARD_WORLD_29";
case MLV_KEYBOARD_WORLD_30 :
return "MLV_KEYBOARD_WORLD_30";
case MLV_KEYBOARD_WORLD_31 :
return "MLV_KEYBOARD_WORLD_31";
case MLV_KEYBOARD_WORLD_32 :
return "MLV_KEYBOARD_WORLD_32";
case MLV_KEYBOARD_WORLD_33 :
return "MLV_KEYBOARD_WORLD_33";
case MLV_KEYBOARD_WORLD_34 :
return "MLV_KEYBOARD_WORLD_34";
case MLV_KEYBOARD_WORLD_35 :
return "MLV_KEYBOARD_WORLD_35";
case MLV_KEYBOARD_WORLD_36 :
return "MLV_KEYBOARD_WORLD_36";
case MLV_KEYBOARD_WORLD_37 :
return "MLV_KEYBOARD_WORLD_37";
case MLV_KEYBOARD_WORLD_38 :
return "MLV_KEYBOARD_WORLD_38";
case MLV_KEYBOARD_WORLD_39 :
return "MLV_KEYBOARD_WORLD_39";
case MLV_KEYBOARD_WORLD_40 :
return "MLV_KEYBOARD_WORLD_40";
case MLV_KEYBOARD_WORLD_41 :
return "MLV_KEYBOARD_WORLD_41";
case MLV_KEYBOARD_WORLD_42 :
return "MLV_KEYBOARD_WORLD_42";
case MLV_KEYBOARD_WORLD_43 :
return "MLV_KEYBOARD_WORLD_43";
case MLV_KEYBOARD_WORLD_44 :
return "MLV_KEYBOARD_WORLD_44";
case MLV_KEYBOARD_WORLD_45 :
return "MLV_KEYBOARD_WORLD_45";
case MLV_KEYBOARD_WORLD_46 :
return "MLV_KEYBOARD_WORLD_46";
case MLV_KEYBOARD_WORLD_47 :
return "MLV_KEYBOARD_WORLD_47";
case MLV_KEYBOARD_WORLD_48 :
return "MLV_KEYBOARD_WORLD_48";
case MLV_KEYBOARD_WORLD_49 :
return "MLV_KEYBOARD_WORLD_49";
case MLV_KEYBOARD_WORLD_50 :
return "MLV_KEYBOARD_WORLD_50";
case MLV_KEYBOARD_WORLD_51 :
return "MLV_KEYBOARD_WORLD_51";
case MLV_KEYBOARD_WORLD_52 :
return "MLV_KEYBOARD_WORLD_52";
case MLV_KEYBOARD_WORLD_53 :
return "MLV_KEYBOARD_WORLD_53";
case MLV_KEYBOARD_WORLD_54 :
return "MLV_KEYBOARD_WORLD_54";
case MLV_KEYBOARD_WORLD_55 :
return "MLV_KEYBOARD_WORLD_55";
case MLV_KEYBOARD_WORLD_56 :
return "MLV_KEYBOARD_WORLD_56";
case MLV_KEYBOARD_WORLD_57 :
return "MLV_KEYBOARD_WORLD_57";
case MLV_KEYBOARD_WORLD_58 :
return "MLV_KEYBOARD_WORLD_58";
case MLV_KEYBOARD_WORLD_59 :
return "MLV_KEYBOARD_WORLD_59";
case MLV_KEYBOARD_WORLD_60 :
return "MLV_KEYBOARD_WORLD_60";
case MLV_KEYBOARD_WORLD_61 :
return "MLV_KEYBOARD_WORLD_61";
case MLV_KEYBOARD_WORLD_62 :
return "MLV_KEYBOARD_WORLD_62";
case MLV_KEYBOARD_WORLD_63 :
return "MLV_KEYBOARD_WORLD_63";
case MLV_KEYBOARD_WORLD_64 :
return "MLV_KEYBOARD_WORLD_64";
case MLV_KEYBOARD_WORLD_65 :
return "MLV_KEYBOARD_WORLD_65";
case MLV_KEYBOARD_WORLD_66 :
return "MLV_KEYBOARD_WORLD_66";
case MLV_KEYBOARD_WORLD_67 :
return "MLV_KEYBOARD_WORLD_67";
case MLV_KEYBOARD_WORLD_68 :
return "MLV_KEYBOARD_WORLD_68";
case MLV_KEYBOARD_WORLD_69 :
return "MLV_KEYBOARD_WORLD_69";
case MLV_KEYBOARD_WORLD_70 :
return "MLV_KEYBOARD_WORLD_70";
case MLV_KEYBOARD_WORLD_71 :
return "MLV_KEYBOARD_WORLD_71";
case MLV_KEYBOARD_WORLD_72 :
return "MLV_KEYBOARD_WORLD_72";
case MLV_KEYBOARD_WORLD_73 :
return "MLV_KEYBOARD_WORLD_73";
case MLV_KEYBOARD_WORLD_74 :
return "MLV_KEYBOARD_WORLD_74";
case MLV_KEYBOARD_WORLD_75 :
return "MLV_KEYBOARD_WORLD_75";
case MLV_KEYBOARD_WORLD_76 :
return "MLV_KEYBOARD_WORLD_76";
case MLV_KEYBOARD_WORLD_77 :
return "MLV_KEYBOARD_WORLD_77";
case MLV_KEYBOARD_WORLD_78 :
return "MLV_KEYBOARD_WORLD_78";
case MLV_KEYBOARD_WORLD_79 :
return "MLV_KEYBOARD_WORLD_79";
case MLV_KEYBOARD_WORLD_80 :
return "MLV_KEYBOARD_WORLD_80";
case MLV_KEYBOARD_WORLD_81 :
return "MLV_KEYBOARD_WORLD_81";
case MLV_KEYBOARD_WORLD_82 :
return "MLV_KEYBOARD_WORLD_82";
case MLV_KEYBOARD_WORLD_83 :
return "MLV_KEYBOARD_WORLD_83";
case MLV_KEYBOARD_WORLD_84 :
return "MLV_KEYBOARD_WORLD_84";
case MLV_KEYBOARD_WORLD_85 :
return "MLV_KEYBOARD_WORLD_85";
case MLV_KEYBOARD_WORLD_86 :
return "MLV_KEYBOARD_WORLD_86";
case MLV_KEYBOARD_WORLD_87 :
return "MLV_KEYBOARD_WORLD_87";
case MLV_KEYBOARD_WORLD_88 :
return "MLV_KEYBOARD_WORLD_88";
case MLV_KEYBOARD_WORLD_89 :
return "MLV_KEYBOARD_WORLD_89";
case MLV_KEYBOARD_WORLD_90 :
return "MLV_KEYBOARD_WORLD_90";
case MLV_KEYBOARD_WORLD_91 :
return "MLV_KEYBOARD_WORLD_91";
case MLV_KEYBOARD_WORLD_92 :
return "MLV_KEYBOARD_WORLD_92";
case MLV_KEYBOARD_WORLD_93 :
return "MLV_KEYBOARD_WORLD_93";
case MLV_KEYBOARD_WORLD_94 :
return "MLV_KEYBOARD_WORLD_94";
case MLV_KEYBOARD_WORLD_95 :
return "MLV_KEYBOARD_WORLD_95";
case MLV_KEYBOARD_KP0 :
return "MLV_KEYBOARD_KP0";
case MLV_KEYBOARD_KP1 :
return "MLV_KEYBOARD_KP1";
case MLV_KEYBOARD_KP2 :
return "MLV_KEYBOARD_KP2";
case MLV_KEYBOARD_KP3 :
return "MLV_KEYBOARD_KP3";
case MLV_KEYBOARD_KP4 :
return "MLV_KEYBOARD_KP4";
case MLV_KEYBOARD_KP5 :
return "MLV_KEYBOARD_KP5";
case MLV_KEYBOARD_KP6 :
return "MLV_KEYBOARD_KP6";
case MLV_KEYBOARD_KP7 :
return "MLV_KEYBOARD_KP7";
case MLV_KEYBOARD_KP8 :
return "MLV_KEYBOARD_KP8";
case MLV_KEYBOARD_KP9 :
return "MLV_KEYBOARD_KP9";
case MLV_KEYBOARD_KP_PERIOD :
return "MLV_KEYBOARD_KP_PERIOD";
case MLV_KEYBOARD_KP_DIVIDE :
return "MLV_KEYBOARD_KP_DIVIDE";
case MLV_KEYBOARD_KP_MULTIPLY :
return "MLV_KEYBOARD_KP_MULTIPLY";
case MLV_KEYBOARD_KP_MINUS :
return "MLV_KEYBOARD_KP_MINUS";
case MLV_KEYBOARD_KP_PLUS :
return "MLV_KEYBOARD_KP_PLUS";
case MLV_KEYBOARD_KP_ENTER :
return "MLV_KEYBOARD_KP_ENTER";
case MLV_KEYBOARD_KP_EQUALS :
return "MLV_KEYBOARD_KP_EQUALS";
case MLV_KEYBOARD_UP :
return "MLV_KEYBOARD_UP";
case MLV_KEYBOARD_DOWN :
return "MLV_KEYBOARD_DOWN";
case MLV_KEYBOARD_RIGHT :
return "MLV_KEYBOARD_RIGHT";
case MLV_KEYBOARD_LEFT :
return "MLV_KEYBOARD_LEFT";
case MLV_KEYBOARD_INSERT :
return "MLV_KEYBOARD_INSERT";
case MLV_KEYBOARD_HOME :
return "MLV_KEYBOARD_HOME";
case MLV_KEYBOARD_END :
return "MLV_KEYBOARD_END";
case MLV_KEYBOARD_PAGEUP :
return "MLV_KEYBOARD_PAGEUP";
case MLV_KEYBOARD_PAGEDOWN :
return "MLV_KEYBOARD_PAGEDOWN";
case MLV_KEYBOARD_F1 :
return "MLV_KEYBOARD_F1";
case MLV_KEYBOARD_F2 :
return "MLV_KEYBOARD_F2";
case MLV_KEYBOARD_F3 :
return "MLV_KEYBOARD_F3";
case MLV_KEYBOARD_F4 :
return "MLV_KEYBOARD_F4";
case MLV_KEYBOARD_F5 :
return "MLV_KEYBOARD_F5";
case MLV_KEYBOARD_F6 :
return "MLV_KEYBOARD_F6";
case MLV_KEYBOARD_F7 :
return "MLV_KEYBOARD_F7";
case MLV_KEYBOARD_F8 :
return "MLV_KEYBOARD_F8";
case MLV_KEYBOARD_F9 :
return "MLV_KEYBOARD_F9";
case MLV_KEYBOARD_F10 :
return "MLV_KEYBOARD_F10";
case MLV_KEYBOARD_F11 :
return "MLV_KEYBOARD_F11";
case MLV_KEYBOARD_F12 :
return "MLV_KEYBOARD_F12";
case MLV_KEYBOARD_F13 :
return "MLV_KEYBOARD_F13";
case MLV_KEYBOARD_F14 :
return "MLV_KEYBOARD_F14";
case MLV_KEYBOARD_F15 :
return "MLV_KEYBOARD_F15";
case MLV_KEYBOARD_NUMLOCK :
return "MLV_KEYBOARD_NUMLOCK";
case MLV_KEYBOARD_CAPSLOCK :
return "MLV_KEYBOARD_CAPSLOCK";
case MLV_KEYBOARD_SCROLLOCK :
return "MLV_KEYBOARD_SCROLLOCK";
case MLV_KEYBOARD_RSHIFT :
return "MLV_KEYBOARD_RSHIFT";
case MLV_KEYBOARD_LSHIFT :
return "MLV_KEYBOARD_LSHIFT";
case MLV_KEYBOARD_RCTRL :
return "MLV_KEYBOARD_RCTRL";
case MLV_KEYBOARD_LCTRL :
return "MLV_KEYBOARD_LCTRL";
case MLV_KEYBOARD_RALT :
return "MLV_KEYBOARD_RALT";
case MLV_KEYBOARD_LALT :
return "MLV_KEYBOARD_LALT";
case MLV_KEYBOARD_RMETA :
return "MLV_KEYBOARD_RMETA";
case MLV_KEYBOARD_LMETA :
return "MLV_KEYBOARD_LMETA";
case MLV_KEYBOARD_LSUPER :
return "MLV_KEYBOARD_LSUPER";
case MLV_KEYBOARD_RSUPER :
return "MLV_KEYBOARD_RSUPER";
case MLV_KEYBOARD_MODE :
return "MLV_KEYBOARD_MODE";
case MLV_KEYBOARD_COMPOSE :
return "MLV_KEYBOARD_COMPOSE";
case MLV_KEYBOARD_HELP :
return "MLV_KEYBOARD_HELP";
case MLV_KEYBOARD_PRINT :
return "MLV_KEYBOARD_PRINT";
case MLV_KEYBOARD_SYSREQ :
return "MLV_KEYBOARD_SYSREQ";
case MLV_KEYBOARD_BREAK :
return "MLV_KEYBOARD_BREAK";
case MLV_KEYBOARD_MENU :
return "MLV_KEYBOARD_MENU";
case MLV_KEYBOARD_POWER :
return "MLV_KEYBOARD_POWER";
case MLV_KEYBOARD_EURO :
return "MLV_KEYBOARD_EURO";
case MLV_KEYBOARD_UNDO :
return "MLV_KEYBOARD_UNDO";
case MLV_KEYBOARD_LAST :
return "MLV_KEYBOARD_LAST";
default :
ERROR("Keyboard code unexpected");
}
}
char* MLV_convert_keyboard_mod_to_string( MLV_Keyboard_modifier keymod_code ){
int text_size = 0;
char* text;
char* result;
int nb = 0;
if( keymod_code == MLV_KEYBOARD_KMOD_NONE ){
text = "MLV_KEYBOARD_KMOD_NONE";
result = MLV_MALLOC( strlen(text)+1, char );
sprintf( result, "%s", text );
return result;
}
if( keymod_code & MLV_KEYBOARD_KMOD_NONE ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_NONE" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LSHIFT ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_LSHIFT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RSHIFT ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_RSHIFT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LCTRL ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_LCTRL" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RCTRL ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_RCTRL" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LALT ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_LALT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RALT ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_RALT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LMETA ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_LMETA" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RMETA ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_RMETA" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_NUM ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_NUM" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_CAPS ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_CAPS" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_MODE ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_MODE" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RESERVED ){
if( nb>0 ){
text_size += 3;
}
text_size += strlen( "MLV_KEYBOARD_KMOD_RESERVED" );
nb += 1;
}
text = MLV_MALLOC( text_size+1, char );
text[text_size] = '\0';
result = text;
nb = 0;
if( keymod_code & MLV_KEYBOARD_KMOD_NONE ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_NONE" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LSHIFT ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_LSHIFT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RSHIFT ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_RSHIFT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LCTRL ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_LCTRL" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RCTRL ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_RCTRL" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LALT ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_LALT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RALT ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_RALT" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_LMETA ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_LMETA" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RMETA ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_RMETA" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_NUM ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_NUM" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_CAPS ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_CAPS" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_MODE ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_MODE" );
nb += 1;
}
if( keymod_code & MLV_KEYBOARD_KMOD_RESERVED ){
if( nb>0 ){
text += sprintf( text, " | " );
}
text += sprintf( text, "MLV_KEYBOARD_KMOD_RESERVED" );
nb += 1;
}
return result;
}
MLV_Button_state MLV_get_keyboard_state( MLV_Keyboard_button keyboard_code ){
SDL_PumpEvents();
Uint8* keyboard_states = SDL_GetKeyState( NULL );
if( keyboard_states[ keyboard_code ] ) return MLV_PRESSED;
return MLV_RELEASED;
}
int MLV_left_shift_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_LSHIFT;
}
int MLV_right_shift_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_RSHIFT;
}
int MLV_shift_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & ( MLV_KEYBOARD_KMOD_LSHIFT | MLV_KEYBOARD_KMOD_RSHIFT );
}
int MLV_left_ctrl_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_LCTRL;
}
int MLV_right_ctrl_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_RCTRL;
}
int MLV_ctrl_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & ( MLV_KEYBOARD_KMOD_LCTRL | MLV_KEYBOARD_KMOD_RCTRL );
}
int MLV_left_alt_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_LALT;
}
int MLV_right_alt_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_RALT;
}
int MLV_alt_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & ( MLV_KEYBOARD_KMOD_LALT | MLV_KEYBOARD_KMOD_RALT );
}
int MLV_left_meta_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_LMETA;
}
int MLV_right_meta_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_RMETA;
}
int MLV_meta_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & ( MLV_KEYBOARD_KMOD_LMETA | MLV_KEYBOARD_KMOD_RMETA );
}
int MLV_num_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_NUM;
}
int MLV_caps_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_CAPS;
}
int MLV_mode_key_was_pressed(
MLV_Keyboard_modifier modifier_code
){
return modifier_code & MLV_KEYBOARD_KMOD_MODE;
}