add a hint so the user can tell between devices with the same name
This commit is contained in:
parent
3e8659cdb9
commit
3ac80f6864
|
@ -229,6 +229,7 @@ typedef struct settings
|
||||||
unsigned joypad_map[MAX_USERS];
|
unsigned joypad_map[MAX_USERS];
|
||||||
unsigned device[MAX_USERS];
|
unsigned device[MAX_USERS];
|
||||||
char device_names[MAX_USERS][64];
|
char device_names[MAX_USERS][64];
|
||||||
|
unsigned device_name_index[MAX_USERS];
|
||||||
bool autodetect_enable;
|
bool autodetect_enable;
|
||||||
bool netplay_client_swap_input;
|
bool netplay_client_swap_input;
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,25 @@
|
||||||
|
|
||||||
static bool remote_is_bound = false;
|
static bool remote_is_bound = false;
|
||||||
|
|
||||||
|
/* adds an index for devices with the same name so they can be identified in the GUI*/
|
||||||
|
static void input_reindex_devices()
|
||||||
|
{
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
for(int i=0; i < settings->input.max_users; i++)
|
||||||
|
settings->input.device_name_index[i]=0;
|
||||||
|
for(int i=0; i < settings->input.max_users; i++)
|
||||||
|
{
|
||||||
|
const char *tmp = settings->input.device_names[i];
|
||||||
|
|
||||||
|
int k=1;
|
||||||
|
for(int j=0; j < settings->input.max_users; j++)
|
||||||
|
{
|
||||||
|
if(!strcmp(tmp,settings->input.device_names[j]) && settings->input.device_name_index[i]==0)
|
||||||
|
settings->input.device_name_index[j]=k++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void input_autoconfigure_joypad_conf(config_file_t *conf,
|
static void input_autoconfigure_joypad_conf(config_file_t *conf,
|
||||||
struct retro_keybind *binds)
|
struct retro_keybind *binds)
|
||||||
{
|
{
|
||||||
|
@ -149,7 +168,7 @@ static void input_autoconfigure_joypad_add(
|
||||||
if (!block_osd_spam)
|
if (!block_osd_spam)
|
||||||
rarch_main_msg_queue_push(msg, 0, 60, false);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
}
|
}
|
||||||
|
input_reindex_devices();
|
||||||
#if 0
|
#if 0
|
||||||
RARCH_LOG("Autodetect: %s\n", msg);
|
RARCH_LOG("Autodetect: %s\n", msg);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -434,7 +434,7 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info)
|
||||||
{
|
{
|
||||||
if (settings->input.autoconfigured[controller])
|
if (settings->input.autoconfigured[controller])
|
||||||
{
|
{
|
||||||
snprintf(tmp, sizeof(tmp), "Port #%d device name: %s", controller, settings->input.device_names[controller]);
|
snprintf(tmp, sizeof(tmp), "Port #%d device name: %s (#%d)", controller, settings->input.device_names[controller], settings->input.device_name_index[controller]);
|
||||||
menu_entries_push(info->list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
menu_entries_push(info->list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
||||||
snprintf(tmp, sizeof(tmp), "Port #%d device VID/PID: %d/%d", controller, settings->input.vid[controller], settings->input.pid[controller]);
|
snprintf(tmp, sizeof(tmp), "Port #%d device VID/PID: %d/%d", controller, settings->input.vid[controller], settings->input.pid[controller]);
|
||||||
menu_entries_push(info->list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
menu_entries_push(info->list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0, 0);
|
||||||
|
|
|
@ -2648,7 +2648,10 @@ static void get_string_representation_bind_device(void * data, char *s,
|
||||||
const char *device_name = settings->input.device_names[map];
|
const char *device_name = settings->input.device_names[map];
|
||||||
|
|
||||||
if (*device_name)
|
if (*device_name)
|
||||||
strlcpy(s, device_name, len);
|
snprintf(s, len,
|
||||||
|
"%s (#%u)",
|
||||||
|
device_name,
|
||||||
|
settings->input.device_name_index[map]);
|
||||||
else
|
else
|
||||||
snprintf(s, len,
|
snprintf(s, len,
|
||||||
"%s (%s #%u)",
|
"%s (%s #%u)",
|
||||||
|
|
Loading…
Reference in New Issue