gii_cmd_event - LibGII commands and information events
#include <ggi/events.h>
These are used internally either to the application or the kernel. The same event is used for both Command and Information events. The recipient must not store references to the data. If the data information is needed afterwards, copy it!
gii_cmd_event is the basic structure for evCommand and evInformation events. It may need to be casted to some other structure (depending on code) to access the data.
#define GII_CMD_DATA_MAX (248-sizeof(gii_cmd_nodata_event)) typedef struct gii_cmd_event { COMMON_DATA; uint32 code; /* command/request code */ uint8 data[GII_CMD_DATA_MAX]; /* command related data */ } gii_cmd_event;
One use of evCommand is to convey some capabilities of a GII device:
/* This event is sent/received to require/get the capabilities of a device * as specified in target/origin. * An event stating num_buttons=num_axes=0 says, that the device is inactive, * unplugged, whatever. Devices automatically report (detectable) state * changes via devinfo. But you need to re-query the valinfo records. */ #define GII_CMDCODE_GETDEVINFO (0x01) typedef struct gii_cmddata_getdevinfo { char longname[75]; char shortname[5]; gii_event_mask can_generate; int num_buttons; /* Maximum number of buttons. */ int num_axes; /* Maximum number of axes. */ } gii_cmddata_getdevinfo;
This event is guaranteed to be generated immediately after opening an input source.
can_generate is a mask of all events that the device can generate. num_buttons and num_axes are the number of buttons and axes that the device can report on.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |