Move configuration state over to configuration.c - take it out of

p_rarch
This commit is contained in:
twinaphex 2021-11-03 21:22:37 +01:00
parent 6ad91b2b37
commit 514ed00f2d
7 changed files with 46 additions and 36 deletions

View File

@ -316,9 +316,9 @@ static void audio_driver_mixer_deinit(void)
} }
#endif #endif
bool audio_driver_deinit(void *settings_data) bool audio_driver_deinit(void)
{ {
settings_t *settings = (settings_t*)settings_data; settings_t *settings = config_get_ptr();
#ifdef HAVE_AUDIOMIXER #ifdef HAVE_AUDIOMIXER
audio_driver_mixer_deinit(); audio_driver_mixer_deinit();
#endif #endif
@ -758,7 +758,7 @@ bool audio_driver_init_internal(
return true; return true;
error: error:
return audio_driver_deinit(settings); return audio_driver_deinit();
} }
void audio_driver_sample(int16_t left, int16_t right) void audio_driver_sample(int16_t left, int16_t right)

View File

@ -351,7 +351,7 @@ bool audio_driver_init_internal(
void *settings_data, void *settings_data,
bool audio_cb_inited); bool audio_cb_inited);
bool audio_driver_deinit(void *settings_data); bool audio_driver_deinit(void);
bool audio_driver_find_driver( bool audio_driver_find_driver(
void *settings_data, void *settings_data,

View File

@ -783,6 +783,13 @@ static void config_parse_file(global_t *global);
struct defaults g_defaults; struct defaults g_defaults;
static settings_t *config_st = NULL;
settings_t *config_get_ptr(void)
{
return config_st;
}
/** /**
* config_get_default_audio: * config_get_default_audio:
* *
@ -2365,7 +2372,7 @@ void config_set_defaults(void *data)
static bool first_initialized = true; static bool first_initialized = true;
#endif #endif
global_t *global = (global_t*)data; global_t *global = (global_t*)data;
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder); int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder);
int float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.placeholder); int float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.placeholder);
int int_settings_size = sizeof(settings->ints) / sizeof(settings->ints.placeholder); int int_settings_size = sizeof(settings->ints) / sizeof(settings->ints.placeholder);
@ -3777,7 +3784,7 @@ bool config_load_override(void *data)
system->info.library_name : NULL; system->info.library_name : NULL;
const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME); const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME);
const char *game_name = path_basename(rarch_path_basename); const char *game_name = path_basename(rarch_path_basename);
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
if (!string_is_empty(rarch_path_basename)) if (!string_is_empty(rarch_path_basename))
fill_pathname_parent_dir_name(content_dir_name, fill_pathname_parent_dir_name(content_dir_name,
@ -3935,7 +3942,7 @@ bool config_unload_override(void)
retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL); retroarch_override_setting_unset(RARCH_OVERRIDE_SETTING_SAVE_PATH, NULL);
if (!config_load_file(global_get_ptr(), if (!config_load_file(global_get_ptr(),
path_get(RARCH_PATH_CONFIG), config_get_ptr())) path_get(RARCH_PATH_CONFIG), config_st))
return false; return false;
RARCH_LOG("[Overrides]: Configuration overrides unloaded, original configuration restored.\n"); RARCH_LOG("[Overrides]: Configuration overrides unloaded, original configuration restored.\n");
@ -3978,7 +3985,7 @@ bool config_load_remap(const char *directory_input_remapping,
const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME); const char *rarch_path_basename = path_get(RARCH_PATH_BASENAME);
const char *game_name = path_basename(rarch_path_basename); const char *game_name = path_basename(rarch_path_basename);
enum msg_hash_enums msg_remap_loaded = MSG_GAME_REMAP_FILE_LOADED; enum msg_hash_enums msg_remap_loaded = MSG_GAME_REMAP_FILE_LOADED;
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
bool notification_show_remap_load = settings->bools.notification_show_remap_load; bool notification_show_remap_load = settings->bools.notification_show_remap_load;
if (string_is_empty(core_name)) if (string_is_empty(core_name))
@ -4097,7 +4104,7 @@ static void config_parse_file(global_t *global)
RARCH_LOG("[Config]: Loading config from: \"%s\".\n", config_path); RARCH_LOG("[Config]: Loading config from: \"%s\".\n", config_path);
{ {
if (!config_load_file(global, config_path, config_get_ptr())) if (!config_load_file(global, config_path, config_st))
{ {
RARCH_ERR("[Config]: Couldn't find config at path: \"%s\".\n", RARCH_ERR("[Config]: Couldn't find config at path: \"%s\".\n",
config_path); config_path);
@ -4382,7 +4389,7 @@ bool config_save_autoconf_profile(const
int32_t pid_user = 0; int32_t pid_user = 0;
int32_t vid_user = 0; int32_t vid_user = 0;
bool ret = false; bool ret = false;
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
const char *autoconf_dir = settings->paths.directory_autoconfig; const char *autoconf_dir = settings->paths.directory_autoconfig;
const char *joypad_driver_fallback = settings->arrays.input_joypad_driver; const char *joypad_driver_fallback = settings->arrays.input_joypad_driver;
const char *joypad_driver = NULL; const char *joypad_driver = NULL;
@ -4506,7 +4513,7 @@ bool config_save_file(const char *path)
struct config_array_setting *array_settings = NULL; struct config_array_setting *array_settings = NULL;
struct config_path_setting *path_settings = NULL; struct config_path_setting *path_settings = NULL;
config_file_t *conf = config_file_new_from_path_to_string(path); config_file_t *conf = config_file_new_from_path_to_string(path);
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
global_t *global = global_get_ptr(); global_t *global = global_get_ptr();
int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder); int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder);
int float_settings_size = sizeof(settings->floats)/ sizeof(settings->floats.placeholder); int float_settings_size = sizeof(settings->floats)/ sizeof(settings->floats.placeholder);
@ -4742,7 +4749,7 @@ bool config_save_overrides(enum override_type type, void *data)
char core_path[PATH_MAX_LENGTH]; char core_path[PATH_MAX_LENGTH];
char game_path[PATH_MAX_LENGTH]; char game_path[PATH_MAX_LENGTH];
char content_path[PATH_MAX_LENGTH]; char content_path[PATH_MAX_LENGTH];
settings_t *overrides = config_get_ptr(); settings_t *overrides = config_st;
int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder); int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.placeholder);
int float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.placeholder); int float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.placeholder);
int int_settings_size = sizeof(settings->ints) / sizeof(settings->ints.placeholder); int int_settings_size = sizeof(settings->ints) / sizeof(settings->ints.placeholder);
@ -5012,7 +5019,7 @@ bool input_remapping_load_file(void *data, const char *path)
{ {
unsigned i, j; unsigned i, j;
config_file_t *conf = (config_file_t*)data; config_file_t *conf = (config_file_t*)data;
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
global_t *global = global_get_ptr(); global_t *global = global_get_ptr();
char key_strings[RARCH_FIRST_CUSTOM_BIND + 8][8] = { char key_strings[RARCH_FIRST_CUSTOM_BIND + 8][8] = {
"b", "y", "select", "start", "b", "y", "select", "start",
@ -5153,7 +5160,7 @@ bool input_remapping_save_file(const char *path)
"a", "x", "l", "r", "l2", "r2", "a", "x", "l", "r", "l2", "r2",
"l3", "r3", "l_x+", "l_x-", "l_y+", "l_y-", "r_x+", "r_x-", "r_y+", "r_y-" }; "l3", "r3", "l_x+", "l_x-", "l_y+", "l_y-", "r_x+", "r_x-", "r_y+", "r_y-" };
config_file_t *conf = NULL; config_file_t *conf = NULL;
settings_t *settings = config_get_ptr(); settings_t *settings = config_st;
unsigned max_users = settings->uints.input_max_users; unsigned max_users = settings->uints.input_max_users;
const char *dir_input_remapping = settings->paths.directory_input_remapping; const char *dir_input_remapping = settings->paths.directory_input_remapping;
@ -5656,7 +5663,6 @@ static uint16_t input_config_parse_hat(const char *dir)
return 0; return 0;
} }
void input_config_parse_joy_button( void input_config_parse_joy_button(
char *s, char *s,
void *data, const char *prefix, void *data, const char *prefix,
@ -5715,3 +5721,17 @@ void input_config_parse_joy_button(
bind->joykey_label = strdup(tmp_a->value); bind->joykey_label = strdup(tmp_a->value);
} }
} }
void config_deinit(void)
{
if (config_st)
free(config_st);
config_st = NULL;
}
void config_init(void)
{
if (config_st)
return;
config_st = (settings_t*)calloc(1, sizeof(settings_t));
}

View File

@ -1080,6 +1080,10 @@ void config_load_file_salamander(void);
void config_save_file_salamander(void); void config_save_file_salamander(void);
#endif #endif
void config_init(void);
void config_deinit(void);
settings_t *config_get_ptr(void); settings_t *config_get_ptr(void);
#ifdef HAVE_LAKKA #ifdef HAVE_LAKKA

View File

@ -353,12 +353,6 @@ int content_get_subsystem(void)
return runloop_state.content_st.pending_subsystem_id; return runloop_state.content_st.pending_subsystem_id;
} }
settings_t *config_get_ptr(void)
{
struct rarch_state *p_rarch = &rarch_st;
return p_rarch->configuration_settings;
}
global_t *global_get_ptr(void) global_t *global_get_ptr(void)
{ {
struct rarch_state *p_rarch = &rarch_st; struct rarch_state *p_rarch = &rarch_st;
@ -8343,9 +8337,7 @@ void main_exit(void *args)
global_free(p_rarch); global_free(p_rarch);
task_queue_deinit(); task_queue_deinit();
if (p_rarch->configuration_settings) config_deinit();
free(p_rarch->configuration_settings);
p_rarch->configuration_settings = NULL;
ui_companion_driver_deinit(p_rarch); ui_companion_driver_deinit(p_rarch);
@ -8413,7 +8405,7 @@ int rarch_main(int argc, char *argv[], void *data)
command_event(CMD_EVENT_HISTORY_DEINIT, NULL); command_event(CMD_EVENT_HISTORY_DEINIT, NULL);
rarch_favorites_deinit(); rarch_favorites_deinit();
p_rarch->configuration_settings = (settings_t*)calloc(1, sizeof(settings_t)); config_init();
retroarch_deinit_drivers(p_rarch, &runloop_st->retro_ctx); retroarch_deinit_drivers(p_rarch, &runloop_st->retro_ctx);
retroarch_ctl(RARCH_CTL_STATE_FREE, NULL); retroarch_ctl(RARCH_CTL_STATE_FREE, NULL);
@ -8458,9 +8450,7 @@ int rarch_main(int argc, char *argv[], void *data)
return 1; return 1;
} }
ui_companion_driver_init_first(p_rarch->configuration_settings, ui_companion_driver_init_first(p_rarch);
p_rarch);
#if !defined(HAVE_MAIN) || defined(HAVE_QT) #if !defined(HAVE_MAIN) || defined(HAVE_QT)
for (;;) for (;;)
{ {
@ -12677,10 +12667,9 @@ static void ui_companion_driver_toggle(
#endif #endif
} }
static void ui_companion_driver_init_first( static void ui_companion_driver_init_first(struct rarch_state *p_rarch)
settings_t *settings,
struct rarch_state *p_rarch)
{ {
settings_t *settings = config_get_ptr();
#ifdef HAVE_QT #ifdef HAVE_QT
bool desktop_menu_enable = settings->bools.desktop_menu_enable; bool desktop_menu_enable = settings->bools.desktop_menu_enable;
bool ui_companion_toggle = settings->bools.ui_companion_toggle; bool ui_companion_toggle = settings->bools.ui_companion_toggle;
@ -15496,7 +15485,7 @@ static void driver_uninit(struct rarch_state *p_rarch, int flags)
} }
if (flags & DRIVER_AUDIO_MASK) if (flags & DRIVER_AUDIO_MASK)
audio_driver_deinit(p_rarch->configuration_settings); audio_driver_deinit();
if ((flags & DRIVER_VIDEO_MASK)) if ((flags & DRIVER_VIDEO_MASK))
video_st->data = NULL; video_st->data = NULL;

View File

@ -545,7 +545,6 @@ struct rarch_state
const wifi_driver_t *wifi_driver; const wifi_driver_t *wifi_driver;
void *wifi_data; void *wifi_data;
settings_t *configuration_settings;
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
/* Used while Netplay is running */ /* Used while Netplay is running */
netplay_t *netplay_data; netplay_t *netplay_data;

View File

@ -65,9 +65,7 @@ static bool init_libretro_symbols(
struct retro_core_t *current_core); struct retro_core_t *current_core);
static void ui_companion_driver_deinit(struct rarch_state *p_rarch); static void ui_companion_driver_deinit(struct rarch_state *p_rarch);
static void ui_companion_driver_init_first( static void ui_companion_driver_init_first(struct rarch_state *p_rarch);
settings_t *settings,
struct rarch_state *p_rarch);
static void driver_uninit(struct rarch_state *p_rarch, int flags); static void driver_uninit(struct rarch_state *p_rarch, int flags);