add display name and config name to autoconf
This commit is contained in:
parent
8dd6328fb7
commit
3b334b60d6
|
@ -244,6 +244,8 @@ static uint16_t input_config_pid[MAX_USERS];
|
||||||
|
|
||||||
uint64_t lifecycle_state;
|
uint64_t lifecycle_state;
|
||||||
char input_device_names[MAX_INPUT_DEVICES][64];
|
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_config_binds[MAX_USERS][RARCH_BIND_LIST_END];
|
||||||
struct retro_keybind input_autoconf_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];
|
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];
|
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)
|
void input_config_set_device_name(unsigned port, const char *name)
|
||||||
{
|
{
|
||||||
if (!string_is_empty(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)
|
void input_config_clear_device_name(unsigned port)
|
||||||
{
|
{
|
||||||
input_device_names[port][0] = '\0';
|
input_device_names[port][0] = '\0';
|
||||||
input_autoconfigure_joypad_reindex_devices();
|
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)
|
unsigned *input_config_get_device_ptr(unsigned port)
|
||||||
{
|
{
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
|
@ -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_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_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_count();
|
||||||
|
|
||||||
unsigned *input_config_get_device_ptr(unsigned port);
|
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_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);
|
const struct retro_keybind *input_config_get_bind_auto(unsigned port, unsigned id);
|
||||||
|
|
||||||
void input_config_set_pid(unsigned port, uint16_t pid);
|
void input_config_set_pid(unsigned port, uint16_t pid);
|
||||||
|
|
|
@ -65,16 +65,6 @@ struct config_include_list
|
||||||
struct config_include_list *next;
|
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(
|
static config_file_t *config_file_new_internal(
|
||||||
const char *path, unsigned depth);
|
const char *path, unsigned depth);
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,17 @@ RETRO_BEGIN_DECLS
|
||||||
base->var = tmp; \
|
base->var = tmp; \
|
||||||
} while(0)
|
} 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;
|
typedef struct config_file config_file_t;
|
||||||
|
|
||||||
/* Config file format
|
/* Config file format
|
||||||
|
|
|
@ -491,18 +491,32 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
|
||||||
{
|
{
|
||||||
if (input_is_autoconfigured(controller))
|
if (input_is_autoconfigured(controller))
|
||||||
{
|
{
|
||||||
snprintf(tmp, sizeof(tmp), "Port #%d device name: %s (#%d)",
|
snprintf(tmp, sizeof(tmp), "Port #%d device name: %s (#%d)",
|
||||||
controller,
|
controller,
|
||||||
input_config_get_device_name(controller),
|
input_config_get_device_name(controller),
|
||||||
input_autoconfigure_get_device_name_index(controller));
|
input_autoconfigure_get_device_name_index(controller));
|
||||||
menu_entries_append_enum(info->list, tmp, "",
|
menu_entries_append_enum(info->list, tmp, "",
|
||||||
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
|
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
|
||||||
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
||||||
snprintf(tmp, sizeof(tmp), "Port #%d device VID/PID: %d/%d",
|
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,
|
controller,
|
||||||
input_config_get_vid(controller),
|
input_config_get_vid(controller),
|
||||||
input_config_get_pid(controller));
|
input_config_get_pid(controller));
|
||||||
menu_entries_append_enum(info->list, tmp, "",
|
menu_entries_append_enum(info->list, tmp, "",
|
||||||
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
|
MENU_ENUM_LABEL_SYSTEM_INFO_ENTRY,
|
||||||
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1512,7 +1512,8 @@ static void get_string_representation_bind_device(void * data, char *s,
|
||||||
|
|
||||||
if (map < max_devices)
|
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))
|
if (!string_is_empty(device_name))
|
||||||
{
|
{
|
||||||
|
|
|
@ -259,7 +259,7 @@ static void input_autoconfigure_joypad_add(config_file_t *conf,
|
||||||
? params->name : (!string_is_empty(display_name) ? display_name : "N/A"),
|
? params->name : (!string_is_empty(display_name) ? display_name : "N/A"),
|
||||||
msg_hash_to_str(MSG_DEVICE_CONFIGURED_IN_PORT),
|
msg_hash_to_str(MSG_DEVICE_CONFIGURED_IN_PORT),
|
||||||
params->idx);
|
params->idx);
|
||||||
|
|
||||||
/* allow overriding the swap menu controls for player 1*/
|
/* allow overriding the swap menu controls for player 1*/
|
||||||
if (params->idx == 0)
|
if (params->idx == 0)
|
||||||
{
|
{
|
||||||
|
@ -275,6 +275,8 @@ static void input_autoconfigure_joypad_add(config_file_t *conf,
|
||||||
task_set_title(task, strdup(msg));
|
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();
|
input_autoconfigure_joypad_reindex_devices();
|
||||||
|
@ -901,6 +903,8 @@ bool input_autoconfigure_disconnect(unsigned i, const char *ident)
|
||||||
state->msg = strdup(msg);
|
state->msg = strdup(msg);
|
||||||
|
|
||||||
input_config_clear_device_name(state->idx);
|
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->state = state;
|
||||||
task->handler = input_autoconfigure_disconnect_handler;
|
task->handler = input_autoconfigure_disconnect_handler;
|
||||||
|
|
Loading…
Reference in New Issue