From a0bbb144bed1c529ef507d62f728c8ec7018b054 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 1 Jun 2014 02:16:48 +0200 Subject: [PATCH] Do same for core_info.c and history.c --- frontend/info/core_info.c | 6 +++- frontend/info/core_info.h | 2 +- frontend/menu/history.c | 64 +++++++++++++++++++++++++++++---------- frontend/menu/history.h | 16 +++++----- 4 files changed, 62 insertions(+), 26 deletions(-) diff --git a/frontend/info/core_info.c b/frontend/info/core_info.c index 5f634c80dc..8220efe484 100644 --- a/frontend/info/core_info.c +++ b/frontend/info/core_info.c @@ -237,9 +237,13 @@ bool core_info_list_get_display_name(core_info_list_t *core_info_list, const cha return false; } -bool core_info_list_get_info(core_info_list_t *core_info_list, core_info_t *out_info, const char *path) +bool core_info_list_get_info(void *data, core_info_t *out_info, const char *path) { size_t i; + core_info_list_t *core_info_list = (core_info_list_t*)data; + if (!core_info_list) + return false; + memset(out_info, 0, sizeof(*out_info)); for (i = 0; i < core_info_list->count; i++) diff --git a/frontend/info/core_info.h b/frontend/info/core_info.h index ad9b4ad66e..e7dc8342aa 100644 --- a/frontend/info/core_info.h +++ b/frontend/info/core_info.h @@ -80,7 +80,7 @@ void core_info_list_update_missing_firmware(core_info_list_t *core_info_list, const char *core, const char *systemdir); // Shallow-copies internal state. Data in *info is invalidated when the core_info_list is freed. -bool core_info_list_get_info(core_info_list_t *core_info_list, core_info_t *info, const char *path); +bool core_info_list_get_info(void *data, core_info_t *info, const char *path); const char *core_info_list_get_all_extensions(core_info_list_t *core_info_list); diff --git a/frontend/menu/history.c b/frontend/menu/history.c index 63878fad43..552cc4e6d8 100644 --- a/frontend/menu/history.c +++ b/frontend/menu/history.c @@ -42,11 +42,15 @@ struct rom_history char *conf_path; }; -void rom_history_get_index(rom_history_t *hist, +void rom_history_get_index(void *data, size_t index, const char **path, const char **core_path, const char **core_name) { + rom_history_t *hist = (rom_history_t*)data; + if (!hist) + return; + *path = hist->entries[index].path; *core_path = hist->entries[index].core_path; *core_name = hist->entries[index].core_name; @@ -60,11 +64,16 @@ static void rom_history_free_entry(struct rom_history_entry *entry) memset(entry, 0, sizeof(*entry)); } -void rom_history_push(rom_history_t *hist, +void rom_history_push(void *data, const char *path, const char *core_path, const char *core_name) { size_t i; + rom_history_t *hist = (rom_history_t*)data; + + if (!hist) + return; + for (i = 0; i < hist->size; i++) { bool equal_path = (!path && !hist->entries[i].path) || @@ -101,11 +110,12 @@ void rom_history_push(rom_history_t *hist, hist->size++; } -static void rom_history_write_file(rom_history_t *hist) +static void rom_history_write_file(void *data) { size_t i; + rom_history_t *hist = (rom_history_t*)data; FILE *file = fopen(hist->conf_path, "w"); - if (!file) + if (!file || !hist) return; for (i = 0; i < hist->size; i++) @@ -119,9 +129,10 @@ static void rom_history_write_file(rom_history_t *hist) fclose(file); } -void rom_history_free(rom_history_t *hist) +void rom_history_free(void *data) { size_t i; + rom_history_t *hist = (rom_history_t*)data; if (!hist) return; @@ -136,23 +147,31 @@ void rom_history_free(rom_history_t *hist) free(hist); } -void rom_history_clear(rom_history_t *hist) +void rom_history_clear(void *data) { size_t i; + rom_history_t *hist = (rom_history_t*)data; + if (!hist) + return; + for (i = 0; i < hist->cap; i++) rom_history_free_entry(&hist->entries[i]); hist->size = 0; } -size_t rom_history_size(rom_history_t *hist) +size_t rom_history_size(void *data) { - return hist->size; + rom_history_t *hist = (rom_history_t*)data; + if (hist) + return hist->size; + return 0; } -static bool rom_history_read_file(rom_history_t *hist, const char *path) +static bool rom_history_read_file(void *data, const char *path) { + rom_history_t *hist = (rom_history_t*)data; FILE *file = fopen(path, "r"); - if (!file) + if (!file || !data) return true; char buf[3][PATH_MAX]; @@ -213,30 +232,43 @@ error: return NULL; } -const char* rom_history_get_path(rom_history_t* history, unsigned index) +const char* rom_history_get_path(void *data, unsigned index) { const char *path, *core_path, *core_name; - rom_history_get_index(history, index, &path, &core_path, &core_name); + rom_history_t* hist = (rom_history_t*)data; + if (!hist) + return ""; + + rom_history_get_index(hist, index, &path, &core_path, &core_name); if (path) return path; return ""; } -const char *rom_history_get_core_path(rom_history_t* history, unsigned index) +const char *rom_history_get_core_path(void *data, unsigned index) { const char *path, *core_path, *core_name; - rom_history_get_index(history, index, &path, &core_path, &core_name); + rom_history_t* hist = (rom_history_t*)data; + if (!hist) + return ""; + + rom_history_get_index(hist, index, &path, &core_path, &core_name); if (core_path) return core_path; return ""; } -const char *rom_history_get_core_name(rom_history_t* history, unsigned index) +const char *rom_history_get_core_name(void *data, unsigned index) { const char *path, *core_path, *core_name; - rom_history_get_index(history, index, &path, &core_path, &core_name); + rom_history_t* hist = (rom_history_t*)data; + + if (!hist) + return ""; + + rom_history_get_index(hist, index, &path, &core_path, &core_name); if (core_name) return core_name; diff --git a/frontend/menu/history.h b/frontend/menu/history.h index a818a4a98d..546c4b70f5 100644 --- a/frontend/menu/history.h +++ b/frontend/menu/history.h @@ -25,26 +25,26 @@ extern "C" { typedef struct rom_history rom_history_t; rom_history_t *rom_history_init(const char *path, size_t size); -void rom_history_free(rom_history_t *hist); +void rom_history_free(void *data); -void rom_history_clear(rom_history_t *hist); +void rom_history_clear(void *data); -size_t rom_history_size(rom_history_t *hist); +size_t rom_history_size(void *data); -void rom_history_get_index(rom_history_t *hist, +void rom_history_get_index(void *data, size_t index, const char **path, const char **core_path, const char **core_name); -void rom_history_push(rom_history_t *hist, +void rom_history_push(void *data, const char *path, const char *core_path, const char *core_name); -const char* rom_history_get_path(rom_history_t* history, +const char* rom_history_get_path(void *data, unsigned index); -const char* rom_history_get_core_path(rom_history_t* history, +const char* rom_history_get_core_path(void *data, unsigned index); -const char* rom_history_get_core_name(rom_history_t* history, +const char* rom_history_get_core_name(void *data, unsigned index); #ifdef __cplusplus