From 7b5b49a5e6012c60a019de6d8adb9cfb0eaef592 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 25 Apr 2017 15:49:27 +0200 Subject: [PATCH] Move autoconfigured variables out of settings struct; these values are not written back to the config file --- configuration.c | 4 ++-- configuration.h | 1 - menu/menu_displaylist.c | 2 +- tasks/task_autodetect.c | 22 +++++++++++++++++----- tasks/tasks_internal.h | 4 ++++ 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/configuration.c b/configuration.c index 9d14c518af..4a6e9c7add 100644 --- a/configuration.c +++ b/configuration.c @@ -1174,10 +1174,10 @@ static void config_set_defaults(void) settings->input.autoconf_binds[i][j].joykey = NO_BTN; settings->input.autoconf_binds[i][j].joyaxis = AXIS_NONE; } - - settings->input.autoconfigured[i] = 0; } + input_autoconfigure_reset(); + /* Verify that binds are in proper order. */ for (i = 0; i < MAX_USERS; i++) { diff --git a/configuration.h b/configuration.h index e133c6298d..c3c89059de 100644 --- a/configuration.h +++ b/configuration.h @@ -285,7 +285,6 @@ typedef struct settings /* Set by autoconfiguration in joypad_autoconfig_dir. * Does not override main binds. */ - bool autoconfigured[MAX_USERS]; bool swap_override; int vid[MAX_USERS]; int pid[MAX_USERS]; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 20480184a4..cd4c2b5ca1 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -645,7 +645,7 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) for(controller = 0; controller < MAX_USERS; controller++) { - if (settings->input.autoconfigured[controller]) + if (input_is_autoconfigured(controller)) { snprintf(tmp, sizeof(tmp), "Port #%d device name: %s (#%d)", controller, settings->input.device_names[controller], diff --git a/tasks/task_autodetect.c b/tasks/task_autodetect.c index cb7df6c555..03be9033f0 100644 --- a/tasks/task_autodetect.c +++ b/tasks/task_autodetect.c @@ -50,6 +50,8 @@ typedef struct autoconfig_params char autoconfig_directory[4096]; } autoconfig_params_t; +static bool input_autoconfigured[MAX_USERS]; + /* Adds an index for devices with the same name, * so they can be identified in the GUI. */ static void input_autoconfigure_joypad_reindex_devices(autoconfig_params_t *params) @@ -154,11 +156,10 @@ static void input_autoconfigure_joypad_add(config_file_t *conf, /* This will be the case if input driver is reinitialized. * No reason to spam autoconfigure messages every time. */ - block_osd_spam = settings->input.autoconfigured[params->idx] + block_osd_spam = input_autoconfigured[params->idx] && !string_is_empty(params->name); - configuration_set_bool(settings, - settings->input.autoconfigured[params->idx], true); + input_autoconfigured[params->idx] = true; input_autoconfigure_joypad_conf(conf, settings->input.autoconf_binds[params->idx]); @@ -399,6 +400,18 @@ error: return false; } +void input_autoconfigure_reset(void) +{ + unsigned i; + for (i = 0; i < MAX_USERS; i++) + input_autoconfigured[i] = 0; +} + +bool input_is_autoconfigured(unsigned i) +{ + return input_autoconfigured[i]; +} + bool input_autoconfigure_connect( const char *name, const char *display_name, @@ -449,8 +462,7 @@ bool input_autoconfigure_connect( settings->input.autoconf_binds[state->idx][i].joyaxis_label[0] = '\0'; } - configuration_set_bool(settings, - settings->input.autoconfigured[state->idx], false); + input_autoconfigured[state->idx] = false; task->state = state; task->handler = input_autoconfigure_connect_handler; diff --git a/tasks/tasks_internal.h b/tasks/tasks_internal.h index 616621e471..a4e4878f26 100644 --- a/tasks/tasks_internal.h +++ b/tasks/tasks_internal.h @@ -219,6 +219,10 @@ void *savefile_ptr_get(void); void path_init_savefile_new(void); +void input_autoconfigure_reset(void); + +bool input_is_autoconfigured(unsigned i); + bool input_autoconfigure_connect( const char *name, const char *display_name,