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
|
typedef struct menu_ctx_driver_backend
|
||||||
{
|
{
|
||||||
int (*iterate)(unsigned);
|
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;
|
const char *ident;
|
||||||
} menu_ctx_driver_backend_t;
|
} menu_ctx_driver_backend_t;
|
||||||
|
|
||||||
|
|
|
@ -746,54 +746,8 @@ static int menu_common_iterate(unsigned action)
|
||||||
return ret;
|
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_ctx_driver_backend_t menu_ctx_backend_common = {
|
||||||
menu_common_iterate,
|
menu_common_iterate,
|
||||||
menu_common_list_insert,
|
|
||||||
menu_common_list_delete,
|
|
||||||
|
|
||||||
"menu_common",
|
"menu_common",
|
||||||
};
|
};
|
||||||
|
|
|
@ -526,7 +526,5 @@ static int menu_lakka_iterate(unsigned action)
|
||||||
|
|
||||||
menu_ctx_driver_backend_t menu_ctx_backend_lakka = {
|
menu_ctx_driver_backend_t menu_ctx_backend_lakka = {
|
||||||
menu_lakka_iterate,
|
menu_lakka_iterate,
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
"menu_lakka",
|
"menu_lakka",
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#include "menu_common.h"
|
#include "menu_common.h"
|
||||||
#include "menu_input_line_cb.h"
|
#include "menu_input_line_cb.h"
|
||||||
#include "menu_entries.h"
|
#include "menu_entries.h"
|
||||||
|
#include "menu_entries_cbs.h"
|
||||||
#include "menu_list.h"
|
#include "menu_list.h"
|
||||||
#include "menu_shader.h"
|
#include "menu_shader.h"
|
||||||
#include "../../dynamic.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_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_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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -31,8 +31,7 @@ void menu_list_destroy(file_list_t *list)
|
||||||
{
|
{
|
||||||
if (driver.menu_ctx->list_delete)
|
if (driver.menu_ctx->list_delete)
|
||||||
driver.menu_ctx->list_delete(list, i, list->size);
|
driver.menu_ctx->list_delete(list, i, list->size);
|
||||||
if (driver.menu_ctx->backend->list_delete)
|
menu_common_list_delete(list, i, list->size);
|
||||||
driver.menu_ctx->backend->list_delete(list, i, list->size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
@ -204,8 +203,7 @@ void menu_list_pop(file_list_t *list, size_t *directory_ptr)
|
||||||
|
|
||||||
if (driver.menu_ctx->list_delete)
|
if (driver.menu_ctx->list_delete)
|
||||||
driver.menu_ctx->list_delete(list, list_size, list_size);
|
driver.menu_ctx->list_delete(list, list_size, list_size);
|
||||||
if (driver.menu_ctx->backend->list_delete)
|
menu_common_list_delete(list, list_size, list_size);
|
||||||
driver.menu_ctx->backend->list_delete(list, list_size, list_size);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
end:
|
end:
|
||||||
|
@ -250,9 +248,7 @@ void menu_list_push(file_list_t *list,
|
||||||
if (driver.menu_ctx->list_insert)
|
if (driver.menu_ctx->list_insert)
|
||||||
driver.menu_ctx->list_insert(list, path, label, list->size - 1);
|
driver.menu_ctx->list_insert(list, path, label, list->size - 1);
|
||||||
|
|
||||||
if (driver.menu_ctx->backend->list_insert)
|
menu_common_list_insert(list, path, label, type, list->size - 1);
|
||||||
driver.menu_ctx->backend->list_insert(list, path,
|
|
||||||
label, type, list->size - 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void menu_list_push_refresh(file_list_t *list,
|
void menu_list_push_refresh(file_list_t *list,
|
||||||
|
|
Loading…
Reference in New Issue