mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-24 08:30:16 +00:00
Remap file loading fixes
This commit is contained in:
parent
f3b440bab9
commit
a8faacc926
@ -866,12 +866,25 @@ int generic_action_ok_displaylist_push(const char *path,
|
|||||||
dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE;
|
dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE;
|
||||||
break;
|
break;
|
||||||
case ACTION_OK_DL_REMAP_FILE:
|
case ACTION_OK_DL_REMAP_FILE:
|
||||||
|
{
|
||||||
|
struct retro_system_info *system = runloop_get_libretro_system_info();
|
||||||
|
const char *core_name = system ? system->library_name : NULL;
|
||||||
|
|
||||||
|
if (!string_is_empty(core_name) && !string_is_empty(settings->paths.directory_input_remapping))
|
||||||
|
{
|
||||||
|
fill_pathname_join(tmp,
|
||||||
|
settings->paths.directory_input_remapping, core_name, sizeof(tmp));
|
||||||
|
if (!path_is_directory(tmp))
|
||||||
|
tmp[0] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
filebrowser_clear_type();
|
filebrowser_clear_type();
|
||||||
info.type = type;
|
info.type = type;
|
||||||
info.directory_ptr = idx;
|
info.directory_ptr = idx;
|
||||||
info_path = settings->paths.directory_input_remapping;
|
info_path = !string_is_empty(tmp) ? tmp : settings->paths.directory_input_remapping;
|
||||||
info_label = label;
|
info_label = label;
|
||||||
dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE;
|
dl_type = DISPLAYLIST_FILE_BROWSER_SELECT_FILE;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case ACTION_OK_DL_STREAM_CONFIGFILE:
|
case ACTION_OK_DL_STREAM_CONFIGFILE:
|
||||||
{
|
{
|
||||||
@ -1779,10 +1792,31 @@ static int generic_action_ok(const char *path,
|
|||||||
{
|
{
|
||||||
config_file_t *conf = config_file_new_from_path_to_string(
|
config_file_t *conf = config_file_new_from_path_to_string(
|
||||||
action_path);
|
action_path);
|
||||||
|
retro_ctx_controller_info_t pad;
|
||||||
|
unsigned current_device = 0;
|
||||||
|
unsigned port = 0;
|
||||||
|
int conf_val = 0;
|
||||||
|
char conf_key[64];
|
||||||
flush_char = msg_hash_to_str(flush_id);
|
flush_char = msg_hash_to_str(flush_id);
|
||||||
|
|
||||||
|
conf_key[0] = '\0';
|
||||||
|
|
||||||
if (conf)
|
if (conf)
|
||||||
input_remapping_load_file(conf, action_path);
|
if (input_remapping_load_file(conf, action_path))
|
||||||
|
{
|
||||||
|
for (port = 0; port < MAX_USERS; port++)
|
||||||
|
{
|
||||||
|
snprintf(conf_key, sizeof(conf_key), "input_libretro_device_p%u", port + 1);
|
||||||
|
if (!config_get_int(conf, conf_key, &conf_val))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
current_device = input_config_get_device(port);
|
||||||
|
input_config_set_device(port, current_device);
|
||||||
|
pad.port = port;
|
||||||
|
pad.device = current_device;
|
||||||
|
core_set_controller_port_device(&pad);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user