mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 13:14:04 +00:00
Kill off a bunch of cruft in settings_data.c now that the iOS
menu no longer depends on it
This commit is contained in:
parent
20df9d5524
commit
0745a66d49
285
settings_data.c
285
settings_data.c
@ -42,83 +42,6 @@
|
|||||||
#include "menu/menu_shader.h"
|
#include "menu/menu_shader.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void get_input_config_prefix(char *buf, size_t sizeof_buf,
|
|
||||||
rarch_setting_t *setting)
|
|
||||||
{
|
|
||||||
if (!buf || !setting)
|
|
||||||
return;
|
|
||||||
|
|
||||||
snprintf(buf, sizeof_buf, "input%cplayer%u",
|
|
||||||
setting->index ? '_' : '\0', setting->index);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void get_input_config_key(char *buf, size_t sizeof_buf,
|
|
||||||
rarch_setting_t* setting, const char* type)
|
|
||||||
{
|
|
||||||
char prefix[32];
|
|
||||||
|
|
||||||
if (!buf || !setting)
|
|
||||||
return;
|
|
||||||
|
|
||||||
get_input_config_prefix(prefix, sizeof(prefix), setting);
|
|
||||||
snprintf(buf, sizeof_buf, "%s_%s%c%s", prefix, setting->name,
|
|
||||||
type ? '_' : '\0', type);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef APPLE
|
|
||||||
/* FIXME - make portable */
|
|
||||||
|
|
||||||
static void get_key_name(char *buf, size_t sizeof_buf,
|
|
||||||
rarch_setting_t* setting)
|
|
||||||
{
|
|
||||||
uint32_t hidkey, i;
|
|
||||||
|
|
||||||
if (!buf || !setting)
|
|
||||||
return;
|
|
||||||
if (BINDFOR(*setting).key == RETROK_UNKNOWN)
|
|
||||||
return;
|
|
||||||
|
|
||||||
hidkey = input_translate_rk_to_keysym(BINDFOR(*setting).key);
|
|
||||||
|
|
||||||
for (i = 0; apple_key_name_map[i].hid_id; i++)
|
|
||||||
{
|
|
||||||
if (apple_key_name_map[i].hid_id == hidkey)
|
|
||||||
{
|
|
||||||
strlcpy(buf, apple_key_name_map[i].keyname, sizeof_buf);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void get_button_name(char *buf, size_t sizeof_buf,
|
|
||||||
rarch_setting_t* setting)
|
|
||||||
{
|
|
||||||
if (!buf || !setting)
|
|
||||||
return;
|
|
||||||
if (BINDFOR(*setting).joykey == NO_BTN)
|
|
||||||
return;
|
|
||||||
|
|
||||||
snprintf(buf, sizeof_buf, "%lld",
|
|
||||||
(long long int)(BINDFOR(*setting).joykey));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void get_axis_name(char *buf, size_t sizeof_buf,
|
|
||||||
rarch_setting_t* setting)
|
|
||||||
{
|
|
||||||
uint32_t joyaxis;
|
|
||||||
|
|
||||||
if (!buf || !setting)
|
|
||||||
return;
|
|
||||||
|
|
||||||
joyaxis = BINDFOR(*setting).joyaxis;
|
|
||||||
|
|
||||||
if (AXIS_NEG_GET(joyaxis) != AXIS_DIR_NONE)
|
|
||||||
snprintf(buf, sizeof_buf, "-%u", AXIS_NEG_GET(joyaxis));
|
|
||||||
else if (AXIS_POS_GET(joyaxis) != AXIS_DIR_NONE)
|
|
||||||
snprintf(buf, sizeof_buf, "+%u", AXIS_POS_GET(joyaxis));
|
|
||||||
}
|
|
||||||
|
|
||||||
void setting_data_reset_setting(rarch_setting_t* setting)
|
void setting_data_reset_setting(rarch_setting_t* setting)
|
||||||
{
|
{
|
||||||
if (!setting)
|
if (!setting)
|
||||||
@ -181,214 +104,6 @@ void setting_data_reset(rarch_setting_t* settings)
|
|||||||
setting_data_reset_setting(settings);
|
setting_data_reset_setting(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool setting_data_load_config(
|
|
||||||
rarch_setting_t* settings, config_file_t* cfg)
|
|
||||||
{
|
|
||||||
if (!settings || !cfg)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
for (; settings->type != ST_NONE; settings++)
|
|
||||||
{
|
|
||||||
switch (settings->type)
|
|
||||||
{
|
|
||||||
case ST_BOOL:
|
|
||||||
config_get_bool(cfg, settings->name,
|
|
||||||
settings->value.boolean);
|
|
||||||
break;
|
|
||||||
case ST_PATH:
|
|
||||||
case ST_DIR:
|
|
||||||
config_get_path(cfg, settings->name,
|
|
||||||
settings->value.string, settings->size);
|
|
||||||
break;
|
|
||||||
case ST_STRING:
|
|
||||||
config_get_array(cfg, settings->name,
|
|
||||||
settings->value.string, settings->size);
|
|
||||||
break;
|
|
||||||
case ST_INT:
|
|
||||||
config_get_int(cfg, settings->name,
|
|
||||||
settings->value.integer);
|
|
||||||
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.integer < settings->min)
|
|
||||||
*settings->value.integer = settings->min;
|
|
||||||
if (*settings->value.integer > settings->max)
|
|
||||||
*settings->value.integer = settings->max;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ST_UINT:
|
|
||||||
config_get_uint(cfg, settings->name,
|
|
||||||
settings->value.unsigned_integer);
|
|
||||||
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.unsigned_integer < settings->min)
|
|
||||||
*settings->value.unsigned_integer = settings->min;
|
|
||||||
if (*settings->value.unsigned_integer > settings->max)
|
|
||||||
*settings->value.unsigned_integer = settings->max;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ST_FLOAT:
|
|
||||||
config_get_float(cfg, settings->name,
|
|
||||||
settings->value.fraction);
|
|
||||||
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.fraction < settings->min)
|
|
||||||
*settings->value.fraction = settings->min;
|
|
||||||
if (*settings->value.fraction > settings->max)
|
|
||||||
*settings->value.fraction = settings->max;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ST_BIND:
|
|
||||||
{
|
|
||||||
char prefix[32];
|
|
||||||
get_input_config_prefix(prefix, sizeof(prefix), settings);
|
|
||||||
input_config_parse_key(cfg, prefix, settings->name,
|
|
||||||
settings->value.keybind);
|
|
||||||
input_config_parse_joy_button(cfg, prefix, settings->name,
|
|
||||||
settings->value.keybind);
|
|
||||||
input_config_parse_joy_axis(cfg, prefix, settings->name,
|
|
||||||
settings->value.keybind);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case ST_ACTION:
|
|
||||||
break;
|
|
||||||
/* TODO */
|
|
||||||
case ST_HEX:
|
|
||||||
break;
|
|
||||||
case ST_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_SUB_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_END_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_END_SUB_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_NONE:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (settings->change_handler)
|
|
||||||
settings->change_handler(settings);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool setting_data_load_config_path(rarch_setting_t* settings,
|
|
||||||
const char* path)
|
|
||||||
{
|
|
||||||
config_file_t *cfg = (config_file_t*)config_file_new(path);
|
|
||||||
|
|
||||||
if (!cfg)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
setting_data_load_config(settings, cfg);
|
|
||||||
config_file_free(cfg);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool setting_data_save_config(rarch_setting_t* settings,
|
|
||||||
config_file_t* cfg)
|
|
||||||
{
|
|
||||||
if (!settings || !cfg)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
for (; settings->type != ST_NONE; settings++)
|
|
||||||
{
|
|
||||||
switch (settings->type)
|
|
||||||
{
|
|
||||||
case ST_BOOL:
|
|
||||||
config_set_bool(cfg, settings->name,
|
|
||||||
*settings->value.boolean);
|
|
||||||
break;
|
|
||||||
case ST_PATH:
|
|
||||||
case ST_DIR:
|
|
||||||
config_set_path(cfg, settings->name,
|
|
||||||
settings->value.string);
|
|
||||||
break;
|
|
||||||
case ST_STRING:
|
|
||||||
config_set_string(cfg, settings->name,
|
|
||||||
settings->value.string);
|
|
||||||
break;
|
|
||||||
case ST_INT:
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.integer < settings->min)
|
|
||||||
*settings->value.integer = settings->min;
|
|
||||||
if (*settings->value.integer > settings->max)
|
|
||||||
*settings->value.integer = settings->max;
|
|
||||||
}
|
|
||||||
config_set_int(cfg, settings->name, *settings->value.integer);
|
|
||||||
break;
|
|
||||||
case ST_UINT:
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.unsigned_integer < settings->min)
|
|
||||||
*settings->value.unsigned_integer = settings->min;
|
|
||||||
if (*settings->value.unsigned_integer > settings->max)
|
|
||||||
*settings->value.unsigned_integer = settings->max;
|
|
||||||
}
|
|
||||||
config_set_uint64(cfg, settings->name,
|
|
||||||
*settings->value.unsigned_integer);
|
|
||||||
break;
|
|
||||||
case ST_FLOAT:
|
|
||||||
if (settings->flags & SD_FLAG_HAS_RANGE)
|
|
||||||
{
|
|
||||||
if (*settings->value.fraction < settings->min)
|
|
||||||
*settings->value.fraction = settings->min;
|
|
||||||
if (*settings->value.fraction > settings->max)
|
|
||||||
*settings->value.fraction = settings->max;
|
|
||||||
}
|
|
||||||
config_set_float(cfg, settings->name, *settings->value.fraction);
|
|
||||||
break;
|
|
||||||
case ST_BIND:
|
|
||||||
{
|
|
||||||
char button_name[32], axis_name[32], key_name[32],
|
|
||||||
input_config_key[64];
|
|
||||||
strlcpy(button_name, "nul", sizeof(button_name));
|
|
||||||
strlcpy(axis_name, "nul", sizeof(axis_name));
|
|
||||||
strlcpy(key_name, "nul", sizeof(key_name));
|
|
||||||
strlcpy(input_config_key, "nul", sizeof(input_config_key));
|
|
||||||
|
|
||||||
get_button_name(button_name, sizeof(button_name), settings);
|
|
||||||
get_axis_name(axis_name, sizeof(axis_name), settings);
|
|
||||||
#ifdef APPLE
|
|
||||||
get_key_name(key_name, sizeof(key_name), settings);
|
|
||||||
#endif
|
|
||||||
get_input_config_key(input_config_key,
|
|
||||||
sizeof(input_config_key), settings, 0);
|
|
||||||
config_set_string(cfg, input_config_key, key_name);
|
|
||||||
get_input_config_key(input_config_key,
|
|
||||||
sizeof(input_config_key), settings, "btn");
|
|
||||||
config_set_string(cfg, input_config_key, button_name);
|
|
||||||
get_input_config_key(input_config_key,
|
|
||||||
sizeof(input_config_key), settings, "axis");
|
|
||||||
config_set_string(cfg, input_config_key, axis_name);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
/* TODO */
|
|
||||||
case ST_ACTION:
|
|
||||||
case ST_HEX:
|
|
||||||
break;
|
|
||||||
case ST_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_SUB_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_END_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_END_SUB_GROUP:
|
|
||||||
break;
|
|
||||||
case ST_NONE:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
rarch_setting_t* setting_data_find_setting(rarch_setting_t* setting,
|
rarch_setting_t* setting_data_find_setting(rarch_setting_t* setting,
|
||||||
const char* name)
|
const char* name)
|
||||||
{
|
{
|
||||||
|
@ -32,8 +32,6 @@ void setting_data_reset(rarch_setting_t* settings);
|
|||||||
|
|
||||||
bool setting_data_load_config_path(rarch_setting_t* settings,
|
bool setting_data_load_config_path(rarch_setting_t* settings,
|
||||||
const char* path);
|
const char* path);
|
||||||
bool setting_data_save_config(rarch_setting_t* settings,
|
|
||||||
config_file_t* config);
|
|
||||||
|
|
||||||
rarch_setting_t* setting_data_find_setting(rarch_setting_t* settings,
|
rarch_setting_t* setting_data_find_setting(rarch_setting_t* settings,
|
||||||
const char* name);
|
const char* name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user