add display name and config name to autoconf

This commit is contained in:
radius 2018-01-11 17:06:02 -05:00
parent 8dd6328fb7
commit 3b334b60d6
7 changed files with 94 additions and 16 deletions

View File

@ -244,6 +244,8 @@ static uint16_t input_config_pid[MAX_USERS];
uint64_t lifecycle_state;
char input_device_names[MAX_INPUT_DEVICES][64];
char input_device_display_names[MAX_INPUT_DEVICES][64];
char input_device_config_names[MAX_INPUT_DEVICES][64];
struct retro_keybind input_config_binds[MAX_USERS][RARCH_BIND_LIST_END];
struct retro_keybind input_autoconf_binds[MAX_USERS][RARCH_BIND_LIST_END];
const struct retro_keybind *libretro_input_binds[MAX_USERS];
@ -2690,6 +2692,20 @@ const char *input_config_get_device_name(unsigned port)
return input_device_names[port];
}
const char *input_config_get_device_display_name(unsigned port)
{
if (string_is_empty(input_device_display_names[port]))
return NULL;
return input_device_display_names[port];
}
const char *input_config_get_device_config_name(unsigned port)
{
if (string_is_empty(input_device_config_names[port]))
return NULL;
return input_device_config_names[port];
}
void input_config_set_device_name(unsigned port, const char *name)
{
if (!string_is_empty(name))
@ -2702,12 +2718,42 @@ void input_config_set_device_name(unsigned port, const char *name)
}
}
void input_config_set_device_config_name(unsigned port, const char *name)
{
if (!string_is_empty(name))
{
strlcpy(input_device_config_names[port],
name,
sizeof(input_device_config_names[port]));
}
}
void input_config_set_device_display_name(unsigned port, const char *name)
{
if (!string_is_empty(name))
{
strlcpy(input_device_display_names[port],
name,
sizeof(input_device_display_names[port]));
}
}
void input_config_clear_device_name(unsigned port)
{
input_device_names[port][0] = '\0';
input_autoconfigure_joypad_reindex_devices();
}
void input_config_clear_device_display_name(unsigned port)
{
input_device_display_names[port][0] = '\0';
}
void input_config_clear_device_config_name(unsigned port)
{
input_device_config_names[port][0] = '\0';
}
unsigned *input_config_get_device_ptr(unsigned port)
{
settings_t *settings = config_get_ptr();

View File

@ -759,8 +759,16 @@ void input_config_parse_mouse_button(void *data, const char *prefix,
void input_config_set_device_name(unsigned port, const char *name);
void input_config_set_device_display_name(unsigned port, const char *name);
void input_config_set_device_config_name(unsigned port, const char *name);
void input_config_clear_device_name(unsigned port);
void input_config_clear_device_display_name(unsigned port);
void input_config_clear_device_config_name(unsigned port);
unsigned input_config_get_device_count();
unsigned *input_config_get_device_ptr(unsigned port);
@ -771,6 +779,10 @@ void input_config_set_device(unsigned port, unsigned id);
const char *input_config_get_device_name(unsigned port);
const char *input_config_get_device_display_name(unsigned port);
const char *input_config_get_device_config_name(unsigned port);
const struct retro_keybind *input_config_get_bind_auto(unsigned port, unsigned id);
void input_config_set_pid(unsigned port, uint16_t pid);

View File

@ -65,16 +65,6 @@ struct config_include_list
struct config_include_list *next;
};
struct config_file
{
char *path;
struct config_entry_list *entries;
struct config_entry_list *tail;
unsigned include_depth;
struct config_include_list *includes;
};
static config_file_t *config_file_new_internal(
const char *path, unsigned depth);

View File

@ -52,6 +52,17 @@ RETRO_BEGIN_DECLS
base->var = tmp; \
} while(0)
struct config_file
{
char *path;
struct config_entry_list *entries;
struct config_entry_list *tail;
unsigned include_depth;
struct config_include_list *includes;
};
typedef struct config_file config_file_t;
/* Config file format

View File

@ -498,6 +498,20 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
menu_entries_append_enum(info->list, tmp, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
snprintf(tmp, sizeof(tmp), "Port #%d device display name: %s",
controller,
input_config_get_device_display_name(controller) ?
input_config_get_device_display_name(controller) : "N/A");
menu_entries_append_enum(info->list, tmp, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
snprintf(tmp, sizeof(tmp), "Port #%d device config name: %s",
controller,
input_config_get_device_display_name(controller) ?
input_config_get_device_config_name(controller) : "N/A");
menu_entries_append_enum(info->list, tmp, "",
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
snprintf(tmp, sizeof(tmp), "Port #%d device VID/PID: %d/%d",
controller,
input_config_get_vid(controller),

View File

@ -1512,7 +1512,8 @@ static void get_string_representation_bind_device(void * data, char *s,
if (map < max_devices)
{
const char *device_name = input_config_get_device_name(map);
const char *device_name = input_config_get_device_display_name(map) ?
input_config_get_device_display_name(map) : input_config_get_device_name(map);
if (!string_is_empty(device_name))
{

View File

@ -275,6 +275,8 @@ static void input_autoconfigure_joypad_add(config_file_t *conf,
task_set_title(task, strdup(msg));
}
}
input_config_set_device_display_name(params->idx, display_name);
input_config_set_device_config_name(params->idx, path_basename(conf->path));
input_autoconfigure_joypad_reindex_devices();
@ -901,6 +903,8 @@ bool input_autoconfigure_disconnect(unsigned i, const char *ident)
state->msg = strdup(msg);
input_config_clear_device_name(state->idx);
input_config_clear_device_display_name(state->idx);
input_config_clear_device_config_name(state->idx);
task->state = state;
task->handler = input_autoconfigure_disconnect_handler;