return mapped event from devnum/num/sub
| 9221 | |
| 9222 | // return mapped event from devnum/num/sub |
| 9223 | int inputdevice_get_mapping (int devnum, int num, uae_u64 *pflags, int *pport, TCHAR *name, TCHAR *custom, int sub) |
| 9224 | { |
| 9225 | const struct inputdevice_functions *idf = getidf (devnum); |
| 9226 | const struct uae_input_device *uid = get_uid (idf, inputdevice_get_device_index (devnum)); |
| 9227 | int port, data; |
| 9228 | uae_u64 flags = 0, flag; |
| 9229 | int devindex = inputdevice_get_device_index (devnum); |
| 9230 | TCHAR *customp = NULL; |
| 9231 | |
| 9232 | if (name) |
| 9233 | _tcscpy (name, _T("<none>")); |
| 9234 | if (custom) |
| 9235 | custom[0] = 0; |
| 9236 | if (pflags) |
| 9237 | *pflags = 0; |
| 9238 | if (pport) |
| 9239 | *pport = 0; |
| 9240 | if (uid == 0 || num < 0) |
| 9241 | return 0; |
| 9242 | if (get_event_data (idf, devindex, num, &data, &customp, &flag, &port, sub) < 0) |
| 9243 | return 0; |
| 9244 | if (customp && custom) |
| 9245 | _tcscpy (custom, customp); |
| 9246 | if (flag & ID_FLAG_AUTOFIRE) |
| 9247 | flags |= IDEV_MAPPED_AUTOFIRE_SET; |
| 9248 | if (flag & ID_FLAG_TOGGLE) |
| 9249 | flags |= IDEV_MAPPED_TOGGLE; |
| 9250 | if (flag & ID_FLAG_INVERTTOGGLE) |
| 9251 | flags |= IDEV_MAPPED_INVERTTOGGLE; |
| 9252 | if (flag & ID_FLAG_INVERT) |
| 9253 | flags |= IDEV_MAPPED_INVERT; |
| 9254 | if (flag & ID_FLAG_GAMEPORTSCUSTOM1) |
| 9255 | flags |= IDEV_MAPPED_GAMEPORTSCUSTOM1; |
| 9256 | if (flag & ID_FLAG_GAMEPORTSCUSTOM2) |
| 9257 | flags |= IDEV_MAPPED_GAMEPORTSCUSTOM2; |
| 9258 | if (flag & ID_FLAG_QUALIFIER_MASK) |
| 9259 | flags |= flag & ID_FLAG_QUALIFIER_MASK; |
| 9260 | if (flag & ID_FLAG_SET_ONOFF) |
| 9261 | flags |= IDEV_MAPPED_SET_ONOFF; |
| 9262 | if (flag & ID_FLAG_SET_ONOFF_VAL1) |
| 9263 | flags |= IDEV_MAPPED_SET_ONOFF_VAL1; |
| 9264 | if (flag & ID_FLAG_SET_ONOFF_VAL2) |
| 9265 | flags |= IDEV_MAPPED_SET_ONOFF_VAL2; |
| 9266 | if (pflags) |
| 9267 | *pflags = flags; |
| 9268 | if (pport) |
| 9269 | *pport = port; |
| 9270 | if (!data) |
| 9271 | return 0; |
| 9272 | if (events[data].allow_mask & AM_AF) |
| 9273 | flags |= IDEV_MAPPED_AUTOFIRE_POSSIBLE; |
| 9274 | if (pflags) |
| 9275 | *pflags = flags; |
| 9276 | inputdevice_get_eventname (&events[data], name); |
| 9277 | return data; |
| 9278 | } |
| 9279 | |
| 9280 | // set event name/custom/flags to devnum/num/sub |
no test coverage detected