MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / put_event_data

Function put_event_data

src/inputdevice.cpp:9016–9066  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9014}
9015
9016static int put_event_data (const struct inputdevice_functions *id, int devnum, int num, int eventid, TCHAR *custom, uae_u64 flags, int port, int sub)
9017{
9018 struct uae_input_device *uid = get_uid (id, devnum);
9019 int type = id->get_widget_type (devnum, num, 0, 0);
9020 int i, ret;
9021
9022 for (i = 0; i < MAX_INPUT_QUALIFIERS; i++) {
9023 uae_u64 mask1 = ID_FLAG_QUALIFIER1 << (i * 2);
9024 uae_u64 mask2 = mask1 << 1;
9025 if ((flags & (mask1 | mask2)) == (mask1 | mask2))
9026 flags &= ~mask2;
9027 }
9028 if (custom && custom[0] == 0)
9029 custom = NULL;
9030 if (custom)
9031 eventid = 0;
9032 if (eventid <= 0 && !custom)
9033 flags = 0;
9034
9035 ret = -1;
9036 if (type == IDEV_WIDGET_BUTTON || type == IDEV_WIDGET_BUTTONAXIS) {
9037 i = num - id->get_widget_first (devnum, IDEV_WIDGET_BUTTON) + ID_BUTTON_OFFSET;
9038 uid->eventid[i][sub] = eventid;
9039 uid->flags[i][sub] = flags;
9040 uid->port[i][sub] = port;
9041 xfree (uid->custom[i][sub]);
9042 uid->custom[i][sub] = custom && custom[0] != '\0' ? stripstrdup (custom) : NULL;
9043 ret = i;
9044 } else if (type == IDEV_WIDGET_AXIS) {
9045 i = num - id->get_widget_first (devnum, type) + ID_AXIS_OFFSET;
9046 uid->eventid[i][sub] = eventid;
9047 uid->flags[i][sub] = flags;
9048 uid->port[i][sub] = port;
9049 xfree (uid->custom[i][sub]);
9050 uid->custom[i][sub] = custom && custom[0] != '\0' ? stripstrdup (custom) : NULL;
9051 ret = i;
9052 } else if (type == IDEV_WIDGET_KEY) {
9053 i = num - id->get_widget_first (devnum, type);
9054 uid->eventid[i][sub] = eventid;
9055 uid->flags[i][sub] = flags;
9056 uid->port[i][sub] = port;
9057 xfree (uid->custom[i][sub]);
9058 uid->custom[i][sub] = custom && custom[0] != '\0' ? stripstrdup (custom) : NULL;
9059 ret = i;
9060 }
9061 if (ret < 0)
9062 return -1;
9063 if (uid->custom[i][sub])
9064 uid->eventid[i][sub] = INPUTEVENT_SPC_CUSTOM_EVENT;
9065 return ret;
9066}
9067
9068static int is_event_used (const struct inputdevice_functions *id, int devnum, int isnum, int isevent)
9069{

Callers 1

inputdevice_set_mappingFunction · 0.85

Calls 2

get_uidFunction · 0.85
stripstrdupFunction · 0.85

Tested by

no test coverage detected