que - struct c++
descripciĆ³n de la estructura input_event(de linux/input.h) (1)
¿Puede alguien decirme cuáles son las propiedades de los tipos de datos utilizados por la estructura input_event?
Se define de la siguiente manera en el archivo input.h:
struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};
¡Pero no hay otras descripciones! Incluso el google no me dio nada interesante.
Lo único que sé es que el time
da segundos o milisegundos desde la época y el value
da el código del botón presionado. Pero incluso el valor de la propiedad de value
no es realmente claro para mí. En mi programa cada pulsación genera seis eventos. Los siguientes eventos son la respuesta para presionar la tecla ENTER:
type=4,code=4,value=458792
type=1,code=28,value=1
type=0,code=0,value=0
type=4,code=4,value=458792
type=1,code=28,value=0
type=0,code=0,value=0
y esos son para a
carta:
type=4,code=4,value=458756
type=1,code=30,value=1
type=0,code=0,value=0
atype=4,code=4,value=458756
type=1,code=30,value=0
type=0,code=0,value=0
Me gustaría descifrar el valor de la letra real, pero no entiendo el significado de las propiedades.
¡Por favor ayuda!
La struct input_event
se struct input_event
, entre otros, en include/linux/input.h .
Desde 5. Interfaz de evento en el kernel de Linux Documentation/input/input.txt (y modificado para proporcionar los nombres de archivo de encabezado correctos):
time
es la marca de tiempo, devuelve la hora a la que ocurrió el evento.type
es, por ejemplo,EV_REL
para el momento relativo,EV_KEY
para una pulsación de tecla o liberación. Se definen más tipos en include/linux/input-event-codes.h .code
es uncode
evento, por ejemplo,REL_X
oKEY_BACKSPACE
, nuevamente, una lista completa se encuentra en include/linux/input-event-codes.h .value
es el valor que lleva el evento. Ya sea un cambio relativo paraEV_REL
, un nuevo valor absoluto paraEV_ABS
(joysticks ...), o0
paraEV_KEY
para el lanzamiento,1
para la pulsación de teclas y2
para el autoreeat.
Para obtener guías y código de ejemplo, realice una búsqueda en la web del "linux kernel" "input subsystem"
.