mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Refactor set_default_keybinds callback into set_keybinds - remove
set_analog_dpad_mapping and have it go through set_keybinds - expand functionality of set_keybinds
This commit is contained in:
parent
4fa8d0f3c6
commit
ede829c354
File diff suppressed because it is too large
Load Diff
@ -202,8 +202,9 @@ void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned
|
||||
if (source == AINPUT_SOURCE_KEYBOARD)
|
||||
device = DEVICE_KEYBOARD_RETROPAD;
|
||||
|
||||
if (driver.input->set_default_keybinds)
|
||||
driver.input->set_default_keybinds(device, port, id);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, device, port, id,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
}
|
||||
|
||||
if (name_buf[0] != 0)
|
||||
|
@ -85,22 +85,22 @@ const char *rarch_input_find_platform_key_label(uint64_t joykey)
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
void rarch_input_set_keybind(unsigned player, unsigned keybind_action, uint64_t default_retro_joypad_id)
|
||||
void rarch_input_set_keybind(unsigned port, unsigned keybind_action, uint64_t id)
|
||||
{
|
||||
uint64_t *key = &g_settings.input.binds[player][default_retro_joypad_id].joykey;
|
||||
uint64_t *key = &g_settings.input.binds[port][id].joykey;
|
||||
|
||||
switch (keybind_action)
|
||||
{
|
||||
case KEYBIND_DECREMENT:
|
||||
case KEYBINDS_ACTION_DECREMENT_BIND:
|
||||
*key = rarch_input_find_previous_platform_key(*key);
|
||||
break;
|
||||
|
||||
case KEYBIND_INCREMENT:
|
||||
case KEYBINDS_ACTION_INCREMENT_BIND:
|
||||
*key = rarch_input_find_next_platform_key(*key);
|
||||
break;
|
||||
|
||||
case KEYBIND_DEFAULT:
|
||||
*key = g_settings.input.binds[player][default_retro_joypad_id].def_joykey;
|
||||
case KEYBINDS_ACTION_SET_DEFAULT_BIND:
|
||||
*key = g_settings.input.binds[port][id].def_joykey;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -19,14 +19,6 @@
|
||||
|
||||
#include "../driver.h"
|
||||
|
||||
enum keybind_set_id
|
||||
{
|
||||
KEYBIND_NOACTION = 0,
|
||||
KEYBIND_DECREMENT,
|
||||
KEYBIND_INCREMENT,
|
||||
KEYBIND_DEFAULT
|
||||
};
|
||||
|
||||
const char *rarch_input_find_platform_key_label(uint64_t joykey);
|
||||
void rarch_input_set_keybind(unsigned player, unsigned keybind_action, uint64_t default_retro_joypad_id);
|
||||
|
||||
|
26
driver.h
26
driver.h
@ -199,6 +199,27 @@ typedef struct audio_driver
|
||||
#define GET_HAT_DIR(x) (x & HAT_MASK)
|
||||
#define GET_HAT(x) (x & (~HAT_MASK))
|
||||
|
||||
enum analog_dpad_bind_enums
|
||||
{
|
||||
ANALOG_DPAD_NONE = 0,
|
||||
ANALOG_DPAD_LSTICK,
|
||||
ANALOG_DPAD_RSTICK,
|
||||
ANALOG_DPAD_LAST
|
||||
};
|
||||
|
||||
enum keybind_set_id
|
||||
{
|
||||
KEYBINDS_ACTION_NONE = 0,
|
||||
KEYBINDS_ACTION_DECREMENT_BIND,
|
||||
KEYBINDS_ACTION_INCREMENT_BIND,
|
||||
KEYBINDS_ACTION_SET_DEFAULT_BIND,
|
||||
KEYBINDS_ACTION_SET_DEFAULT_BINDS,
|
||||
KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE,
|
||||
KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK,
|
||||
KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK,
|
||||
KEYBINDS_ACTION_LAST
|
||||
};
|
||||
|
||||
typedef struct input_driver
|
||||
{
|
||||
void *(*init)(void);
|
||||
@ -206,10 +227,7 @@ typedef struct input_driver
|
||||
int16_t (*input_state)(void *data, const struct retro_keybind **retro_keybinds, unsigned port, unsigned device, unsigned index, unsigned id);
|
||||
bool (*key_pressed)(void *data, int key);
|
||||
void (*free)(void *data);
|
||||
void (*set_default_keybinds)(unsigned device, unsigned port, unsigned id);
|
||||
#ifdef RARCH_CONSOLE
|
||||
void (*set_analog_dpad_mapping)(unsigned device, unsigned map_dpad_enum, unsigned controller_id);
|
||||
#endif
|
||||
void (*set_keybinds)(void *data, unsigned device, unsigned port, unsigned id, unsigned keybind_action);
|
||||
const char *ident;
|
||||
} input_driver_t;
|
||||
|
||||
|
@ -516,13 +516,13 @@ static void render_text(rgui_handle_t *rgui)
|
||||
case RGUI_SETTINGS_BIND_DPAD_EMULATION:
|
||||
switch(g_settings.input.dpad_emulation[port])
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
case ANALOG_DPAD_NONE:
|
||||
snprintf(type_str, sizeof(type_str), "None");
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
snprintf(type_str, sizeof(type_str), "Left Stick");
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
snprintf(type_str, sizeof(type_str), "Right Stick");
|
||||
break;
|
||||
}
|
||||
@ -899,22 +899,64 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
|
||||
else if (action == RGUI_ACTION_RIGHT)
|
||||
g_settings.input.device[port]++;
|
||||
g_settings.input.device[port] %= RARCH_DEVICE_LAST;
|
||||
if (driver.input->set_default_keybinds)
|
||||
driver.input->set_default_keybinds(g_settings.input.device[port], port, 0);
|
||||
driver.input->set_analog_dpad_mapping(g_settings.input.device[port], g_settings.input.dpad_emulation[port], port);
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
unsigned keybind_action = (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS);
|
||||
|
||||
switch (g_settings.input.dpad_emulation[port])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action |= (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port, 0,
|
||||
keybind_action);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#ifdef RARCH_CONSOLE
|
||||
case RGUI_SETTINGS_BIND_DPAD_EMULATION:
|
||||
g_settings.input.dpad_emulation[port] += DPAD_EMULATION_LAST;
|
||||
g_settings.input.dpad_emulation[port] += ANALOG_DPAD_LAST;
|
||||
if (action == RGUI_ACTION_START)
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
else if (action == RGUI_ACTION_LEFT)
|
||||
g_settings.input.dpad_emulation[port]--;
|
||||
else if (action == RGUI_ACTION_RIGHT)
|
||||
g_settings.input.dpad_emulation[port]++;
|
||||
g_settings.input.dpad_emulation[port] %= DPAD_EMULATION_LAST;
|
||||
driver.input->set_analog_dpad_mapping(g_settings.input.device[port], g_settings.input.dpad_emulation[port], port);
|
||||
g_settings.input.dpad_emulation[port] %= ANALOG_DPAD_LAST;
|
||||
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[port])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[port], port, 0,
|
||||
keybind_action);
|
||||
}
|
||||
break;
|
||||
case RGUI_SETTINGS_BIND_UP:
|
||||
case RGUI_SETTINGS_BIND_DOWN:
|
||||
@ -933,14 +975,14 @@ static int rgui_settings_toggle_setting(unsigned setting, rgui_action_t action,
|
||||
case RGUI_SETTINGS_BIND_L3:
|
||||
case RGUI_SETTINGS_BIND_R3:
|
||||
{
|
||||
unsigned keybind_action;
|
||||
unsigned keybind_action = KEYBINDS_ACTION_NONE;
|
||||
|
||||
if (action == RGUI_ACTION_START)
|
||||
keybind_action = KEYBIND_DEFAULT;
|
||||
keybind_action = KEYBINDS_ACTION_SET_DEFAULT_BIND;
|
||||
else if (action == RGUI_ACTION_LEFT)
|
||||
keybind_action = KEYBIND_DECREMENT;
|
||||
keybind_action = KEYBINDS_ACTION_DECREMENT_BIND;
|
||||
else if (action == RGUI_ACTION_RIGHT)
|
||||
keybind_action = KEYBIND_INCREMENT;
|
||||
keybind_action = KEYBINDS_ACTION_INCREMENT_BIND;
|
||||
else
|
||||
break;
|
||||
|
||||
|
@ -571,15 +571,15 @@ static void populate_setting_item(void *data, unsigned input)
|
||||
snprintf(current_item->text, sizeof(current_item->text), "D-Pad Emulation");
|
||||
switch(g_settings.input.dpad_emulation[currently_selected_controller_menu])
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
case ANALOG_DPAD_NONE:
|
||||
snprintf(current_item->comment, sizeof(current_item->comment), "[%s] from Controller %d is mapped to D-pad.", "None", currently_selected_controller_menu+1);
|
||||
snprintf(current_item->setting_text, sizeof(current_item->setting_text), "None");
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
snprintf(current_item->comment, sizeof(current_item->comment), "[%s] from Controller %d is mapped to D-pad.", "Left Stick", currently_selected_controller_menu+1);
|
||||
snprintf(current_item->setting_text, sizeof(current_item->setting_text), "Left Stick");
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
snprintf(current_item->comment, sizeof(current_item->comment), "[%s] from Controller %d is mapped to D-pad.", "Right Stick", currently_selected_controller_menu+1);
|
||||
snprintf(current_item->setting_text, sizeof(current_item->setting_text), "Right Stick");
|
||||
break;
|
||||
@ -1105,16 +1105,16 @@ int select_directory(void *data, void *state)
|
||||
|
||||
static void set_keybind_digital(uint64_t default_retro_joypad_id, uint64_t input)
|
||||
{
|
||||
unsigned keybind_action = KEYBIND_NOACTION;
|
||||
unsigned keybind_action = KEYBINDS_ACTION_NONE;
|
||||
|
||||
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
|
||||
keybind_action = KEYBIND_DECREMENT;
|
||||
keybind_action = KEYBINDS_ACTION_DECREMENT_BIND;
|
||||
|
||||
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
|
||||
keybind_action = KEYBIND_INCREMENT;
|
||||
keybind_action = KEYBINDS_ACTION_INCREMENT_BIND;
|
||||
|
||||
if(input & (1ULL << RMENU_DEVICE_NAV_START))
|
||||
keybind_action = KEYBIND_DEFAULT;
|
||||
keybind_action = KEYBINDS_ACTION_SET_DEFAULT_BIND;
|
||||
|
||||
rarch_input_set_keybind(currently_selected_controller_menu, keybind_action, default_retro_joypad_id);
|
||||
}
|
||||
@ -1949,36 +1949,55 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
|
||||
case SETTING_DPAD_EMULATION:
|
||||
if(input & (1ULL << RMENU_DEVICE_NAV_LEFT))
|
||||
{
|
||||
switch(g_settings.input.dpad_emulation[currently_selected_controller_menu])
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_NONE, currently_selected_controller_menu);
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu);
|
||||
break;
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch(g_settings.input.dpad_emulation[currently_selected_controller_menu])
|
||||
{
|
||||
case ANALOG_DPAD_NONE:
|
||||
break;
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0, keybind_action);
|
||||
}
|
||||
}
|
||||
|
||||
if((input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)))
|
||||
{
|
||||
switch(g_settings.input.dpad_emulation[currently_selected_controller_menu])
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu);
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_RSTICK, currently_selected_controller_menu);
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
break;
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch(g_settings.input.dpad_emulation[currently_selected_controller_menu])
|
||||
{
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0, keybind_action);
|
||||
}
|
||||
}
|
||||
|
||||
if(input & (1ULL << RMENU_DEVICE_NAV_START))
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, currently_selected_controller_menu);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0, (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK));
|
||||
break;
|
||||
case SETTING_CONTROLS_RETRO_DEVICE_ID_JOYPAD_UP:
|
||||
set_keybind_digital(RETRO_DEVICE_ID_JOYPAD_UP, input);
|
||||
@ -2041,8 +2060,9 @@ static int set_setting_action(void *data, unsigned switchvalue, uint64_t input)
|
||||
#endif
|
||||
case SETTING_CONTROLS_DEFAULT_ALL:
|
||||
if((input & (1ULL << RMENU_DEVICE_NAV_LEFT)) || (input & (1ULL << RMENU_DEVICE_NAV_RIGHT)) || (input & (1ULL << RMENU_DEVICE_NAV_B)) || (input & (1ULL << RMENU_DEVICE_NAV_START)))
|
||||
if (driver.input->set_default_keybinds)
|
||||
driver.input->set_default_keybinds(g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -385,13 +385,13 @@ static void set_dpad_emulation_label(unsigned port, char *str, size_t sizeof_str
|
||||
{
|
||||
switch(g_settings.input.dpad_emulation[port])
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
case ANALOG_DPAD_NONE:
|
||||
snprintf(str, sizeof_str, "D-Pad Emulation: None");
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
snprintf(str, sizeof_str, "D-Pad Emulation: Left Stick");
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
snprintf(str, sizeof_str, "D-Pad Emulation: Right Stick");
|
||||
break;
|
||||
}
|
||||
@ -452,16 +452,24 @@ HRESULT CRetroArchControls::OnControlNavigate(
|
||||
switch(current_index)
|
||||
{
|
||||
case SETTING_CONTROLS_DPAD_EMULATION:
|
||||
switch(g_settings.input.dpad_emulation[controlno])
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_NONE, controlno);
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, controlno);
|
||||
break;
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch(g_settings.input.dpad_emulation[controlno])
|
||||
{
|
||||
case ANALOG_DPAD_NONE:
|
||||
break;
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[controlno], controlno, 0, keybind_action);
|
||||
}
|
||||
break;
|
||||
case SETTING_CONTROLS_DEFAULT_ALL:
|
||||
@ -480,22 +488,30 @@ HRESULT CRetroArchControls::OnControlNavigate(
|
||||
switch(current_index)
|
||||
{
|
||||
case SETTING_CONTROLS_DPAD_EMULATION:
|
||||
switch(g_settings.input.dpad_emulation[controlno])
|
||||
if (driver.input->set_keybinds)
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_LSTICK, controlno);
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
driver.input->set_analog_dpad_mapping(0, DPAD_EMULATION_RSTICK, controlno);
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
break;
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch(g_settings.input.dpad_emulation[controlno])
|
||||
{
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
driver.input->set_keybinds(driver.input_data, g_settings.input.device[currently_selected_controller_menu], currently_selected_controller_menu, 0, keybind_action);
|
||||
}
|
||||
break;
|
||||
case SETTING_CONTROLS_DEFAULT_ALL:
|
||||
break;
|
||||
default:
|
||||
rarch_input_set_keybind(controlno, KEYBIND_INCREMENT, current_index);
|
||||
rarch_input_set_keybind(controlno, KEYBINDS_ACTION_INCREMENT_BIND, current_index);
|
||||
snprintf(button, sizeof(button), "%s #%d: %s",
|
||||
g_settings.input.binds[controlno][current_index].desc, controlno,
|
||||
rarch_input_find_platform_key_label(g_settings.input.binds[controlno][current_index].joykey));
|
||||
@ -534,8 +550,10 @@ HRESULT CRetroArchControls::OnNotifyPress( HXUIOBJ hObjPressed, int & bHandled
|
||||
case SETTING_CONTROLS_DPAD_EMULATION:
|
||||
break;
|
||||
case SETTING_CONTROLS_DEFAULT_ALL:
|
||||
if (driver.input->set_default_keybinds)
|
||||
driver.input->set_default_keybinds(g_settings.input.device[controlno], controlno, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data,
|
||||
g_settings.input.device[controlno], controlno, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for(i = 0; i < RARCH_FIRST_META_KEY; i++)
|
||||
{
|
||||
|
@ -101,14 +101,6 @@ extern "C" {
|
||||
|
||||
#define MAX_PLAYERS 8
|
||||
|
||||
enum dpad_emu_enums
|
||||
{
|
||||
DPAD_EMULATION_NONE = 0,
|
||||
DPAD_EMULATION_LSTICK,
|
||||
DPAD_EMULATION_RSTICK,
|
||||
DPAD_EMULATION_LAST
|
||||
};
|
||||
|
||||
enum menu_enums
|
||||
{
|
||||
MODE_GAME = 0,
|
||||
|
381
gx/gx_input.c
381
gx/gx_input.c
@ -163,174 +163,204 @@ static void power_callback(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void gx_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
switch (device)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
if (map_dpad_enum == DPAD_EMULATION_NONE)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
}
|
||||
break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
if (map_dpad_enum == DPAD_EMULATION_NONE)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_RIGHT].joykey;
|
||||
}
|
||||
else if (map_dpad_enum == DPAD_EMULATION_LSTICK)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
}
|
||||
else if (map_dpad_enum == DPAD_EMULATION_RSTICK)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_RIGHT_DPAD].joykey;
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
if (map_dpad_enum == DPAD_EMULATION_NONE)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_RIGHT].joykey;
|
||||
}
|
||||
else if (map_dpad_enum == DPAD_EMULATION_LSTICK)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
}
|
||||
else if (map_dpad_enum == DPAD_EMULATION_RSTICK)
|
||||
{
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_RIGHT_DPAD].joykey;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void gx_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void gx_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)id;
|
||||
|
||||
switch (device)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS))
|
||||
{
|
||||
switch (device)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_1].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_2].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_2].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_1].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_Z].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_C].joykey;;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN; break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_Y].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_X].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_L_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_R_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_ZL_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_ZR_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_1].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_2].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_2].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_1].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_Z].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_C].joykey;;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN; break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_Y].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_MINUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_PLUS].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_X].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_L_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_R_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_ZL_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_ZR_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
#endif
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_Y].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_Z_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_START].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_X].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_L_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_R_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_B].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_B].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_Y].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_Y].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_SELECT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_Z_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_START].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_START].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_RIGHT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_A].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_A].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_X].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_X].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_L_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R].def_joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_R_TRIGGER].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R2].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_L3].def_joykey = NO_BTN;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_R3].def_joykey = NO_BTN;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
|
||||
{
|
||||
switch (device)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_RSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
#endif
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_RSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
switch (device)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
#endif
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_UP_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_DOWN_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_LEFT_DPAD].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_LSTICK_RIGHT_DPAD].joykey;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
|
||||
{
|
||||
switch (device)
|
||||
{
|
||||
#ifdef HW_RVL
|
||||
case GX_DEVICE_WIIMOTE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case GX_DEVICE_NUNCHUK:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_WIIMOTE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case GX_DEVICE_CLASSIC:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_CLASSIC_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
#endif
|
||||
case GX_DEVICE_GAMECUBE:
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[GX_DEVICE_GC_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
}
|
||||
|
||||
static void *gx_input_init(void)
|
||||
@ -345,10 +375,34 @@ static void *gx_input_init(void)
|
||||
#endif
|
||||
|
||||
for(unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||
gx_set_default_keybinds(0, i, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for(unsigned i = 0; i < MAX_PADS; i++)
|
||||
gx_input_set_analog_dpad_mapping(g_settings.input.device[i], g_settings.input.dpad_emulation[i], i);
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[i])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
keybind_action);
|
||||
}
|
||||
|
||||
return (void*)-1;
|
||||
}
|
||||
@ -372,7 +426,7 @@ static void gx_input_poll(void *data)
|
||||
{
|
||||
uint32_t down = 0;
|
||||
uint64_t *state_cur = &pad_state[port];
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[port] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[port] != ANALOG_DPAD_NONE);
|
||||
|
||||
#ifdef HW_RVL
|
||||
uint32_t type = 0;
|
||||
@ -547,7 +601,7 @@ static void gx_input_poll(void *data)
|
||||
|
||||
uint64_t *state_p1 = &pad_state[0];
|
||||
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != ANALOG_DPAD_NONE);
|
||||
|
||||
*lifecycle_state &= ~(
|
||||
(1ULL << RARCH_FAST_FORWARD_HOLD_KEY) |
|
||||
@ -644,7 +698,6 @@ const input_driver_t input_gx = {
|
||||
.input_state = gx_input_state,
|
||||
.key_pressed = gx_input_key_pressed,
|
||||
.free = gx_input_free_input,
|
||||
.set_default_keybinds = gx_set_default_keybinds,
|
||||
.set_analog_dpad_mapping = gx_input_set_analog_dpad_mapping,
|
||||
.set_keybinds = gx_input_set_keybinds,
|
||||
.ident = "gx",
|
||||
};
|
||||
|
19
input/null.c
19
input/null.c
@ -51,32 +51,23 @@ static void nullinput_input_free_input(void *data)
|
||||
(void)data;
|
||||
}
|
||||
|
||||
#ifdef RARCH_CONSOLE
|
||||
static void nullinput_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void nullinput_set_keybinds(void *data, unsigned device,
|
||||
unsigned port, unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)data;
|
||||
(void)device;
|
||||
(void)port;
|
||||
(void)id;
|
||||
(void)keybind_action;
|
||||
}
|
||||
|
||||
static void nullinput_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
(void)device;
|
||||
(void)map_dpad_enum;
|
||||
(void)controller_id;
|
||||
}
|
||||
#endif
|
||||
|
||||
const input_driver_t input_null = {
|
||||
nullinput_input_init,
|
||||
nullinput_input_poll,
|
||||
nullinput_input_state,
|
||||
nullinput_input_key_pressed,
|
||||
nullinput_input_free_input,
|
||||
nullinput_set_default_keybinds,
|
||||
#ifdef RARCH_CONSOLE
|
||||
nullinput_set_analog_dpad_mapping,
|
||||
#endif
|
||||
nullinput_set_keybinds,
|
||||
"null",
|
||||
};
|
||||
|
||||
|
109
ps3/ps3_input.c
109
ps3/ps3_input.c
@ -125,7 +125,7 @@ static void ps3_input_poll(void *data)
|
||||
if (state_tmp.len != 0)
|
||||
{
|
||||
uint64_t *state_cur = &state[i];
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
|
||||
*state_cur = 0;
|
||||
#ifdef __PSL1GHT__
|
||||
*state_cur |= (state_tmp.BTN_LEFT) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_LEFT) : 0;
|
||||
@ -190,7 +190,7 @@ static void ps3_input_poll(void *data)
|
||||
|
||||
uint64_t *state_p1 = &state[0];
|
||||
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != ANALOG_DPAD_NONE);
|
||||
|
||||
*lifecycle_state &= ~(
|
||||
(1ULL << RARCH_FAST_FORWARD_HOLD_KEY) |
|
||||
@ -391,55 +391,55 @@ do_deinit:
|
||||
RetroArch PS3 INPUT DRIVER
|
||||
============================================================ */
|
||||
|
||||
static void ps3_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
(void)device;
|
||||
|
||||
switch(map_dpad_enum)
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_NONE;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_LSTICK;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_RSTICK;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void ps3_input_free_input(void *data)
|
||||
{
|
||||
(void)data;
|
||||
//cellPadEnd();
|
||||
}
|
||||
|
||||
static void ps3_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void ps3_input_set_keybinds(void *data, unsigned device,
|
||||
unsigned port, unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)device;
|
||||
(void)id;
|
||||
|
||||
for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS))
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
|
||||
{
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
|
||||
}
|
||||
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
|
||||
{
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
|
||||
{
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_RSTICK;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
|
||||
}
|
||||
}
|
||||
|
||||
static void* ps3_input_init(void)
|
||||
@ -450,10 +450,34 @@ static void* ps3_input_init(void)
|
||||
#endif
|
||||
|
||||
for(unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||
ps3_set_default_keybinds(0, i, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for (unsigned i = 0; i < MAX_PADS; i++)
|
||||
ps3_input_set_analog_dpad_mapping(0, g_settings.input.dpad_emulation[i], i);
|
||||
for(unsigned i = 0; i < MAX_PADS; i++)
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[i])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
keybind_action);
|
||||
}
|
||||
|
||||
return (void*)-1;
|
||||
}
|
||||
@ -469,8 +493,7 @@ const input_driver_t input_ps3 = {
|
||||
.input_state = ps3_input_state,
|
||||
.key_pressed = ps3_input_key_pressed,
|
||||
.free = ps3_input_free_input,
|
||||
.set_default_keybinds = ps3_set_default_keybinds,
|
||||
.set_analog_dpad_mapping = ps3_input_set_analog_dpad_mapping,
|
||||
.set_keybinds = ps3_input_set_keybinds,
|
||||
.ident = "ps3",
|
||||
};
|
||||
|
||||
|
@ -141,27 +141,27 @@ static int16_t psp_input_state(void *data, const struct retro_keybind **binds,
|
||||
return retval;
|
||||
}
|
||||
|
||||
static void psp_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
(void)device;
|
||||
}
|
||||
|
||||
static void psp_free_input(void *data)
|
||||
static void psp_input_free_input(void *data)
|
||||
{
|
||||
(void)data;
|
||||
}
|
||||
|
||||
static void psp_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void psp_input_set_keybinds(void *data, unsigned device, unsigned port,
|
||||
unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)device;
|
||||
(void)id;
|
||||
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS))
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
}
|
||||
|
||||
static void* psp_input_initialize(void)
|
||||
@ -172,12 +172,39 @@ static void* psp_input_initialize(void)
|
||||
sceCtrlSetSamplingMode(DEFAULT_SAMPLING_MODE);
|
||||
|
||||
for(unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||
psp_set_default_keybinds(0, i, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for(unsigned i = 0; i < MAX_PADS; i++)
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[i])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
action);
|
||||
}
|
||||
|
||||
return (void*)-1;
|
||||
}
|
||||
|
||||
static bool psp_key_pressed(void *data, int key)
|
||||
static bool psp_input_key_pressed(void *data, int key)
|
||||
{
|
||||
(void)data;
|
||||
|
||||
@ -195,9 +222,8 @@ const input_driver_t input_psp = {
|
||||
.init = psp_input_initialize,
|
||||
.poll = psp_input_poll,
|
||||
.input_state = psp_input_state,
|
||||
.key_pressed = psp_key_pressed,
|
||||
.free = psp_free_input,
|
||||
.set_default_keybinds = psp_set_default_keybinds,
|
||||
.set_analog_dpad_mapping = psp_input_set_analog_dpad_mapping,
|
||||
.key_pressed = psp_input_key_pressed,
|
||||
.free = psp_input_free_input,
|
||||
.set_keybinds = psp_input_set_keybinds,
|
||||
.ident = "psp",
|
||||
};
|
||||
|
@ -137,7 +137,7 @@ static void xdk_input_poll(void *data)
|
||||
continue;
|
||||
|
||||
uint64_t *state_cur = &state[i];
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
|
||||
|
||||
*state_cur = 0;
|
||||
*state_cur |= ((state_tmp.Gamepad.bAnalogButtons[XINPUT_GAMEPAD_B]) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0);
|
||||
@ -176,7 +176,7 @@ static void xdk_input_poll(void *data)
|
||||
pads_connected += (XInputGetState(i, &state_tmp) == ERROR_DEVICE_NOT_CONNECTED) ? 0 : 1;
|
||||
|
||||
uint64_t *state_cur = &state[i];
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[i] != ANALOG_DPAD_NONE);
|
||||
|
||||
*state_cur = 0;
|
||||
*state_cur |= ((state_tmp.Gamepad.wButtons & XINPUT_GAMEPAD_B) ? (1ULL << RETRO_DEVICE_ID_JOYPAD_A) : 0);
|
||||
@ -212,7 +212,7 @@ static void xdk_input_poll(void *data)
|
||||
|
||||
uint64_t *state_p1 = &state[0];
|
||||
uint64_t *lifecycle_state = &g_extern.lifecycle_state;
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != DPAD_EMULATION_NONE);
|
||||
bool dpad_emulation = (g_settings.input.dpad_emulation[0] != ANALOG_DPAD_NONE);
|
||||
|
||||
*lifecycle_state &= ~(
|
||||
(1ULL << RARCH_FAST_FORWARD_HOLD_KEY) |
|
||||
@ -269,48 +269,49 @@ static void xdk_input_free_input(void *data)
|
||||
(void)data;
|
||||
}
|
||||
|
||||
static void xdk_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void xdk_input_set_keybinds(void *data, unsigned device,
|
||||
unsigned port, unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)device;
|
||||
(void)id;
|
||||
|
||||
for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS))
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
for (int i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].def_joykey = platform_keys[i].joykey;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
}
|
||||
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
}
|
||||
|
||||
static void xdk_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
(void)device;
|
||||
|
||||
switch(map_dpad_enum)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE))
|
||||
{
|
||||
case DPAD_EMULATION_NONE:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_NONE;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
|
||||
break;
|
||||
case DPAD_EMULATION_LSTICK:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_LSTICK;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
|
||||
break;
|
||||
case DPAD_EMULATION_RSTICK:
|
||||
g_settings.input.dpad_emulation[controller_id] = DPAD_EMULATION_RSTICK;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[controller_id][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
|
||||
break;
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_NONE;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey;
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK))
|
||||
{
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_LEFT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_LEFT_X_DPAD_RIGHT].joykey;
|
||||
}
|
||||
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK))
|
||||
{
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_RSTICK;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_UP].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_UP].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_DOWN].joykey = platform_keys[RARCH_ANALOG_RIGHT_Y_DPAD_DOWN].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_LEFT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_LEFT].joykey;
|
||||
g_settings.input.binds[port][RETRO_DEVICE_ID_JOYPAD_RIGHT].joykey = platform_keys[RARCH_ANALOG_RIGHT_X_DPAD_RIGHT].joykey;
|
||||
}
|
||||
}
|
||||
|
||||
@ -336,10 +337,34 @@ static void *xdk_input_init(void)
|
||||
#endif
|
||||
|
||||
for(unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||
xdk_set_default_keybinds(0, i, 0);
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for(unsigned i = 0; i < MAX_PADS; i++)
|
||||
xdk_input_set_analog_dpad_mapping(0, g_settings.input.dpad_emulation[i], i);
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[i])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
if (driver.input->set_keybinds)
|
||||
driver.input->set_keybinds(driver.input_data, 0, i, 0,
|
||||
action);
|
||||
}
|
||||
|
||||
return (void*)-1;
|
||||
}
|
||||
@ -356,7 +381,6 @@ const input_driver_t input_xinput =
|
||||
xdk_input_state,
|
||||
xdk_input_key_pressed,
|
||||
xdk_input_free_input,
|
||||
xdk_set_default_keybinds,
|
||||
xdk_input_set_analog_dpad_mapping,
|
||||
xdk_input_set_keybinds,
|
||||
"xinput"
|
||||
};
|
||||
|
@ -82,34 +82,51 @@ static void xenon360_input_free_input(void *data)
|
||||
(void)data;
|
||||
}
|
||||
|
||||
static void xenon360_input_set_default_keybinds(unsigned device, unsigned port, unsigned id)
|
||||
static void xenon360_input_set_keybinds(void *data, unsigned device,
|
||||
unsigned port, unsigned id, unsigned keybind_action)
|
||||
{
|
||||
(void)data;
|
||||
(void)device;
|
||||
(void)id;
|
||||
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
if (keybind_action & (1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS))
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
for (unsigned i = 0; i < RARCH_CUSTOM_BIND_LIST_END; i++)
|
||||
{
|
||||
g_settings.input.binds[port][i].id = i;
|
||||
g_settings.input.binds[port][i].joykey = g_settings.input.binds[port][i].def_joykey;
|
||||
}
|
||||
g_settings.input.dpad_emulation[port] = ANALOG_DPAD_LSTICK;
|
||||
}
|
||||
|
||||
g_settings.input.dpad_emulation[port] = DPAD_EMULATION_LSTICK;
|
||||
}
|
||||
|
||||
static void xenon360_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
|
||||
{
|
||||
(void)device;
|
||||
(void)map_dpad_enum;
|
||||
(void)controller_id;
|
||||
}
|
||||
|
||||
static void* xenon360_input_init(void)
|
||||
{
|
||||
for(unsigned i = 0; i < MAX_PLAYERS; i++)
|
||||
xenon360_input_set_default_keybinds(0, i, 0);
|
||||
xenon360_input_set_keybinds(driver.input_data, 0, i,
|
||||
(1ULL << KEYBINDS_ACTION_SET_DEFAULT_BINDS));
|
||||
|
||||
for(unsigned i = 0; i < MAX_PADS; i++)
|
||||
xenon360_input_set_analog_dpad_mapping(0, g_settings.input.dpad_emulation[i], i);
|
||||
{
|
||||
unsigned keybind_action = 0;
|
||||
|
||||
switch (g_settings.input.dpad_emulation[i])
|
||||
{
|
||||
case ANALOG_DPAD_LSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_LSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_RSTICK:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_RSTICK);
|
||||
break;
|
||||
case ANALOG_DPAD_NONE:
|
||||
keybind_action = (1ULL << KEYBINDS_ACTION_SET_ANALOG_DPAD_NONE);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (keybind_action)
|
||||
xenon360_input_set_keybinds(driver.input_data, 0, i, keybind_action);
|
||||
}
|
||||
|
||||
return (void*)-1;
|
||||
}
|
||||
@ -126,7 +143,6 @@ const input_driver_t input_xenon360 = {
|
||||
.input_state = xenon360_input_state,
|
||||
.key_pressed = xenon360_input_key_pressed,
|
||||
.free = xenon360_input_free_input,
|
||||
.set_default_keybinds = xenon360_input_set_default_keybinds,
|
||||
.set_analog_dpad_mapping = xenon360_input_set_analog_dpad_mapping,
|
||||
.set_keybinds = xenon360_input_set_keybinds,
|
||||
.ident = "xenon360",
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user