Example #1
0
static int16_t udev_analog_pressed(const struct retro_keybind *binds, unsigned idx, unsigned id)
{
   unsigned id_minus = 0;
   unsigned id_plus  = 0;
   int16_t pressed_minus = 0, pressed_plus = 0;

   input_conv_analog_id_to_bind_id(idx, id, &id_minus, &id_plus);

   if (udev_input_is_pressed(binds, id_minus))
      pressed_minus = -0x7fff;
   if (udev_input_is_pressed(binds, id_plus))
      pressed_plus = 0x7fff;

   return pressed_plus + pressed_minus;
}
Example #2
0
static int16_t udev_input_state(void *data, const struct retro_keybind **binds,
      unsigned port, unsigned device, unsigned idx, unsigned id)
{
   int16_t ret;
   udev_input_t *udev = (udev_input_t*)data;

   switch (device)
   {
      case RETRO_DEVICE_JOYPAD:
         return udev_input_is_pressed(udev, binds[port], id) ||
            input_joypad_pressed(udev->joypad, port, binds[port], id);

      case RETRO_DEVICE_ANALOG:
         ret = udev_analog_pressed(udev, binds[port], idx, id);
         if (!ret)
            ret = input_joypad_analog(udev->joypad, port, idx, id, binds[port]);
         return ret;

      case RETRO_DEVICE_KEYBOARD:
         {
            unsigned bit = input_keymaps_translate_rk_to_keysym((enum retro_key)id);
            return id < RETROK_LAST && BIT_GET(udev->key_state, bit);
         }
      case RETRO_DEVICE_MOUSE:
         return udev_mouse_state(udev, id);

      case RETRO_DEVICE_LIGHTGUN:
         return udev_lightgun_state(udev, id);
   }

   return 0;
}
Example #3
0
static int16_t udev_input_state(void *data, const struct retro_keybind **binds,
      unsigned port, unsigned device, unsigned idx, unsigned id)
{
   int16_t ret;
   udev_input_t *udev = (udev_input_t*)data;

   switch (device)
   {
      case RETRO_DEVICE_JOYPAD:
         return udev_input_is_pressed(binds[port], id) ||
            input_joypad_pressed(udev->joypad, port, binds[port], id);

      case RETRO_DEVICE_ANALOG:
         ret = udev_analog_pressed(binds[port], idx, id);
         if (!ret)
            ret = input_joypad_analog(udev->joypad, port, idx, id, binds[port]);
         return ret;

      case RETRO_DEVICE_KEYBOARD:
         return udev_input_state_kb(data, binds, port, device, idx, id);
      case RETRO_DEVICE_MOUSE:
         return udev_mouse_state(udev, id);

      case RETRO_DEVICE_POINTER:
      case RARCH_DEVICE_POINTER_SCREEN:
         return udev_pointer_state(udev, idx, id,
               device == RARCH_DEVICE_POINTER_SCREEN);

      case RETRO_DEVICE_LIGHTGUN:
         return udev_lightgun_state(udev, id);
   }

   return 0;
}
Example #4
0
static bool udev_input_key_pressed(void *data, int key)
{
   udev_input_t *udev   = (udev_input_t*)data;
   settings_t *settings = config_get_ptr();

   return udev_input_is_pressed(udev, settings->input.binds[0], key) ||
      input_joypad_pressed(udev->joypad, 0, settings->input.binds[0], key);
}
Example #5
0
static bool udev_input_key_pressed(void *data, int key)
{
   udev_input_t *udev    = (udev_input_t*)data;
   settings_t *settings  = config_get_ptr();

   if (udev_input_is_pressed(settings->input.binds[0], key))
      return true;
   if (input_joypad_pressed(udev->joypad, 0, settings->input.binds[0], key))
      return true;

   return false;
}
Example #6
0
static bool udev_input_key_pressed(void *data, int key, enum input_device_type *device)
{
   udev_input_t *udev    = (udev_input_t*)data;
   settings_t *settings  = config_get_ptr();

   if (udev_input_is_pressed(udev, settings->input.binds[0], key))
   {
      *device = INPUT_DEVICE_TYPE_KEYBOARD;
      return true;
   }

   if (input_joypad_pressed(udev->joypad, 0, settings->input.binds[0], key))
   {
      *device = INPUT_DEVICE_TYPE_JOYPAD;
      return true;
   }

   return false;
}
Example #7
0
static bool udev_input_key_pressed(void *data, int key)
{
   udev_input_t *udev    = (udev_input_t*)data;
   settings_t *settings  = config_get_ptr();
   int port              = 0;

   if (udev_input_is_pressed(settings->input.binds[0], key))
      return true;

   if (settings->input.all_users_control_menu)
   {
      for (port = 0; port < MAX_USERS; port++)
         if (input_joypad_pressed(udev->joypad,
               port, settings->input.binds[0], key))
            return true;
   }
   else
      if (input_joypad_pressed(udev->joypad,
            0, settings->input.binds[0], key))
         return true;

   return false;
}
Example #8
0
static bool udev_input_bind_button_pressed(void *data, int key)
{
   udev_input_t *udev = (udev_input_t*)data;
   return udev_input_is_pressed(udev, g_settings.input.binds[0], key) ||
      input_joypad_pressed(udev->joypad, 0, g_settings.input.binds[0], key);
}