| 8963 | } |
| 8964 | |
| 8965 | static int get_event_data (const struct inputdevice_functions *id, int devnum, int num, int *eventid, TCHAR **custom, uae_u64 *flags, int *port, int sub) |
| 8966 | { |
| 8967 | const struct uae_input_device *uid = get_uid (id, devnum); |
| 8968 | int type = id->get_widget_type (devnum, num, 0, 0); |
| 8969 | int i; |
| 8970 | if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) { |
| 8971 | i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET; |
| 8972 | *eventid = uid->eventid[i][sub]; |
| 8973 | if (flags) |
| 8974 | *flags = uid->flags[i][sub]; |
| 8975 | if (port) |
| 8976 | *port = uid->port[i][sub]; |
| 8977 | if (custom) |
| 8978 | *custom = uid->custom[i][sub]; |
| 8979 | return i; |
| 8980 | } else if (type == IDEV_WIDGET_AXIS) { |
| 8981 | i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET; |
| 8982 | *eventid = uid->eventid[i][sub]; |
| 8983 | if (flags) |
| 8984 | *flags = uid->flags[i][sub]; |
| 8985 | if (port) |
| 8986 | *port = uid->port[i][sub]; |
| 8987 | if (custom) |
| 8988 | *custom = uid->custom[i][sub]; |
| 8989 | return i; |
| 8990 | } else if (type == IDEV_WIDGET_KEY) { |
| 8991 | i = num - id->get_widget_first (devnum, type); |
| 8992 | *eventid = uid->eventid[i][sub]; |
| 8993 | if (flags) |
| 8994 | *flags = uid->flags[i][sub]; |
| 8995 | if (port) |
| 8996 | *port = uid->port[i][sub]; |
| 8997 | if (custom) |
| 8998 | *custom = uid->custom[i][sub]; |
| 8999 | return i; |
| 9000 | } |
| 9001 | return -1; |
| 9002 | } |
| 9003 | |
| 9004 | static TCHAR *stripstrdup (const TCHAR *s) |
| 9005 | { |
no test coverage detected