From 38ce8ffcef0dfe15627ca7ed661f5ff410318e15 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 7 Jun 2015 15:43:03 +0200 Subject: [PATCH] Create menu_driver_list_get_size --- menu/drivers/glui.c | 1 + menu/drivers/rgui.c | 1 + menu/drivers/rmenu.c | 1 + menu/drivers/rmenu_xui.cpp | 1 + menu/drivers/xmb.c | 1 + menu/menu_driver.c | 10 ++++++++++ menu/menu_driver.h | 3 +++ menu/menu_entries_cbs_left.c | 1 - menu/menu_entries_cbs_right.c | 1 - 9 files changed, 18 insertions(+), 2 deletions(-) diff --git a/menu/drivers/glui.c b/menu/drivers/glui.c index c567e7fc93..c46e515f9c 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/glui.c @@ -695,6 +695,7 @@ menu_ctx_driver_t menu_ctx_glui = { NULL, NULL, NULL, + NULL, glui_load_image, "glui", NULL, diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 460d1b32ab..10e6ae62b8 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -655,6 +655,7 @@ menu_ctx_driver_t menu_ctx_rgui = { NULL, NULL, NULL, + NULL, "rgui", NULL, }; diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index 09fdf04c2b..ceeef5e152 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -326,6 +326,7 @@ menu_ctx_driver_t menu_ctx_rmenu = { NULL, NULL, NULL, + NULL, "rmenu", NULL, }; diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index 8584fe8bab..98259061ff 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -680,6 +680,7 @@ menu_ctx_driver_t menu_ctx_rmenu_xui = { rmenu_xui_list_delete, rmenu_xui_list_clear, NULL, + NULL, rmenu_xui_list_set_selection, NULL, "rmenu_xui", diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 99c85b1649..40677e148f 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2118,6 +2118,7 @@ menu_ctx_driver_t menu_ctx_xmb = { xmb_list_delete, NULL, xmb_list_cache, + xmb_list_get_size, NULL, xmb_load_image, "xmb", diff --git a/menu/menu_driver.c b/menu/menu_driver.c index f1024a9558..cb42b4add8 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -259,6 +259,16 @@ void menu_driver_list_cache(menu_list_type_t type, unsigned action) driver->list_cache(type, action); } +size_t menu_driver_list_get_size(menu_list_type_t type) +{ + menu_handle_t *menu = menu_driver_get_ptr(); + const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr(); + + if (driver->list_get_size) + return driver->list_get_size(menu, type); + return 0; +} + void menu_driver_navigation_increment(void) { const menu_ctx_driver_t *driver = menu_ctx_driver_get_ptr(); diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 4e8434ea5d..6d9cb04144 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -255,6 +255,7 @@ typedef struct menu_ctx_driver void (*list_delete)(file_list_t *list, size_t, size_t); void (*list_clear)(file_list_t *list); void (*list_cache)(menu_list_type_t, unsigned); + size_t(*list_get_size)(void *data, menu_list_type_t); void (*list_set_selection)(file_list_t *list); bool (*load_image)(void *data, menu_image_type_t type); const char *ident; @@ -345,6 +346,8 @@ void menu_driver_list_insert(file_list_t *list, const char *path, void menu_driver_list_clear(file_list_t *list); +size_t menu_driver_list_get_size(menu_list_type_t type); + void menu_driver_list_set_selection(file_list_t *list); const menu_ctx_driver_t *menu_ctx_driver_get_ptr(void); diff --git a/menu/menu_entries_cbs_left.c b/menu/menu_entries_cbs_left.c index 067cf7f3b2..73ec97ff2d 100644 --- a/menu/menu_entries_cbs_left.c +++ b/menu/menu_entries_cbs_left.c @@ -143,7 +143,6 @@ static int action_left_mainmenu(unsigned type, const char *label, if (file_list_get_size(menu_list->menu_stack) == 1) { - if (!strcmp(driver->menu_ctx->ident, "xmb")) { menu->navigation.selection_ptr = 0; diff --git a/menu/menu_entries_cbs_right.c b/menu/menu_entries_cbs_right.c index 527d3dcfd1..222b030f7e 100644 --- a/menu/menu_entries_cbs_right.c +++ b/menu/menu_entries_cbs_right.c @@ -151,7 +151,6 @@ static int action_right_mainmenu(unsigned type, const char *label, if (file_list_get_size(menu_list->menu_stack) == 1) { - if (!strcmp(driver->menu_ctx->ident, "xmb")) { menu->navigation.selection_ptr = 0;