void apple_input_keyboard_event(bool down, unsigned code, uint32_t character, uint32_t mod, unsigned device) { driver_t *driver = driver_get_ptr(); apple_input_data_t *apple = (apple_input_data_t*)driver->input_data; if (!apple) return; code = HIDKEY(code); if (apple->icade_enabled) { handle_icade_event(code); return; } if (apple->small_keyboard_enabled && handle_small_keyboard(&code, down)) character = 0; if (code == 0 || code >= MAX_KEYS) return; apple->key_state[code] = down; input_keyboard_event(down, input_keymaps_translate_keysym_to_rk(code), character, (enum retro_mod)mod, device); }
void apple_input_keyboard_event(bool down, unsigned code, uint32_t character, uint32_t mod, unsigned device) { #if TARGET_OS_IPHONE settings_t *settings = config_get_ptr(); #endif code = HIDKEY(code); #if TARGET_OS_IPHONE if (settings->input.keyboard_gamepad_enable) { if (handle_icade_event(&code, &down)) character = 0; else code = 0; } else if (settings->input.small_keyboard_enable) { if (handle_small_keyboard(&code, down)) character = 0; } #endif if (code == 0 || code >= MAX_KEYS) return; apple_key_state[code] = down; input_keyboard_event(down, input_keymaps_translate_keysym_to_rk(code), character, (enum retro_mod)mod, device); }
void apple_input_keyboard_event(bool down, unsigned code, uint32_t character, uint32_t mod) { apple_input_data_t *apple = (apple_input_data_t*)driver.input_data; enum retro_mod mods = RETROKMOD_NONE; code = HIDKEY(code); if (icade_enabled) { handle_icade_event(code); return; } if (small_keyboard_enabled && handle_small_keyboard(&code, down)) character = 0; if (code == 0 || code >= MAX_KEYS) return; if (apple) apple->key_state[code] = down; mods |= (mod & NSAlphaShiftKeyMask) ? RETROKMOD_CAPSLOCK : 0; mods |= (mod & NSShiftKeyMask) ? RETROKMOD_SHIFT : 0; mods |= (mod & NSControlKeyMask) ? RETROKMOD_CTRL : 0; mods |= (mod & NSAlternateKeyMask) ? RETROKMOD_ALT : 0; mods |= (mod & NSCommandKeyMask) ? RETROKMOD_META : 0; mods |= (mod & NSNumericPadKeyMask) ? RETROKMOD_NUMLOCK : 0; input_keyboard_event(down, input_translate_keysym_to_rk(code), character, mods); }
void apple_input_keyboard_event(bool down, unsigned code, uint32_t character, uint32_t mod) { code = HIDKEY(code); if (icade_enabled) { handle_icade_event(code); return; } if (small_keyboard_enabled && handle_small_keyboard(&code, down)) character = 0; if (code == 0 || code >= MAX_KEYS) return; g_current_input_data.keys[code] = down; /* This is copied here as it isn't defined in any standard iOS header */ enum { NSAlphaShiftKeyMask = 1 << 16, NSShiftKeyMask = 1 << 17, NSControlKeyMask = 1 << 18, NSAlternateKeyMask = 1 << 19, NSCommandKeyMask = 1 << 20, NSNumericPadKeyMask = 1 << 21, NSHelpKeyMask = 1 << 22, NSFunctionKeyMask = 1 << 23, NSDeviceIndependentModifierFlagsMask = 0xffff0000U }; enum retro_mod mods = RETROKMOD_NONE; mods |= (mod & NSAlphaShiftKeyMask) ? RETROKMOD_CAPSLOCK : 0; mods |= (mod & NSShiftKeyMask) ? RETROKMOD_SHIFT : 0; mods |= (mod & NSControlKeyMask) ? RETROKMOD_CTRL : 0; mods |= (mod & NSAlternateKeyMask) ? RETROKMOD_ALT : 0; mods |= (mod & NSCommandKeyMask) ? RETROKMOD_META : 0; mods |= (mod & NSNumericPadKeyMask) ? RETROKMOD_NUMLOCK : 0; input_keyboard_event(down, input_translate_keysym_to_rk(code), character, mods); }