mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Take out remaining callbacks in menu backend driver
This commit is contained in:
parent
804b9112d4
commit
f23b6fd100
@ -18,8 +18,6 @@ typedef struct menu_file_list_cbs
|
||||
typedef struct menu_ctx_driver_backend
|
||||
{
|
||||
int (*iterate)(unsigned);
|
||||
void (*list_insert)(void *, const char *, const char *, unsigned, size_t);
|
||||
void (*list_delete)(void *, size_t, size_t);
|
||||
const char *ident;
|
||||
} menu_ctx_driver_backend_t;
|
||||
|
||||
|
@ -746,54 +746,8 @@ static int menu_common_iterate(unsigned action)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void menu_common_list_insert(void *data,
|
||||
const char *path, const char *label,
|
||||
unsigned type, size_t idx)
|
||||
{
|
||||
file_list_t *list = (file_list_t*)data;
|
||||
|
||||
if (!list)
|
||||
return;
|
||||
|
||||
list->list[idx].actiondata = (menu_file_list_cbs_t*)
|
||||
calloc(1, sizeof(menu_file_list_cbs_t));
|
||||
|
||||
if (!list->list[idx].actiondata)
|
||||
{
|
||||
RARCH_ERR("Action data could not be allocated.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
menu_entries_cbs_init(list, path, label, type, idx);
|
||||
}
|
||||
|
||||
static void menu_common_list_delete(void *data, size_t idx,
|
||||
size_t list_size)
|
||||
{
|
||||
menu_file_list_cbs_t *cbs = NULL;
|
||||
file_list_t *list = (file_list_t*)data;
|
||||
|
||||
if (!list)
|
||||
return;
|
||||
|
||||
cbs = (menu_file_list_cbs_t*)list->list[idx].actiondata;
|
||||
|
||||
if (cbs)
|
||||
{
|
||||
cbs->action_start = NULL;
|
||||
cbs->action_ok = NULL;
|
||||
cbs->action_toggle = NULL;
|
||||
cbs->action_deferred_push = NULL;
|
||||
free(list->list[idx].actiondata);
|
||||
}
|
||||
list->list[idx].actiondata = NULL;
|
||||
}
|
||||
|
||||
|
||||
menu_ctx_driver_backend_t menu_ctx_backend_common = {
|
||||
menu_common_iterate,
|
||||
menu_common_list_insert,
|
||||
menu_common_list_delete,
|
||||
|
||||
"menu_common",
|
||||
};
|
||||
|
@ -526,7 +526,5 @@ static int menu_lakka_iterate(unsigned action)
|
||||
|
||||
menu_ctx_driver_backend_t menu_ctx_backend_lakka = {
|
||||
menu_lakka_iterate,
|
||||
NULL,
|
||||
NULL,
|
||||
"menu_lakka",
|
||||
};
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "menu_common.h"
|
||||
#include "menu_input_line_cb.h"
|
||||
#include "menu_entries.h"
|
||||
#include "menu_entries_cbs.h"
|
||||
#include "menu_list.h"
|
||||
#include "menu_shader.h"
|
||||
#include "../../dynamic.h"
|
||||
@ -509,3 +510,46 @@ void menu_common_list_clear(void *data)
|
||||
void menu_common_list_set_selection(void *data)
|
||||
{
|
||||
}
|
||||
|
||||
void menu_common_list_insert(void *data,
|
||||
const char *path, const char *label,
|
||||
unsigned type, size_t idx)
|
||||
{
|
||||
file_list_t *list = (file_list_t*)data;
|
||||
|
||||
if (!list)
|
||||
return;
|
||||
|
||||
list->list[idx].actiondata = (menu_file_list_cbs_t*)
|
||||
calloc(1, sizeof(menu_file_list_cbs_t));
|
||||
|
||||
if (!list->list[idx].actiondata)
|
||||
{
|
||||
RARCH_ERR("Action data could not be allocated.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
menu_entries_cbs_init(list, path, label, type, idx);
|
||||
}
|
||||
|
||||
void menu_common_list_delete(void *data, size_t idx,
|
||||
size_t list_size)
|
||||
{
|
||||
menu_file_list_cbs_t *cbs = NULL;
|
||||
file_list_t *list = (file_list_t*)data;
|
||||
|
||||
if (!list)
|
||||
return;
|
||||
|
||||
cbs = (menu_file_list_cbs_t*)list->list[idx].actiondata;
|
||||
|
||||
if (cbs)
|
||||
{
|
||||
cbs->action_start = NULL;
|
||||
cbs->action_ok = NULL;
|
||||
cbs->action_toggle = NULL;
|
||||
cbs->action_deferred_push = NULL;
|
||||
free(list->list[idx].actiondata);
|
||||
}
|
||||
list->list[idx].actiondata = NULL;
|
||||
}
|
||||
|
@ -161,6 +161,13 @@ void menu_common_list_clear(void *data);
|
||||
|
||||
void menu_common_list_set_selection(void *data);
|
||||
|
||||
void menu_common_list_insert(void *data,
|
||||
const char *path, const char *label,
|
||||
unsigned type, size_t idx);
|
||||
|
||||
void menu_common_list_delete(void *data, size_t idx,
|
||||
size_t list_size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -31,8 +31,7 @@ void menu_list_destroy(file_list_t *list)
|
||||
{
|
||||
if (driver.menu_ctx->list_delete)
|
||||
driver.menu_ctx->list_delete(list, i, list->size);
|
||||
if (driver.menu_ctx->backend->list_delete)
|
||||
driver.menu_ctx->backend->list_delete(list, i, list->size);
|
||||
menu_common_list_delete(list, i, list->size);
|
||||
}
|
||||
|
||||
end:
|
||||
@ -204,8 +203,7 @@ void menu_list_pop(file_list_t *list, size_t *directory_ptr)
|
||||
|
||||
if (driver.menu_ctx->list_delete)
|
||||
driver.menu_ctx->list_delete(list, list_size, list_size);
|
||||
if (driver.menu_ctx->backend->list_delete)
|
||||
driver.menu_ctx->backend->list_delete(list, list_size, list_size);
|
||||
menu_common_list_delete(list, list_size, list_size);
|
||||
}
|
||||
|
||||
end:
|
||||
@ -250,9 +248,7 @@ void menu_list_push(file_list_t *list,
|
||||
if (driver.menu_ctx->list_insert)
|
||||
driver.menu_ctx->list_insert(list, path, label, list->size - 1);
|
||||
|
||||
if (driver.menu_ctx->backend->list_insert)
|
||||
driver.menu_ctx->backend->list_insert(list, path,
|
||||
label, type, list->size - 1);
|
||||
menu_common_list_insert(list, path, label, type, list->size - 1);
|
||||
}
|
||||
|
||||
void menu_list_push_refresh(file_list_t *list,
|
||||
|
Loading…
x
Reference in New Issue
Block a user