Mercurial > mplayer.hg
changeset 6394:5dded1a5cfbb
Add support for hex key code in input.conf
author | albeu |
---|---|
date | Wed, 12 Jun 2002 10:39:04 +0000 |
parents | f9b3d010b35e |
children | 9b218a01b74b |
files | input/input.c |
diffstat | 1 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/input/input.c Wed Jun 12 09:31:33 2002 +0000 +++ b/input/input.c Wed Jun 12 10:39:04 2002 +0000 @@ -11,6 +11,7 @@ #include <sys/types.h> #include <sys/time.h> #include <fcntl.h> +#include <ctype.h> #include "input.h" #include "mouse.h" @@ -963,7 +964,7 @@ return ret; } -static char key_str[2]; +static char key_str[12]; static char* mp_input_get_key_name(int key) { @@ -974,21 +975,25 @@ return key_names[i].name; } - if(key >> 8 == 0) { - snprintf(key_str,2,"%c",(char)key); + if(isascii(key)) { + snprintf(key_str,12,"%c",(char)key); return key_str; } - return NULL; + // Print the hex key code + snprintf(key_str,12,"%#-8x",key); + return key_str; + } static int mp_input_get_key_from_name(char* name) { - int i,ret = 0; - if(strlen(name) == 1) { // Direct key code - (char)ret = name[0]; + int i,ret = 0,len = strlen(name); + if(len == 1) { // Direct key code + ret = (unsigned char)name[0]; return ret; - } + } else if(len > 2 && strncasecmp("0x",name,2) == 0) + return strtol(name,NULL,16); for(i = 0; key_names[i].name != NULL; i++) { if(strcasecmp(key_names[i].name,name) == 0)