(Lakka) Start implementing settings
This commit is contained in:
parent
b42ed89d23
commit
21236b0aa0
|
@ -31,6 +31,8 @@
|
||||||
#include "../../../config.def.h"
|
#include "../../../config.def.h"
|
||||||
#include "../../../input/keyboard_line.h"
|
#include "../../../input/keyboard_line.h"
|
||||||
|
|
||||||
|
#include "../../../settings_data.h"
|
||||||
|
|
||||||
#include "../disp/lakka.h"
|
#include "../disp/lakka.h"
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
|
|
|
@ -36,6 +36,7 @@
|
||||||
#include "../../../performance.h"
|
#include "../../../performance.h"
|
||||||
#include "../../../input/input_common.h"
|
#include "../../../input/input_common.h"
|
||||||
|
|
||||||
|
#include "../../../settings_data.h"
|
||||||
#include "../../../screenshot.h"
|
#include "../../../screenshot.h"
|
||||||
#include "../../../gfx/fonts/bitmap.h"
|
#include "../../../gfx/fonts/bitmap.h"
|
||||||
|
|
||||||
|
@ -697,6 +698,8 @@ static void lakka_context_destroy(void *data)
|
||||||
|
|
||||||
void lakka_init_settings(void)
|
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];
|
menu_category_t *category = (menu_category_t*)&categories[0];
|
||||||
|
|
||||||
strlcpy(category->name, "Settings", sizeof(category->name));
|
strlcpy(category->name, "Settings", sizeof(category->name));
|
||||||
|
@ -707,101 +710,77 @@ void lakka_init_settings(void)
|
||||||
category->items = (menu_item_t*)
|
category->items = (menu_item_t*)
|
||||||
calloc(category->num_items, sizeof(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->num_items++;
|
||||||
category->items = (menu_item_t*)
|
category->items = (menu_item_t*)
|
||||||
realloc(category->items, category->num_items * sizeof(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));
|
strlcpy(itemq->name, "Quit RetroArch", sizeof(itemq->name));
|
||||||
item0->alpha = j ? 0.5 : 1.0;
|
itemq->alpha = jj ? 0.5 : 1.0;
|
||||||
item0->zoom = j ? i_passive_zoom : i_active_zoom;
|
itemq->zoom = jj ? i_passive_zoom : i_active_zoom;
|
||||||
item0->y = j ?
|
itemq->y = jj ? vspacing*(under_item_offset+jj) :
|
||||||
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) :
|
|
||||||
vspacing * active_item_factor;
|
vspacing * active_item_factor;
|
||||||
|
itemq->active_subitem = 0;
|
||||||
k = 2;
|
itemq->num_subitems = 0;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void lakka_settings_context_reset(void)
|
void lakka_settings_context_reset(void)
|
||||||
{
|
{
|
||||||
menu_item_t *item;
|
menu_item_t *item;
|
||||||
int k;
|
int j, k;
|
||||||
menu_category_t *category = (menu_category_t*)&categories[0];
|
menu_category_t *category = (menu_category_t*)&categories[0];
|
||||||
|
|
||||||
if (!category)
|
if (!category)
|
||||||
|
@ -810,18 +789,16 @@ void lakka_settings_context_reset(void)
|
||||||
category->icon = textures[TEXTURE_SETTINGS].id;
|
category->icon = textures[TEXTURE_SETTINGS].id;
|
||||||
category->item_icon = textures[TEXTURE_SETTING].id;
|
category->item_icon = textures[TEXTURE_SETTING].id;
|
||||||
|
|
||||||
/* General options item */
|
for (j = 0; j < category->num_items; j++)
|
||||||
item = (menu_item_t*)&category->items[0];
|
|
||||||
|
|
||||||
/* General options subitems */
|
|
||||||
for (k = 0; k < 2; k++)
|
|
||||||
{
|
{
|
||||||
menu_subitem_t *subitem = (menu_subitem_t*)&item->subitems[k];
|
item = (menu_item_t*)&category->items[j];
|
||||||
subitem->icon = textures[TEXTURE_SUBSETTING].id;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Quit item */
|
for (k = 0; k < item->num_subitems; k++)
|
||||||
item = (menu_item_t*)&category->items[1];
|
{
|
||||||
|
menu_subitem_t *subitem = (menu_subitem_t*)&item->subitems[k];
|
||||||
|
subitem->icon = textures[TEXTURE_SUBSETTING].id;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue