diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 996de2e7d5..2a02eace85 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -6044,30 +6044,48 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct break; case DISPLAYLIST_ONSCREEN_NOTIFICATIONS_SETTINGS_LIST: { - menu_displaylist_build_info_t build_list[] = { - {MENU_ENUM_LABEL_VIDEO_FONT_ENABLE, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_FPS_SHOW, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_FPS_UPDATE_INTERVAL, PARSE_ONLY_UINT }, - {MENU_ENUM_LABEL_FRAMECOUNT_SHOW, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_STATISTICS_SHOW, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_MEMORY_SHOW, PARSE_ONLY_BOOL }, - {MENU_ENUM_LABEL_VIDEO_FONT_PATH, PARSE_ONLY_PATH }, - {MENU_ENUM_LABEL_VIDEO_FONT_SIZE, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_RED, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_GREEN, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_BLUE, PARSE_ONLY_FLOAT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE, PARSE_ONLY_BOOL}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED, PARSE_ONLY_UINT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN, PARSE_ONLY_UINT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE, PARSE_ONLY_UINT}, - {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY,PARSE_ONLY_FLOAT}, + settings_t *settings = config_get_ptr(); + menu_displaylist_build_info_selective_t build_list[] = { + {MENU_ENUM_LABEL_VIDEO_FONT_ENABLE, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_FPS_SHOW, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_FPS_UPDATE_INTERVAL, PARSE_ONLY_UINT, true }, + {MENU_ENUM_LABEL_FRAMECOUNT_SHOW, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_STATISTICS_SHOW, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_MEMORY_SHOW, PARSE_ONLY_BOOL, true }, + {MENU_ENUM_LABEL_VIDEO_FONT_PATH, PARSE_ONLY_PATH, true }, + {MENU_ENUM_LABEL_VIDEO_FONT_SIZE, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_RED, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_GREEN, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_BLUE, PARSE_ONLY_FLOAT, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE, PARSE_ONLY_BOOL, true}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED, PARSE_ONLY_UINT, false}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN, PARSE_ONLY_UINT, false}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE, PARSE_ONLY_UINT, false}, + {MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY,PARSE_ONLY_FLOAT, false}, }; for (i = 0; i < ARRAY_SIZE(build_list); i++) { - if (menu_displaylist_parse_settings_enum(list, + switch (build_list[i].enum_idx) + { + case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED: + case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN: + case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE: + case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY: + if (settings->bools.video_msg_bgcolor_enable) + build_list[i].checked = true; + break; + default: + break; + } + } + + for (i = 0; i < ARRAY_SIZE(build_list); i++) + { + if (build_list[i].checked && + menu_displaylist_parse_settings_enum(list, build_list[i].enum_idx, build_list[i].parse_type, false) == 0) count++; diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 497617a3dc..a12bd0c918 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -11780,6 +11780,8 @@ static bool setting_append_list( general_read_handler, SD_FLAG_NONE ); + (*list)[list_info->index - 1].action_left = &setting_bool_action_left_with_refresh; + (*list)[list_info->index - 1].action_right = &setting_bool_action_right_with_refresh; CONFIG_UINT( list, list_info,