retro_input_t input_driver_keys_pressed(void) { int key; retro_input_t ret = 0; driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); for (key = 0; key < RARCH_BIND_LIST_END; key++) { bool state = false; if ((!driver->block_libretro_input && ((key < RARCH_FIRST_META_KEY))) || !driver->block_hotkey) state = input->key_pressed(driver->input_data, key); if (key >= RARCH_FIRST_META_KEY) state |= input->meta_key_pressed(driver->input_data, key); #ifdef HAVE_OVERLAY state |= input_overlay_key_pressed(key); #endif #ifdef HAVE_COMMAND if (driver->command) state |= rarch_cmd_get(driver->command, key); #endif if (state) ret |= (UINT64_C(1) << key); } return ret; }
retro_input_t input_driver_keys_pressed(uint64_t *device_type) { int key; retro_input_t ret = 0; driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); for (key = 0; key < RARCH_BIND_LIST_END; key++) { bool state = false; enum input_device_type device = INPUT_DEVICE_TYPE_NONE; if ((!driver->block_libretro_input && ((key < RARCH_FIRST_META_KEY))) || !driver->block_hotkey) state = input->key_pressed(driver->input_data, key, &device); if (key >= RARCH_FIRST_META_KEY) state |= input->meta_key_pressed(driver->input_data, key, &device); if (device == INPUT_DEVICE_TYPE_JOYPAD) BIT64_SET(*device_type, key); #ifdef HAVE_OVERLAY state |= input_overlay_key_pressed(key); #endif #ifdef HAVE_COMMAND if (driver->command) state |= rarch_cmd_get(driver->command, key); #endif if (state) ret |= (UINT64_C(1) << key); } return ret; }
void input_driver_keyboard_mapping_set_block(bool value) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->keyboard_mapping_set_block) driver->input->keyboard_mapping_set_block(driver->input_data, value); }
bool input_driver_grab_stdin(void) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->grab_stdin) return input->grab_stdin(driver->input_data); return false; }
uint64_t input_driver_get_capabilities(void) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->get_capabilities) return input->get_capabilities(driver->input_data); return 0; }
const input_device_driver_t *input_driver_get_joypad_driver(void) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->get_joypad_driver) return input->get_joypad_driver(driver->input_data); return NULL; }
int16_t input_driver_state(const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); return input->input_state(driver->input_data, retro_keybinds, port, device, index, id); }
bool input_driver_keyboard_mapping_is_blocked(void) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->keyboard_mapping_is_blocked) return driver->input->keyboard_mapping_is_blocked( driver->input_data); return false; }
/** * input_driver_set_rumble_state: * @port : User number. * @effect : Rumble effect. * @strength : Strength of rumble effect. * * Sets the rumble state. * Used by RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE. **/ bool input_driver_set_rumble_state(unsigned port, enum retro_rumble_effect effect, uint16_t strength) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->set_rumble) return input->set_rumble(driver->input_data, port, effect, strength); return false; }
bool input_driver_grab_mouse(bool state) { driver_t *driver = driver_get_ptr(); const input_driver_t *input = input_get_ptr(driver); if (input->grab_mouse) { input->grab_mouse(driver->input_data, state); return true; } return false; }
/* This function gets called for handling pointer events. * * Pointer events are touchscreen events that are spawned * by touchpad/touchscreen. */ static int menu_event_pointer(unsigned *action) { rarch_joypad_info_t joypad_info; int pointer_x, pointer_y; size_t fb_pitch; unsigned fb_width, fb_height; const struct retro_keybind *binds[MAX_USERS] = {NULL}; const input_driver_t *input_ptr = input_get_ptr(); void *input_data = input_get_data(); menu_input_t *menu_input = &menu_input_state; int pointer_device = menu_driver_is_texture_set() ? RETRO_DEVICE_POINTER : RARCH_DEVICE_POINTER_SCREEN; menu_display_get_fb_size(&fb_width, &fb_height, &fb_pitch); joypad_info.joy_idx = 0; joypad_info.auto_binds = NULL; joypad_info.axis_threshold = 0.0f; pointer_x = input_ptr->input_state(input_data, joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_X); pointer_y = input_ptr->input_state(input_data, joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_Y); menu_input->pointer.pressed[0] = input_ptr->input_state(input_data, joypad_info, binds, 0, pointer_device, 0, RETRO_DEVICE_ID_POINTER_PRESSED); menu_input->pointer.pressed[1] = input_ptr->input_state(input_data, joypad_info, binds, 0, pointer_device, 1, RETRO_DEVICE_ID_POINTER_PRESSED); menu_input->pointer.back = input_ptr->input_state(input_data, joypad_info, binds, 0, pointer_device, 0, RARCH_DEVICE_ID_POINTER_BACK); menu_input->pointer.x = ((pointer_x + 0x7fff) * (int)fb_width) / 0xFFFF; menu_input->pointer.y = ((pointer_y + 0x7fff) * (int)fb_height) / 0xFFFF; return 0; }
int16_t menu_input_mouse_state(enum menu_input_mouse_state state) { rarch_joypad_info_t joypad_info; const input_driver_t *input_ptr = input_get_ptr(); void *input_data = input_get_data(); unsigned type = 0; unsigned device = RETRO_DEVICE_MOUSE; joypad_info.joy_idx = 0; joypad_info.auto_binds = NULL; joypad_info.axis_threshold = 0.0f; switch (state) { case MENU_MOUSE_X_AXIS: device = RARCH_DEVICE_MOUSE_SCREEN; type = RETRO_DEVICE_ID_MOUSE_X; break; case MENU_MOUSE_Y_AXIS: device = RARCH_DEVICE_MOUSE_SCREEN; type = RETRO_DEVICE_ID_MOUSE_Y; break; case MENU_MOUSE_LEFT_BUTTON: type = RETRO_DEVICE_ID_MOUSE_LEFT; break; case MENU_MOUSE_RIGHT_BUTTON: type = RETRO_DEVICE_ID_MOUSE_RIGHT; break; case MENU_MOUSE_WHEEL_UP: type = RETRO_DEVICE_ID_MOUSE_WHEELUP; break; case MENU_MOUSE_WHEEL_DOWN: type = RETRO_DEVICE_ID_MOUSE_WHEELDOWN; break; case MENU_MOUSE_HORIZ_WHEEL_UP: type = RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP; break; case MENU_MOUSE_HORIZ_WHEEL_DOWN: type = RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN; break; } return input_ptr->input_state(input_data, joypad_info, NULL, 0, device, 0, type); }