Create input_config_get_bind_idx

This commit is contained in:
twinaphex 2017-01-13 15:42:30 +01:00
parent 0387e5e470
commit 4ebf4d6938
3 changed files with 18 additions and 5 deletions

View File

@ -485,6 +485,18 @@ void input_config_set_device_name(unsigned port, const char *name)
sizeof(settings->input.device_names[port]));
}
bool input_config_get_bind_idx(unsigned port, unsigned *joy_idx_real)
{
settings_t *settings = config_get_ptr();
unsigned joy_idx = settings->input.joypad_map[port];
if (joy_idx >= MAX_USERS)
return false;
*joy_idx_real = joy_idx;
return true;
}
const struct retro_keybind *input_config_get_bind_auto(unsigned port, unsigned id)
{
settings_t *settings = config_get_ptr();

View File

@ -211,15 +211,14 @@ const char *input_joypad_name(const input_device_driver_t *drv,
bool input_joypad_set_rumble(const input_device_driver_t *drv,
unsigned port, enum retro_rumble_effect effect, uint16_t strength)
{
settings_t *settings = config_get_ptr();
unsigned joy_idx = settings->input.joypad_map[port];
unsigned joy_idx = 0;
if (!input_config_get_bind_idx(port, &joy_idx))
return false;
if (!drv || !drv->set_rumble)
return false;
if (joy_idx >= MAX_USERS)
return false;
return drv->set_rumble(joy_idx, effect, strength);
}

View File

@ -217,6 +217,8 @@ bool input_joypad_hat_raw(const input_device_driver_t *driver,
const char *input_joypad_name(const input_device_driver_t *driver,
unsigned port);
bool input_config_get_bind_idx(unsigned port, unsigned *joy_idx_real);
extern input_device_driver_t dinput_joypad;
extern input_device_driver_t linuxraw_joypad;
extern input_device_driver_t parport_joypad;