Skip to content

Commit cc124e7

Browse files
committed
Map users to core ports on first button press
The first user to press a button is mapped to core port 1 (player 1), the second is mapped to core port 2 (player 2), and so on. Configured by the input_remap_on_button_press option. When enabled, all users are unmapped by default (assigned to 'None'/MAX_USERS).
1 parent 11d4e46 commit cc124e7

File tree

13 files changed

+279
-32
lines changed

13 files changed

+279
-32
lines changed

config.def.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1124,6 +1124,10 @@
11241124
* input remap file */
11251125
#define DEFAULT_NOTIFICATION_SHOW_REMAP_LOAD true
11261126

1127+
/* Display a notification when a user is mapped to a core
1128+
* port on first button press */
1129+
#define DEFAULT_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT true
1130+
11271131
/* Display a notification when loading a
11281132
* configuration override file */
11291133
#define DEFAULT_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD true
@@ -1620,6 +1624,10 @@
16201624
* gamepads, plug-and-play style. */
16211625
#define DEFAULT_INPUT_AUTODETECT_ENABLE true
16221626

1627+
/* Map user to core port on first button press. First person
1628+
* to press a button is player 1, second is player 2, etc. */
1629+
#define DEFAULT_INPUT_REMAP_PORTS_ON_BUTTON_PRESS false
1630+
16231631
/* Enables accelerometer/gyroscope/illuminance
16241632
* sensor input, if supported */
16251633
#if defined(ANDROID)

