mirror of
https://github.com/libretro/RetroArch
synced 2025-02-07 12:39:54 +00:00
(Lakka) Start implementing settings
This commit is contained in:
parent
b42ed89d23
commit
21236b0aa0
@ -31,6 +31,8 @@
|
||||
#include "../../../config.def.h"
|
||||
#include "../../../input/keyboard_line.h"
|
||||
|
||||
#include "../../../settings_data.h"
|
||||
|
||||
#include "../disp/lakka.h"
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "../../../performance.h"
|
||||
#include "../../../input/input_common.h"
|
||||
|
||||
#include "../../../settings_data.h"
|
||||
#include "../../../screenshot.h"
|
||||
#include "../../../gfx/fonts/bitmap.h"
|
||||
|
||||
@ -697,6 +698,8 @@ static void lakka_context_destroy(void *data)
|
||||
|
||||
void lakka_init_settings(void)
|
||||
{
|
||||
rarch_setting_t *setting_data = (rarch_setting_t*)setting_data_get_list();
|
||||
|
||||
menu_category_t *category = (menu_category_t*)&categories[0];
|
||||
|
||||
strlcpy(category->name, "Settings", sizeof(category->name));
|
||||
@ -707,101 +710,77 @@ void lakka_init_settings(void)
|
||||
category->items = (menu_item_t*)
|
||||
calloc(category->num_items, sizeof(menu_item_t));
|
||||
|
||||
int j, k;
|
||||
int j, k, jj, kk;
|
||||
for (j = 0; j <= 512; j++)
|
||||
{
|
||||
rarch_setting_t group = (rarch_setting_t)setting_data[j];
|
||||
|
||||
// General options item
|
||||
if (group.type == ST_GROUP)
|
||||
{
|
||||
category->num_items++;
|
||||
category->items = (menu_item_t*)
|
||||
realloc(category->items, category->num_items * sizeof(menu_item_t));
|
||||
|
||||
menu_item_t *item = (menu_item_t*)&category->items[jj];
|
||||
|
||||
strlcpy(item->name, group.name, sizeof(item->name));
|
||||
item->alpha = jj ? 0.5 : 1.0;
|
||||
item->zoom = jj ? i_passive_zoom : i_active_zoom;
|
||||
item->y = jj ?
|
||||
vspacing*(under_item_offset+jj) : vspacing * active_item_factor;
|
||||
item->active_subitem = 0;
|
||||
item->num_subitems = 0;
|
||||
|
||||
kk = 0;
|
||||
for (k = 0; k <= 512; k++)
|
||||
{
|
||||
rarch_setting_t subgroup = (rarch_setting_t)setting_data[k];
|
||||
|
||||
if (subgroup.type == ST_SUB_GROUP) // TODO filter on parent
|
||||
{
|
||||
item->num_subitems++;
|
||||
#if 0
|
||||
item->subitems = (menu_subitem_t*)
|
||||
realloc(item->subitems, item->num_subitems * sizeof(menu_subitem_t));
|
||||
#endif
|
||||
item->subitems = (menu_subitem_t*)
|
||||
calloc(item->num_subitems, sizeof(menu_subitem_t));
|
||||
|
||||
menu_subitem_t *subitem = (menu_subitem_t*)&item->subitems[kk];
|
||||
|
||||
strlcpy(subitem->name, subgroup.name, sizeof(subitem->name));
|
||||
subitem->alpha = kk ? 1.0 : 0.5;
|
||||
subitem->zoom = kk ? i_active_zoom : i_passive_zoom;
|
||||
subitem->y = kk ? vspacing * (kk + under_item_offset)
|
||||
: vspacing * active_item_factor;
|
||||
|
||||
kk++;
|
||||
}
|
||||
}
|
||||
|
||||
jj++;
|
||||
}
|
||||
}
|
||||
|
||||
j = 0;
|
||||
category->num_items++;
|
||||
category->items = (menu_item_t*)
|
||||
realloc(category->items, category->num_items * sizeof(menu_item_t));
|
||||
|
||||
menu_item_t *item0 = (menu_item_t*)&category->items[j];
|
||||
menu_item_t *itemq = (menu_item_t*)&category->items[jj];
|
||||
|
||||
strlcpy(item0->name, "General Options", sizeof(item0->name));
|
||||
item0->alpha = j ? 0.5 : 1.0;
|
||||
item0->zoom = j ? i_passive_zoom : i_active_zoom;
|
||||
item0->y = j ?
|
||||
vspacing*(under_item_offset+j) : vspacing * active_item_factor;
|
||||
item0->active_subitem = 0;
|
||||
item0->num_subitems = 0;
|
||||
|
||||
/* General options subitems */
|
||||
|
||||
k = 0;
|
||||
item0->num_subitems++;
|
||||
#if 0
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
realloc(item0->subitems, item0->num_subitems * sizeof(menu_subitem_t));
|
||||
#endif
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
calloc(item0->num_subitems, sizeof(menu_subitem_t));
|
||||
|
||||
menu_subitem_t *subitem0 = (menu_subitem_t*)&item0->subitems[k];
|
||||
|
||||
strlcpy(subitem0->name, "Libretro Logging Level", sizeof(subitem0->name));
|
||||
subitem0->alpha = k ? 1.0 : 0.5;
|
||||
subitem0->zoom = k ? i_active_zoom : i_passive_zoom;
|
||||
subitem0->y = k ? vspacing * (k + under_item_offset)
|
||||
: vspacing * active_item_factor;
|
||||
|
||||
k = 1;
|
||||
item0->num_subitems++;
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
realloc(item0->subitems, item0->num_subitems * sizeof(menu_subitem_t));
|
||||
#if 0
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
calloc(item0->num_subitems, sizeof(menu_subitem_t));
|
||||
#endif
|
||||
|
||||
menu_subitem_t *subitem1 = (menu_subitem_t*)&item0->subitems[k];
|
||||
|
||||
strlcpy(subitem1->name, "Logging Verbosity", sizeof(subitem1->name));
|
||||
subitem1->alpha = k ? 1.0 : 0.5;
|
||||
subitem1->zoom = k ? i_active_zoom : i_passive_zoom;
|
||||
subitem1->y = k ? vspacing * (k + under_item_offset) :
|
||||
strlcpy(itemq->name, "Quit RetroArch", sizeof(itemq->name));
|
||||
itemq->alpha = jj ? 0.5 : 1.0;
|
||||
itemq->zoom = jj ? i_passive_zoom : i_active_zoom;
|
||||
itemq->y = jj ? vspacing*(under_item_offset+jj) :
|
||||
vspacing * active_item_factor;
|
||||
|
||||
k = 2;
|
||||
item0->num_subitems++;
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
realloc(item0->subitems, item0->num_subitems * sizeof(menu_subitem_t));
|
||||
#if 0
|
||||
item0->subitems = (menu_subitem_t*)
|
||||
calloc(item0->num_subitems, sizeof(menu_subitem_t));
|
||||
#endif
|
||||
|
||||
menu_subitem_t *subitem2 = (menu_subitem_t*)&item0->subitems[k];
|
||||
|
||||
strlcpy(subitem2->name, "Configuration Save On Exit",
|
||||
sizeof(subitem2->name));
|
||||
subitem2->alpha = k ? 1.0 : 0.5;
|
||||
subitem2->zoom = k ? i_active_zoom : i_passive_zoom;
|
||||
subitem2->y = k ? vspacing * (k + under_item_offset) :
|
||||
vspacing * active_item_factor;
|
||||
|
||||
/* Quit item */
|
||||
|
||||
j = 1;
|
||||
category->num_items++;
|
||||
category->items = (menu_item_t*)
|
||||
realloc(category->items, category->num_items * sizeof(menu_item_t));
|
||||
|
||||
menu_item_t *item1 = (menu_item_t*)&category->items[j];
|
||||
|
||||
strlcpy(item1->name, "Quit RetroArch", sizeof(item1->name));
|
||||
item1->alpha = j ? 0.5 : 1.0;
|
||||
item1->zoom = j ? i_passive_zoom : i_active_zoom;
|
||||
item1->y = j ? vspacing*(under_item_offset+j) :
|
||||
vspacing * active_item_factor;
|
||||
item1->active_subitem = 0;
|
||||
item1->num_subitems = 0;
|
||||
itemq->active_subitem = 0;
|
||||
itemq->num_subitems = 0;
|
||||
}
|
||||
|
||||
void lakka_settings_context_reset(void)
|
||||
{
|
||||
menu_item_t *item;
|
||||
int k;
|
||||
int j, k;
|
||||
menu_category_t *category = (menu_category_t*)&categories[0];
|
||||
|
||||
if (!category)
|
||||
@ -810,18 +789,16 @@ void lakka_settings_context_reset(void)
|
||||
category->icon = textures[TEXTURE_SETTINGS].id;
|
||||
category->item_icon = textures[TEXTURE_SETTING].id;
|
||||
|
||||
/* General options item */
|
||||
item = (menu_item_t*)&category->items[0];
|
||||
|
||||
/* General options subitems */
|
||||
for (k = 0; k < 2; k++)
|
||||
for (j = 0; j < category->num_items; j++)
|
||||
{
|
||||
menu_subitem_t *subitem = (menu_subitem_t*)&item->subitems[k];
|
||||
subitem->icon = textures[TEXTURE_SUBSETTING].id;
|
||||
}
|
||||
item = (menu_item_t*)&category->items[j];
|
||||
|
||||
/* Quit item */
|
||||
item = (menu_item_t*)&category->items[1];
|
||||
for (k = 0; k < item->num_subitems; k++)
|
||||
{
|
||||
menu_subitem_t *subitem = (menu_subitem_t*)&item->subitems[k];
|
||||
subitem->icon = textures[TEXTURE_SUBSETTING].id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user