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
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
audio_driver_mixer_deinit();
#endif
@ -758,7 +758,7 @@ bool audio_driver_init_internal(
return true;
error:
return audio_driver_deinit(settings);
return audio_driver_deinit();
}
void audio_driver_sample(int16_t left, int16_t right)

View file

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

View file

@ -783,6 +783,13 @@ static void config_parse_file(global_t *global);
struct defaults g_defaults;
static settings_t *config_st = NULL;
settings_t *config_get_ptr(void)
{
return config_st;
}
/**
* config_get_default_audio:
*
@ -2365,7 +2372,7 @@ void config_set_defaults(void *data)
static bool first_initialized = true;
#endif
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 float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.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;
const char *rarch_path_basename = path_get(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))
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);
if (!config_load_file(global_get_ptr(),
path_get(RARCH_PATH_CONFIG), config_get_ptr()))
path_get(RARCH_PATH_CONFIG), config_st))
return false;
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 *game_name = path_basename(rarch_path_basename);
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;
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);
{
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",
config_path);
@ -4382,7 +4389,7 @@ bool config_save_autoconf_profile(const
int32_t pid_user = 0;
int32_t vid_user = 0;
bool ret = false;
settings_t *settings = config_get_ptr();
settings_t *settings = config_st;
const char *autoconf_dir = settings->paths.directory_autoconfig;
const char *joypad_driver_fallback = settings->arrays.input_joypad_driver;
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_path_setting *path_settings = NULL;
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();
int bool_settings_size = sizeof(settings->bools) / sizeof(settings->bools.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 game_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 float_settings_size = sizeof(settings->floats) / sizeof(settings->floats.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;
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();
char key_strings[RARCH_FIRST_CUSTOM_BIND + 8][8] = {
"b", "y", "select", "start",
@ -5153,7 +5160,7 @@ bool input_remapping_save_file(const char *path)
"a", "x", "l", "r", "l2", "r2",
"l3", "r3", "l_x+", "l_x-", "l_y+", "l_y-", "r_x+", "r_x-", "r_y+", "r_y-" };
config_file_t *conf = NULL;
settings_t *settings = config_get_ptr();
settings_t *settings = config_st;
unsigned max_users = settings->uints.input_max_users;
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;
}
void input_config_parse_joy_button(
char *s,
void *data, const char *prefix,
@ -5715,3 +5721,17 @@ void input_config_parse_joy_button(
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);
#endif
void config_init(void);
void config_deinit(void);
settings_t *config_get_ptr(void);
#ifdef HAVE_LAKKA

View file

@ -353,12 +353,6 @@ int content_get_subsystem(void)
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)
{
struct rarch_state *p_rarch = &rarch_st;
@ -8343,9 +8337,7 @@ void main_exit(void *args)
global_free(p_rarch);
task_queue_deinit();
if (p_rarch->configuration_settings)
free(p_rarch->configuration_settings);
p_rarch->configuration_settings = NULL;
config_deinit();
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);
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_ctl(RARCH_CTL_STATE_FREE, NULL);
@ -8458,9 +8450,7 @@ int rarch_main(int argc, char *argv[], void *data)
return 1;
}
ui_companion_driver_init_first(p_rarch->configuration_settings,
p_rarch);
ui_companion_driver_init_first(p_rarch);
#if !defined(HAVE_MAIN) || defined(HAVE_QT)
for (;;)
{
@ -12677,10 +12667,9 @@ static void ui_companion_driver_toggle(
#endif
}
static void ui_companion_driver_init_first(
settings_t *settings,
struct rarch_state *p_rarch)
static void ui_companion_driver_init_first(struct rarch_state *p_rarch)
{
settings_t *settings = config_get_ptr();
#ifdef HAVE_QT
bool desktop_menu_enable = settings->bools.desktop_menu_enable;
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)
audio_driver_deinit(p_rarch->configuration_settings);
audio_driver_deinit();
if ((flags & DRIVER_VIDEO_MASK))
video_st->data = NULL;

View file

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

View file

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