configuration.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,7 @@ static struct config_bool_setting *populate_settings_bool(
19341934
SETTING_BOOL("notification_show_cheats_applied", &settings->bools.notification_show_cheats_applied, true, DEFAULT_NOTIFICATION_SHOW_CHEATS_APPLIED, false);
19351935
SETTING_BOOL("notification_show_patch_applied", &settings->bools.notification_show_patch_applied, true, DEFAULT_NOTIFICATION_SHOW_PATCH_APPLIED, false);
19361936
SETTING_BOOL("notification_show_remap_load", &settings->bools.notification_show_remap_load, true, DEFAULT_NOTIFICATION_SHOW_REMAP_LOAD, false);
1937+
SETTING_BOOL("notification_show_user_mapped_to_core_port", &settings->bools.notification_show_user_mapped_to_core_port, true, DEFAULT_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT, false);
19371938
SETTING_BOOL("notification_show_config_override_load", &settings->bools.notification_show_config_override_load, true, DEFAULT_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD, false);
19381939
SETTING_BOOL("notification_show_set_initial_disk", &settings->bools.notification_show_set_initial_disk, true, DEFAULT_NOTIFICATION_SHOW_SET_INITIAL_DISK, false);
19391940
SETTING_BOOL("notification_show_disk_control", &settings->bools.notification_show_disk_control, true, DEFAULT_NOTIFICATION_SHOW_DISK_CONTROL, false);
@@ -2177,6 +2178,7 @@ static struct config_bool_setting *populate_settings_bool(
21772178
SETTING_BOOL("input_turbo_allow_dpad", &settings->bools.input_turbo_allow_dpad, true, DEFAULT_TURBO_ALLOW_DPAD, false);
21782179
SETTING_BOOL("input_auto_mouse_grab", &settings->bools.input_auto_mouse_grab, true, DEFAULT_INPUT_AUTO_MOUSE_GRAB, false);
21792180
SETTING_BOOL("input_remap_binds_enable", &settings->bools.input_remap_binds_enable, true, true, false);
2181+
SETTING_BOOL("input_remap_ports_on_button_press", &settings->bools.input_remap_ports_on_button_press, true, DEFAULT_INPUT_REMAP_PORTS_ON_BUTTON_PRESS, false);
21802182
SETTING_BOOL("input_remap_sort_by_controller_enable", &settings->bools.input_remap_sort_by_controller_enable, true, false, false);
21812183
SETTING_BOOL("input_hotkey_device_merge", &settings->bools.input_hotkey_device_merge, true, DEFAULT_INPUT_HOTKEY_DEVICE_MERGE, false);
21822184
#ifdef HAVE_MENU

configuration.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -702,6 +702,7 @@ typedef struct settings
702702
/* Input */
703703
bool input_remap_binds_enable;
704704
bool input_remap_sort_by_controller_enable;
705+
bool input_remap_ports_on_button_press;
705706
bool input_autodetect_enable;
706707
bool input_sensors_enable;
707708
bool input_overlay_enable;
@@ -757,6 +758,7 @@ typedef struct settings
757758
bool notification_show_cheats_applied;
758759
bool notification_show_patch_applied;
759760
bool notification_show_remap_load;
761+
bool notification_show_user_mapped_to_core_port;
760762
bool notification_show_config_override_load;
761763
bool notification_show_set_initial_disk;
762764
bool notification_show_disk_control;

input/input_driver.c

Lines changed: 149 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5990,6 +5990,104 @@ static void input_keys_pressed(
59905990
input_st->input_hotkey_block_counter = 0;
59915991
}
59925992

5993+
/* Ignore d-pad buttons to avoid false positives.
5994+
* Some wireless gamepad receivers report 0 values for all axes when the
5995+
* gamepad is powered off or not yet connected. Since 0 represents the
5996+
* "left" and "up" positions for d-pad axes, this creates false button
5997+
* presses that could trigger unwanted input mapping.
5998+
*/
5999+
static bool any_button_ex_dpad_pressed(int32_t state)
6000+
{
6001+
static const uint32_t button_mask =
6002+
(1 << RETRO_DEVICE_ID_JOYPAD_A) |
6003+
(1 << RETRO_DEVICE_ID_JOYPAD_B) |
6004+
(1 << RETRO_DEVICE_ID_JOYPAD_X) |
6005+
(1 << RETRO_DEVICE_ID_JOYPAD_Y) |
6006+
(1 << RETRO_DEVICE_ID_JOYPAD_L) |
6007+
(1 << RETRO_DEVICE_ID_JOYPAD_R) |
6008+
(1 << RETRO_DEVICE_ID_JOYPAD_L2) |
6009+
(1 << RETRO_DEVICE_ID_JOYPAD_R2) |
6010+
(1 << RETRO_DEVICE_ID_JOYPAD_L3) |
6011+
(1 << RETRO_DEVICE_ID_JOYPAD_R3) |
6012+
(1 << RETRO_DEVICE_ID_JOYPAD_START) |
6013+
(1 << RETRO_DEVICE_ID_JOYPAD_SELECT);
6014+
6015+
return (state & button_mask) != 0;
6016+
}
6017+
6018+
/* Returns MAX_USERS if all core ports are mapped to a user. */
6019+
static unsigned get_first_free_core_port(settings_t *settings)
6020+
{
6021+
unsigned core_port_idx;
6022+
for (core_port_idx = 0; core_port_idx < MAX_USERS; core_port_idx++)
6023+
{
6024+
unsigned *core_port_users = settings->uints.input_remap_port_map[core_port_idx];
6025+
if (core_port_users[0] == MAX_USERS)
6026+
return core_port_idx;
6027+
}
6028+
6029+
return MAX_USERS;
6030+
}
6031+
6032+
static void map_user_to_first_free_core_port(unsigned user_idx, settings_t *settings)
6033+
{
6034+
unsigned core_port_idx;
6035+
unsigned joypad_idx;
6036+
const char *device_display_name;
6037+
char msg[128];
6038+
6039+
msg[0] = '\0';
6040+
6041+
if (!settings || user_idx >= MAX_USERS)
6042+
{
6043+
RARCH_ERR("[Automap] Invalid parameters\n");
6044+
return;
6045+
}
6046+
6047+
/* Check if user is already mapped */
6048+
if (settings->uints.input_remap_ports[user_idx] < MAX_USERS)
6049+
{
6050+
RARCH_LOG("[Automap] User %u already mapped to core port %u\n",
6051+
user_idx, settings->uints.input_remap_ports[user_idx]);
6052+
return;
6053+
}
6054+
6055+
core_port_idx = get_first_free_core_port(settings);
6056+
joypad_idx = settings->uints.input_joypad_index[user_idx];
6057+
device_display_name = input_config_get_device_display_name(joypad_idx);
6058+
6059+
if (string_is_empty(device_display_name))
6060+
device_display_name = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE);
6061+
6062+
if (core_port_idx < MAX_USERS)
6063+
{
6064+
configuration_set_uint(settings,
6065+
settings->uints.input_remap_ports[user_idx], core_port_idx);
6066+
configuration_set_uint(settings,
6067+
settings->uints.input_libretro_device[core_port_idx], RETRO_DEVICE_JOYPAD);
6068+
6069+
input_remapping_update_port_map();
6070+
6071+
RARCH_LOG("[Automap] %s (user %u) mapped to core port %u\n",
6072+
device_display_name, user_idx, core_port_idx);
6073+
6074+
if (settings->bools.notification_show_user_mapped_to_core_port)
6075+
{
6076+
snprintf(msg, sizeof(msg),
6077+
msg_hash_to_str(MSG_USER_MAPPED_TO_CORE_PORT_NR),
6078+
device_display_name,
6079+
core_port_idx + 1);
6080+
runloop_msg_queue_push(msg, strlen(msg), 1, 180, true, NULL,
6081+
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
6082+
}
6083+
}
6084+
else
6085+
{
6086+
RARCH_LOG("[Automap] No free core ports - %s (user %u) not mapped\n",
6087+
device_display_name, user_idx);
6088+
}
6089+
}
6090+
59936091
void input_driver_poll(void)
59946092
{
59956093
size_t i, j;
@@ -6006,9 +6104,15 @@ void input_driver_poll(void)
60066104
*sec_joypad = NULL;
60076105
#endif
60086106
bool input_remap_binds_enable = settings->bools.input_remap_binds_enable;
6107+
bool input_remap_ports_on_button_press
6108+
= settings->bools.input_remap_ports_on_button_press;
60096109
float input_axis_threshold = settings->floats.input_axis_threshold;
60106110
uint8_t max_users = (uint8_t)settings->uints.input_max_users;
60116111

6112+
#ifdef HAVE_MENU
6113+
input_remap_ports_on_button_press = input_remap_ports_on_button_press && !(menu_state_get_ptr()->flags & MENU_ST_FLAG_ALIVE);
6114+
#endif
6115+
60126116
if (joypad && joypad->poll)
60136117
joypad->poll();
60146118
if (sec_joypad && sec_joypad->poll)
@@ -6040,6 +6144,22 @@ void input_driver_poll(void)
60406144
joypad_info[i].joy_idx = settings->uints.input_joypad_index[i];
60416145
joypad_info[i].auto_binds = input_autoconf_binds[joypad_info[i].joy_idx];
60426146

6147+
if (input_remap_ports_on_button_press)
6148+
{
6149+
if (!(settings->uints.input_remap_ports[i] < MAX_USERS))
6150+
{
6151+
int32_t buttons_st = input_state_wrap(input_st->current_driver, input_st->current_data,
6152+
joypad, sec_joypad, &joypad_info[i],
6153+
(*input_st->libretro_input_binds),
6154+
(input_st->flags & INP_FLAG_KB_MAPPING_BLOCKED) ? true : false,
6155+
(unsigned)i,
6156+
RETRO_DEVICE_JOYPAD, 0, RETRO_DEVICE_ID_JOYPAD_MASK);
6157+
6158+
if (any_button_ex_dpad_pressed(buttons_st))
6159+
map_user_to_first_free_core_port(i, settings);
6160+
}
6161+
}
6162+
60436163
input_st->turbo_btns.frame_enable[i] =
60446164
(*input_st->libretro_input_binds[i])[button_id].valid
60456165
&& settings->bools.input_turbo_enable ?
@@ -6672,6 +6792,11 @@ void input_remapping_update_port_map(void)
66726792
port_map_index[remap_port]++;
66736793
}
66746794
}
6795+
6796+
/* Changing mapped port may leave a core port unused;
6797+
* reinitialise controllers to ensure that any such
6798+
* ports are set to 'RETRO_DEVICE_NONE' */
6799+
command_event(CMD_EVENT_CONTROLLER_INIT, NULL);
66756800
}
66766801

