Add dropdown list for playlist history size

This commit is contained in:
twinaphex 2018-09-23 17:21:00 +02:00
parent 1f864e379b
commit 3b6f3d027c
2 changed files with 65 additions and 72 deletions

View File

@ -7724,106 +7724,98 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
break;
case ST_INT:
{
float i;
int32_t orig_value = *setting->value.target.integer;
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_INT_ITEM;
float step = setting->step;
double min = setting->enforce_minrange ? setting->min : 0.00;
double max = setting->enforce_maxrange ? setting->max : 999.00;
if (setting->enforce_minrange && setting->enforce_maxrange)
if (setting->get_string_representation)
{
float i;
float step = setting->step;
double min = setting->min;
double max = setting->max;
if (setting->get_string_representation)
for (i = min; i <= max; i += step)
{
for (i = min; i <= max; i += step)
{
char val_s[256], val_d[256];
int val = (int)i;
char val_s[256], val_d[256];
int val = (int)i;
*setting->value.target.integer = val;
*setting->value.target.integer = val;
setting->get_string_representation(setting,
val_s, sizeof(val_s));
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
*setting->value.target.integer = orig_value;
setting->get_string_representation(setting,
val_s, sizeof(val_s));
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
else
*setting->value.target.integer = orig_value;
}
else
{
for (i = min; i <= max; i += step)
{
for (i = min; i <= max; i += step)
{
char val_s[16], val_d[16];
int val = (int)i;
char val_s[16], val_d[16];
int val = (int)i;
snprintf(val_s, sizeof(val_s), "%d", val);
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
snprintf(val_s, sizeof(val_s), "%d", val);
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
}
}
break;
case ST_UINT:
{
float i;
unsigned orig_value = *setting->value.target.unsigned_integer;
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM;
float step = setting->step;
double min = setting->enforce_minrange ? setting->min : 0.00;
double max = setting->enforce_maxrange ? setting->max : 999.00;
if (setting->enforce_minrange && setting->enforce_maxrange)
if (setting->get_string_representation)
{
float i;
float step = setting->step;
double min = setting->min;
double max = setting->max;
if (setting->get_string_representation)
for (i = min; i <= max; i += step)
{
for (i = min; i <= max; i += step)
{
char val_s[256], val_d[256];
int val = (int)i;
char val_s[256], val_d[256];
int val = (int)i;
*setting->value.target.unsigned_integer = val;
*setting->value.target.unsigned_integer = val;
setting->get_string_representation(setting,
val_s, sizeof(val_s));
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
*setting->value.target.unsigned_integer = orig_value;
setting->get_string_representation(setting,
val_s, sizeof(val_s));
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
else
*setting->value.target.unsigned_integer = orig_value;
}
else
{
for (i = min; i <= max; i += step)
{
for (i = min; i <= max; i += step)
{
char val_s[16], val_d[16];
int val = (int)i;
char val_s[16], val_d[16];
int val = (int)i;
snprintf(val_s, sizeof(val_s), "%d", val);
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
snprintf(val_s, sizeof(val_s), "%d", val);
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
menu_entries_append_enum(info->list,
val_s,
val_d,
MENU_ENUM_LABEL_NO_ITEMS,
setting_type, val, 0);
}
}
}

View File

@ -8127,6 +8127,7 @@ static bool setting_append_list(
parent_group,
general_write_handler,
general_read_handler);
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
menu_settings_list_current_add_range(list, list_info, 0, 0, 1.0, true, false);
END_SUB_GROUP(list, list_info, parent_group);