From 5e11bf34ac6ac315632f28a0e287ba0915284b4b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 1 Jun 2014 02:08:51 +0200 Subject: [PATCH] (File List) Fix errors with MSVC 2003 - 'cannot convert parameter 1 from 'void *' to 'file_list_t *' --- frontend/menu/file_list.c | 44 ++++++++++++++++++++++++++------------- frontend/menu/file_list.h | 24 ++++++++++----------- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/frontend/menu/file_list.c b/frontend/menu/file_list.c index c8feda2a45..012b496a98 100644 --- a/frontend/menu/file_list.c +++ b/frontend/menu/file_list.c @@ -29,9 +29,10 @@ struct item_file size_t directory_ptr; }; -void file_list_push(file_list_t *list, +void file_list_push(void *data, const char *path, unsigned type, size_t directory_ptr) { + file_list_t *list = (file_list_t*)data; if (!list) return; @@ -53,25 +54,29 @@ void file_list_push(file_list_t *list, } -size_t file_list_get_size(const file_list_t *list) +size_t file_list_get_size(const void *data) { + const file_list_t *list = (const file_list_t*)data; if (!list) return 0; return list->size; } -size_t file_list_get_directory_ptr(const file_list_t *list) +size_t file_list_get_directory_ptr(const void *data) { size_t size; + const file_list_t *list = (const file_list_t*)data; if (!list) return 0; + size = file_list_get_size(list); return list->list[size].directory_ptr; } -void file_list_pop(file_list_t *list, size_t *directory_ptr) +void file_list_pop(void *data, size_t *directory_ptr) { + file_list_t *list = (file_list_t*)data; if (!list) return; @@ -91,9 +96,10 @@ void file_list_pop(file_list_t *list, size_t *directory_ptr) driver.menu_ctx->list_set_selection(list); } -void file_list_free(file_list_t *list) +void file_list_free(void *data) { size_t i; + file_list_t *list = (file_list_t*)data; if (!list) return; @@ -104,9 +110,10 @@ void file_list_free(file_list_t *list) free(list); } -void file_list_clear(file_list_t *list) +void file_list_clear(void *data) { size_t i; + file_list_t *list = (file_list_t*)data; if (!list) return; @@ -122,9 +129,10 @@ void file_list_clear(file_list_t *list) list->size = 0; } -void file_list_set_alt_at_offset(file_list_t *list, size_t index, +void file_list_set_alt_at_offset(void *data, size_t index, const char *alt) { + file_list_t *list = (file_list_t*)data; if (!list) return; @@ -132,9 +140,10 @@ void file_list_set_alt_at_offset(file_list_t *list, size_t index, list->list[index].alt = strdup(alt); } -void file_list_get_alt_at_offset(const file_list_t *list, size_t index, +void file_list_get_alt_at_offset(const void *data, size_t index, const char **alt) { + const file_list_t *list = (const file_list_t*)data; if (!list) return; @@ -151,18 +160,22 @@ static int file_list_alt_cmp(const void *a_, const void *b_) return strcasecmp(cmp_a, cmp_b); } -void file_list_sort_on_alt(file_list_t *list) +void file_list_sort_on_alt(void *data) { + file_list_t *list = (file_list_t*)data; if (!list) return; qsort(list->list, list->size, sizeof(list->list[0]), file_list_alt_cmp); } -void file_list_get_at_offset(const file_list_t *list, size_t index, +void file_list_get_at_offset(const void *data, size_t index, const char **path, unsigned *file_type) { - if (!list || !list->list) + const file_list_t *list = (const file_list_t*)data; + if (!list) + return; + if (!list->list) return; if (path) @@ -171,9 +184,10 @@ void file_list_get_at_offset(const file_list_t *list, size_t index, *file_type = list->list[index].type; } -void file_list_get_last(const file_list_t *list, +void file_list_get_last(const void *data, const char **path, unsigned *file_type) { + const file_list_t *list = (const file_list_t*)data; if (!list) return; @@ -181,22 +195,24 @@ void file_list_get_last(const file_list_t *list, file_list_get_at_offset(list, list->size - 1, path, file_type); } -bool file_list_search(const file_list_t *list, const char *needle, size_t *index) +bool file_list_search(const void *data, const char *needle, size_t *index) { size_t i; const char *alt; bool ret = false; + const file_list_t *list = (const file_list_t*)data; if (!list) return false; for (i = 0; i < list->size; i++) { + const char *str; file_list_get_alt_at_offset(list, i, &alt); if (!alt) continue; - const char *str = strcasestr(alt, needle); + str = (const char *)strcasestr(alt, needle); if (str == alt) // Found match with first chars, best possible match. { *index = i; diff --git a/frontend/menu/file_list.h b/frontend/menu/file_list.h index 19518954c1..1ccfe50705 100644 --- a/frontend/menu/file_list.h +++ b/frontend/menu/file_list.h @@ -32,30 +32,30 @@ typedef struct file_list size_t size; } file_list_t; -void file_list_free(file_list_t *list); +void file_list_free(void *list); -void file_list_push(file_list_t *userdata, const char *path, +void file_list_push(void *userdata, const char *path, unsigned type, size_t current_directory_ptr); -void file_list_pop(file_list_t *list, size_t *directory_ptr); -void file_list_clear(file_list_t *list); +void file_list_pop(void *list, size_t *directory_ptr); +void file_list_clear(void *list); -void file_list_get_last(const file_list_t *list, +void file_list_get_last(const void *list, const char **path, unsigned *type); -size_t file_list_get_size(const file_list_t *list); -size_t file_list_get_directory_ptr(const file_list_t *list); +size_t file_list_get_size(const void *list); +size_t file_list_get_directory_ptr(const void *list); -void file_list_get_at_offset(const file_list_t *list, size_t index, +void file_list_get_at_offset(const void *list, size_t index, const char **path, unsigned *type); -void file_list_set_alt_at_offset(file_list_t *list, size_t index, +void file_list_set_alt_at_offset(void *list, size_t index, const char *alt); -void file_list_get_alt_at_offset(const file_list_t *list, size_t index, +void file_list_get_alt_at_offset(const void *list, size_t index, const char **alt); -void file_list_sort_on_alt(file_list_t *list); +void file_list_sort_on_alt(void *list); -bool file_list_search(const file_list_t *list, const char *needle, size_t *index); +bool file_list_search(const void *list, const char *needle, size_t *index); #ifdef __cplusplus }