66776802
void input_remapping_deinit(bool save_remap)
@@ -6690,6 +6815,29 @@ void input_remapping_deinit(bool save_remap)
66906815
| RUNLOOP_FLAG_REMAPS_GAME_ACTIVE);
66916816
}
66926817

6818+
void input_remapping_set_remap_ports_defaults(void)
6819+
{
6820+
unsigned i;
6821+
settings_t *settings = config_get_ptr();
6822+
bool remap_on_button_press = settings->bools.input_remap_ports_on_button_press;
6823+
6824+
for (i = 0; i < MAX_USERS; i++)
6825+
{
6826+
configuration_set_uint(settings,
6827+
settings->uints.input_remap_ports[i],
6828+
remap_on_button_press ? MAX_USERS : i);
6829+
6830+
configuration_set_uint(settings,
6831+
settings->uints.input_libretro_device[i],
6832+
remap_on_button_press ? RETRO_DEVICE_NONE : RETRO_DEVICE_JOYPAD);
6833+
}
6834+
6835+
/* Need to call 'input_remapping_update_port_map()'
6836+
* whenever 'settings->uints.input_remap_ports'
6837+
* is modified */
6838+
input_remapping_update_port_map();
6839+
}
6840+
66936841
void input_remapping_set_defaults(bool clear_cache)
66946842
{
66956843
unsigned i, j;
@@ -6714,16 +6862,9 @@ void input_remapping_set_defaults(bool clear_cache)
67146862
for (j = RARCH_FIRST_CUSTOM_BIND; j < (RARCH_FIRST_CUSTOM_BIND + 8); j++)
67156863
configuration_set_uint(settings,
67166864
settings->uints.input_remap_ids[i][j], j);
6717-
6718-
/* Controller port remaps */
6719-
configuration_set_uint(settings,
6720-
settings->uints.input_remap_ports[i], i);
67216865
}
67226866

