(UI/QT) Dynamically generate settings for 'throttle'
This commit is contained in:
parent
085f25e81f
commit
f33e04c747
|
@ -4382,6 +4382,50 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
case DISPLAYLIST_REWIND_SETTINGS_LIST:
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_REWIND_ENABLE,
|
||||||
|
PARSE_ONLY_BOOL, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_REWIND_GRANULARITY,
|
||||||
|
PARSE_ONLY_UINT, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE,
|
||||||
|
PARSE_ONLY_SIZE, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP,
|
||||||
|
PARSE_ONLY_UINT, false) == 0)
|
||||||
|
count++;
|
||||||
|
break;
|
||||||
|
case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST:
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_REWIND_SETTINGS, PARSE_ACTION, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_FASTFORWARD_RATIO,
|
||||||
|
PARSE_ONLY_FLOAT, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_SLOWMOTION_RATIO,
|
||||||
|
PARSE_ONLY_FLOAT, false) == 0)
|
||||||
|
count++;
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE,
|
||||||
|
PARSE_ONLY_BOOL, false) == 0)
|
||||||
|
count++;
|
||||||
|
|
||||||
|
{
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
if (settings->bools.menu_show_advanced_settings)
|
||||||
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
|
MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE,
|
||||||
|
PARSE_ONLY_BOOL, false) == 0)
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case DISPLAYLIST_MENU_SETTINGS_LIST:
|
case DISPLAYLIST_MENU_SETTINGS_LIST:
|
||||||
if (menu_displaylist_parse_settings_enum(list,
|
if (menu_displaylist_parse_settings_enum(list,
|
||||||
MENU_ENUM_LABEL_MENU_WALLPAPER,
|
MENU_ENUM_LABEL_MENU_WALLPAPER,
|
||||||
|
@ -5691,43 +5735,14 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||||
break;
|
break;
|
||||||
case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST:
|
case DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
count = menu_displaylist_build_list(info->list, type);
|
||||||
MENU_ENUM_LABEL_REWIND_SETTINGS, PARSE_ACTION, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_FASTFORWARD_RATIO,
|
|
||||||
PARSE_ONLY_FLOAT, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_SLOWMOTION_RATIO,
|
|
||||||
PARSE_ONLY_FLOAT, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE,
|
|
||||||
PARSE_ONLY_BOOL, false);
|
|
||||||
|
|
||||||
{
|
|
||||||
settings_t *settings = config_get_ptr();
|
|
||||||
if (settings->bools.menu_show_advanced_settings)
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE,
|
|
||||||
PARSE_ONLY_BOOL, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
info->need_refresh = true;
|
info->need_refresh = true;
|
||||||
info->need_push = true;
|
info->need_push = true;
|
||||||
break;
|
break;
|
||||||
case DISPLAYLIST_REWIND_SETTINGS_LIST:
|
case DISPLAYLIST_REWIND_SETTINGS_LIST:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
count = menu_displaylist_build_list(info->list, type);
|
||||||
MENU_ENUM_LABEL_REWIND_ENABLE,
|
|
||||||
PARSE_ONLY_BOOL, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_REWIND_GRANULARITY,
|
|
||||||
PARSE_ONLY_UINT, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE,
|
|
||||||
PARSE_ONLY_SIZE, false);
|
|
||||||
menu_displaylist_parse_settings_enum(info->list,
|
|
||||||
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP,
|
|
||||||
PARSE_ONLY_UINT, false);
|
|
||||||
|
|
||||||
info->need_refresh = true;
|
info->need_refresh = true;
|
||||||
info->need_push = true;
|
info->need_push = true;
|
||||||
|
@ -6253,7 +6268,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||||
case DISPLAYLIST_MENU_SETTINGS_LIST:
|
case DISPLAYLIST_MENU_SETTINGS_LIST:
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
|
|
||||||
count = menu_displaylist_build_list(info->list, DISPLAYLIST_MENU_SETTINGS_LIST);
|
count = menu_displaylist_build_list(info->list,
|
||||||
|
type);
|
||||||
|
|
||||||
if (count == 0)
|
if (count == 0)
|
||||||
menu_entries_append_enum(info->list,
|
menu_entries_append_enum(info->list,
|
||||||
|
|
|
@ -25,13 +25,22 @@ FrameThrottlePage::FrameThrottlePage(QObject *parent) :
|
||||||
|
|
||||||
QWidget *FrameThrottlePage::widget()
|
QWidget *FrameThrottlePage::widget()
|
||||||
{
|
{
|
||||||
QWidget *widget = new QWidget;
|
unsigned i;
|
||||||
FormLayout *layout = new FormLayout;
|
QWidget *widget = new QWidget;
|
||||||
|
FormLayout *layout = new FormLayout;
|
||||||
|
file_list_t *list = (file_list_t*)calloc(1, sizeof(*list));
|
||||||
|
unsigned count = menu_displaylist_build_list(
|
||||||
|
list, DISPLAYLIST_FRAME_THROTTLE_SETTINGS_LIST);
|
||||||
|
|
||||||
layout->add(MENU_ENUM_LABEL_FASTFORWARD_RATIO);
|
for (i = 0; i < list->size; i++)
|
||||||
layout->add(MENU_ENUM_LABEL_SLOWMOTION_RATIO);
|
{
|
||||||
layout->add(MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE);
|
menu_file_list_cbs_t *cbs = (menu_file_list_cbs_t*)
|
||||||
layout->add(MENU_ENUM_LABEL_MENU_THROTTLE_FRAMERATE);
|
file_list_get_actiondata_at_offset(list, i);
|
||||||
|
|
||||||
|
layout->add(cbs->enum_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
file_list_free(list);
|
||||||
|
|
||||||
widget->setLayout(layout);
|
widget->setLayout(layout);
|
||||||
|
|
||||||
|
@ -46,13 +55,22 @@ RewindPage::RewindPage(QObject *parent) :
|
||||||
|
|
||||||
QWidget *RewindPage::widget()
|
QWidget *RewindPage::widget()
|
||||||
{
|
{
|
||||||
QWidget *widget = new QWidget;
|
unsigned i;
|
||||||
FormLayout *layout = new FormLayout;
|
QWidget *widget = new QWidget;
|
||||||
|
FormLayout *layout = new FormLayout;
|
||||||
|
file_list_t *list = (file_list_t*)calloc(1, sizeof(*list));
|
||||||
|
unsigned count = menu_displaylist_build_list(
|
||||||
|
list, DISPLAYLIST_REWIND_SETTINGS_LIST);
|
||||||
|
|
||||||
layout->add(MENU_ENUM_LABEL_REWIND_ENABLE);
|
for (i = 0; i < list->size; i++)
|
||||||
layout->add(MENU_ENUM_LABEL_REWIND_GRANULARITY);
|
{
|
||||||
layout->add(MENU_ENUM_LABEL_REWIND_BUFFER_SIZE);
|
menu_file_list_cbs_t *cbs = (menu_file_list_cbs_t*)
|
||||||
layout->add(MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP);
|
file_list_get_actiondata_at_offset(list, i);
|
||||||
|
|
||||||
|
layout->add(cbs->enum_idx);
|
||||||
|
}
|
||||||
|
|
||||||
|
file_list_free(list);
|
||||||
|
|
||||||
widget->setLayout(layout);
|
widget->setLayout(layout);
|
||||||
|
|
||||||
|
|
|
@ -232,8 +232,6 @@ QWidget *AppearancePage::widget()
|
||||||
layout->add(cbs->enum_idx);
|
layout->add(cbs->enum_idx);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
file_list_free_actiondata(list, i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
file_list_free(list);
|
file_list_free(list);
|
||||||
|
|
Loading…
Reference in New Issue