static bool lakka_init_lists(void *data) { int i; menu_handle_t *menu = (menu_handle_t*)data; lakka_handle_t *lakka = NULL; if (!menu) return false; lakka = (lakka_handle_t*)menu->userdata; if (!lakka) return false; if (!lakka_init_settings(menu)) return false; for (i = 1; i < lakka->num_categories; i++) { core_info_t *info = NULL; menu_category_t *category = (menu_category_t*)&lakka->categories[i]; core_info_list_t *info_list = (core_info_list_t*)g_extern.core_info; if (info_list) info = (core_info_t*)&info_list->list[i-1]; if (!info) return false; strlcpy(category->name, info->display_name, sizeof(category->name)); strlcpy(category->libretro, info->path, sizeof(category->libretro)); category->alpha = lakka->i_passive_alpha; category->zoom = lakka->c_passive_zoom; category->active_item = 0; category->num_items = 0; category->items = (menu_item_t*) calloc(category->num_items + 1, sizeof(menu_item_t)); if (! info->supports_no_game) lakka_init_items(lakka, i, category, info, g_settings.content_directory); else lakka_init_item(lakka, i, 0, category, info, NULL, info->display_name); } return true; }
static void *lakka_init(void) { int i, j; rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui)); gl_t *gl = (gl_t*)driver.video_data; if (!rgui || !gl) return NULL; init_font(gl, g_settings.video.font_path, g_settings.video.font_size, gl->win_width, gl->win_height); lakka_init_core_info(rgui); categories = (menu_category_t*)calloc(num_categories, sizeof(menu_category_t)); lakka_init_settings(); for (i = 1; i < num_categories; i++) { core_info_t *info; core_info_list_t *info_list; menu_category_t *category = (menu_category_t*)&categories[i]; info_list = (core_info_list_t*)rgui->core_info; info = NULL; if (info_list) info = (core_info_t*)&info_list->list[i-1]; strlcpy(category->name, info->display_name, sizeof(category->name)); strlcpy(category->libretro, info->path, sizeof(category->libretro)); category->alpha = 0.5; category->zoom = C_PASSIVE_ZOOM; category->active_item = 0; category->num_items = 0; category->items = (menu_item_t*)calloc(category->num_items, sizeof(menu_item_t)); lakka_init_items(i, category, info, g_settings.content_directory); } return rgui; }
static void *lakka_init(void) { int i, j; menu_handle_t *menu = (menu_handle_t*)calloc(1, sizeof(*menu)); gl_t *gl = (gl_t*)driver.video_data; if (!menu || !gl) return NULL; lakka_responsive(); lakka_init_core_info(menu); categories = (menu_category_t*)calloc(num_categories, sizeof(menu_category_t)); lakka_init_settings(); for (i = 1; i < num_categories; i++) { core_info_t *info; core_info_list_t *info_list; menu_category_t *category = (menu_category_t*)&categories[i]; info_list = (core_info_list_t*)menu->core_info; info = NULL; if (info_list) info = (core_info_t*)&info_list->list[i-1]; strlcpy(category->name, info->display_name, sizeof(category->name)); strlcpy(category->libretro, info->path, sizeof(category->libretro)); category->alpha = 0.5; category->zoom = c_passive_zoom; category->active_item = 0; category->num_items = 0; category->items = (menu_item_t*)calloc(category->num_items, sizeof(menu_item_t)); lakka_init_items(i, category, info, g_settings.content_directory); } return menu; }