6723-
/* Need to call 'input_remapping_update_port_map()'
6724-
* whenever 'settings->uints.input_remap_ports'
6725-
* is modified */
6726-
input_remapping_update_port_map();
6867+
input_remapping_set_remap_ports_defaults();
67276868

67286869
/* Restore 'global' settings that were cached on
67296870
* the last core init

input/input_remapping.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,30 @@ void input_remapping_deinit(bool save_remap);
9292
*/
9393
void input_remapping_set_defaults(bool clear_cache);
9494

95+
/**
96+
* Used to set the default port mapping values within the `settings` struct.
97+
* Only sets port mapping related values, not button/keyboard/analog remaps.
98+
*
99+
* If settings->bools.input_remap_ports_on_button_press is true, leave all
100+
* users/devices disconnected. Users will be mapped to a core port on first
101+
* button press.
102+
*
103+
* user 0 -> core port MAX_USERS (RETRO_DEVICE_NONE)
104+
* user 1 -> core port MAX_USERS (RETRO_DEVICE_NONE)
105+
* ...
106+
* user n -> core port MAX_USERS (RETRO_DEVICE_NONE)
107+
*
108+
* Else map each user to a core port and set all devices to RETRO_DEVICE_JOYPAD:
109+
*
110+
* user 0 -> core port 0 (RETRO_DEVICE_JOYPAD)
111+
* user 1 -> core port 1 (RETRO_DEVICE_JOYPAD)
112+
* ...
113+
* user n -> core port n (RETRO_DEVICE_JOYPAD)
114+
*
115+
* (where n = MAX_USERS - 1)
116+
*/
117+
void input_remapping_set_remap_ports_defaults(void);
118+
95119
/**
96120
* Checks `input_config_bind_map` for the requested `input_bind_map`, and if
97121
* the bind has been registered, returns its base.

intl/msg_hash_lbl.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2170,6 +2170,10 @@ MSG_HASH(
21702170
MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE,
21712171
"input_remap_binds_enable"
21722172
)
2173+
MSG_HASH(
2174+
MENU_ENUM_LABEL_INPUT_REMAP_PORTS_ON_BUTTON_PRESS,
2175+
"input_remap_ports_on_button_press"
2176+
)
21732177
MSG_HASH(
21742178
MENU_ENUM_LABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE,
21752179
"input_remap_sort_by_controller_enable"
@@ -6266,6 +6270,10 @@ MSG_HASH(
62666270
MENU_ENUM_LABEL_NOTIFICATION_SHOW_REMAP_LOAD,
62676271
"notification_show_remap_load"
62686272
)
6273+
MSG_HASH(
6274+
MENU_ENUM_LABEL_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT,
6275+
"notification_show_user_mapped_to_core_port"
6276+
)
62696277
MSG_HASH(
62706278
MENU_ENUM_LABEL_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD,
62716279
"notification_show_config_override_load"

intl/msg_hash_us.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3337,6 +3337,14 @@ MSG_HASH(
33373337
MENU_ENUM_SUBLABEL_INPUT_REMAP_BINDS_ENABLE,
33383338
"Override the input binds with the remapped binds set for the current core."
33393339
)
3340+
MSG_HASH(
3341+
MENU_ENUM_LABEL_VALUE_INPUT_REMAP_PORTS_ON_BUTTON_PRESS,
3342+
"Remap Ports on Button Press"
3343+
)
3344+
MSG_HASH(
3345+
MENU_ENUM_SUBLABEL_INPUT_REMAP_PORTS_ON_BUTTON_PRESS,
3346+
"First user to press a button becomes player 1, second becomes player 2, etc."
3347+
)
33403348
MSG_HASH(
33413349
MENU_ENUM_LABEL_VALUE_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE,
33423350
"Sort Remaps By Gamepad"
@@ -5993,6 +6001,14 @@ MSG_HASH(
59936001
MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_REMAP_LOAD,
59946002
"Display an on-screen message when loading input remap files."
59956003
)
6004+
MSG_HASH(
6005+
MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT,
6006+
"Remap Ports on Button Press Notifications"
6007+
)
6008+
MSG_HASH(
6009+
MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT,
6010+
"Display an on-screen message when a user is mapped to a core port."
6011+
)
59966012
MSG_HASH(
59976013
MENU_ENUM_LABEL_VALUE_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD,
59986014
"Config Override Loaded Notifications"
@@ -15542,6 +15558,10 @@ MSG_HASH(
1554215558
MSG_DEVICE_NOT_CONFIGURED_FALLBACK_NR,
1554315559
"%s (%u/%u) not configured, using fallback"
1554415560
)
15561+
MSG_HASH(
15562+
MSG_USER_MAPPED_TO_CORE_PORT_NR,
15563+
"%s is Player %u"
15564+
)
1554515565
MSG_HASH(
1554615566
MSG_BLUETOOTH_SCAN_COMPLETE,
1554715567
"Bluetooth scan complete."

menu/cbs/menu_cbs_sublabel.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -687,6 +687,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_cheats_applied, M
687687
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_patch_applied, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_PATCH_APPLIED)
688688
#endif
689689
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_remap_load, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_REMAP_LOAD)
690+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_user_mapped_to_core_port, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT)
690691
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_config_override_load, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD)
691692
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_set_initial_disk, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_SET_INITIAL_DISK)
692693
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_notification_show_disk_control, MENU_ENUM_SUBLABEL_NOTIFICATION_SHOW_DISK_CONTROL)
@@ -823,6 +824,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_replay_max_keep, MENU_
823824
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_replay_checkpoint_interval, MENU_ENUM_SUBLABEL_REPLAY_CHECKPOINT_INTERVAL)
824825
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_replay_checkpoint_deserialize, MENU_ENUM_SUBLABEL_REPLAY_CHECKPOINT_DESERIALIZE)
825826
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_remap_binds_enable, MENU_ENUM_SUBLABEL_INPUT_REMAP_BINDS_ENABLE)
827+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_remap_ports_on_button_press, MENU_ENUM_SUBLABEL_INPUT_REMAP_PORTS_ON_BUTTON_PRESS)
826828
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_remap_sort_by_controller_enable, MENU_ENUM_SUBLABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE)
827829
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_input_autodetect_enable, MENU_ENUM_SUBLABEL_INPUT_AUTODETECT_ENABLE)
828830
#if defined(HAVE_DINPUT) || defined(HAVE_WINRAWINPUT)
@@ -4146,6 +4148,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
41464148
case MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE:
41474149
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_remap_binds_enable);
41484150
break;
4151+
case MENU_ENUM_LABEL_INPUT_REMAP_PORTS_ON_BUTTON_PRESS:
4152+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_remap_ports_on_button_press);
4153+
break;
41494154
case MENU_ENUM_LABEL_INPUT_REMAP_SORT_BY_CONTROLLER_ENABLE:
41504155
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_remap_sort_by_controller_enable);
41514156
break;
@@ -4534,6 +4539,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
45344539
case MENU_ENUM_LABEL_NOTIFICATION_SHOW_REMAP_LOAD:
45354540
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_remap_load);
45364541
break;
4542+
case MENU_ENUM_LABEL_NOTIFICATION_SHOW_USER_MAPPED_TO_CORE_PORT:
4543+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_user_mapped_to_core_port);
4544+
break;
45374545
case MENU_ENUM_LABEL_NOTIFICATION_SHOW_CONFIG_OVERRIDE_LOAD:
45384546
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_notification_show_config_override_load);
45394547
break;

0 commit comments

Comments
 (0)