mirror of
https://github.com/libretro/RetroArch
synced 2025-02-09 00:40:09 +00:00
De-opaque file_list.
This commit is contained in:
parent
76292f873a
commit
57dffba9ba
5
driver.h
5
driver.h
@ -31,6 +31,7 @@
|
|||||||
#include "audio/dsp_filter.h"
|
#include "audio/dsp_filter.h"
|
||||||
#include "input/overlay.h"
|
#include "input/overlay.h"
|
||||||
#include "frontend/frontend_context.h"
|
#include "frontend/frontend_context.h"
|
||||||
|
#include "frontend/menu/file_list.h"
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include "miscellaneous.h"
|
#include "miscellaneous.h"
|
||||||
#endif
|
#endif
|
||||||
@ -503,8 +504,8 @@ typedef struct
|
|||||||
size_t frame_buf_pitch;
|
size_t frame_buf_pitch;
|
||||||
bool frame_buf_show;
|
bool frame_buf_show;
|
||||||
|
|
||||||
void *menu_stack;
|
file_list_t *menu_stack;
|
||||||
void *selection_buf;
|
file_list_t *selection_buf;
|
||||||
size_t selection_ptr;
|
size_t selection_ptr;
|
||||||
unsigned info_selection;
|
unsigned info_selection;
|
||||||
bool need_refresh;
|
bool need_refresh;
|
||||||
|
@ -29,10 +29,9 @@ struct item_file
|
|||||||
size_t directory_ptr;
|
size_t directory_ptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
void file_list_push(void *data,
|
void file_list_push(file_list_t *list,
|
||||||
const char *path, unsigned type, size_t directory_ptr)
|
const char *path, unsigned type, size_t directory_ptr)
|
||||||
{
|
{
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -54,19 +53,17 @@ void file_list_push(void *data,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t file_list_get_size(const void *data)
|
size_t file_list_get_size(const file_list_t *list)
|
||||||
{
|
{
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return list->size;
|
return list->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t file_list_get_directory_ptr(const void *data)
|
size_t file_list_get_directory_ptr(const file_list_t *list)
|
||||||
{
|
{
|
||||||
size_t size;
|
size_t size;
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -74,9 +71,8 @@ size_t file_list_get_directory_ptr(const void *data)
|
|||||||
return list->list[size].directory_ptr;
|
return list->list[size].directory_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_pop(void *data, size_t *directory_ptr)
|
void file_list_pop(file_list_t *list, size_t *directory_ptr)
|
||||||
{
|
{
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -88,18 +84,15 @@ void file_list_pop(void *data, size_t *directory_ptr)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (directory_ptr)
|
if (directory_ptr)
|
||||||
{
|
|
||||||
*directory_ptr = list->list[list->size].directory_ptr;
|
*directory_ptr = list->list[list->size].directory_ptr;
|
||||||
}
|
|
||||||
|
|
||||||
if (driver.menu_ctx && driver.menu_ctx->list_set_selection)
|
if (driver.menu_ctx && driver.menu_ctx->list_set_selection)
|
||||||
driver.menu_ctx->list_set_selection(list);
|
driver.menu_ctx->list_set_selection(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_free(void *data)
|
void file_list_free(file_list_t *list)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
@ -110,10 +103,9 @@ void file_list_free(void *data)
|
|||||||
free(list);
|
free(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_clear(void *data)
|
void file_list_clear(file_list_t *list)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
@ -129,10 +121,9 @@ void file_list_clear(void *data)
|
|||||||
list->size = 0;
|
list->size = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_set_alt_at_offset(void *data, size_t index,
|
void file_list_set_alt_at_offset(file_list_t *list, size_t index,
|
||||||
const char *alt)
|
const char *alt)
|
||||||
{
|
{
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -140,10 +131,9 @@ void file_list_set_alt_at_offset(void *data, size_t index,
|
|||||||
list->list[index].alt = strdup(alt);
|
list->list[index].alt = strdup(alt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_get_alt_at_offset(const void *data, size_t index,
|
void file_list_get_alt_at_offset(const file_list_t *list, size_t index,
|
||||||
const char **alt)
|
const char **alt)
|
||||||
{
|
{
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -160,19 +150,17 @@ static int file_list_alt_cmp(const void *a_, const void *b_)
|
|||||||
return strcasecmp(cmp_a, cmp_b);
|
return strcasecmp(cmp_a, cmp_b);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_sort_on_alt(void *data)
|
void file_list_sort_on_alt(file_list_t *list)
|
||||||
{
|
{
|
||||||
file_list_t *list = (file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
qsort(list->list, list->size, sizeof(list->list[0]), file_list_alt_cmp);
|
qsort(list->list, list->size, sizeof(list->list[0]), file_list_alt_cmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_get_at_offset(const void *data, size_t index,
|
void file_list_get_at_offset(const file_list_t *list, size_t index,
|
||||||
const char **path, unsigned *file_type)
|
const char **path, unsigned *file_type)
|
||||||
{
|
{
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
if (!list->list)
|
if (!list->list)
|
||||||
@ -184,10 +172,9 @@ void file_list_get_at_offset(const void *data, size_t index,
|
|||||||
*file_type = list->list[index].type;
|
*file_type = list->list[index].type;
|
||||||
}
|
}
|
||||||
|
|
||||||
void file_list_get_last(const void *data,
|
void file_list_get_last(const file_list_t *list,
|
||||||
const char **path, unsigned *file_type)
|
const char **path, unsigned *file_type)
|
||||||
{
|
{
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -195,12 +182,11 @@ void file_list_get_last(const void *data,
|
|||||||
file_list_get_at_offset(list, list->size - 1, path, file_type);
|
file_list_get_at_offset(list, list->size - 1, path, file_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool file_list_search(const void *data, const char *needle, size_t *index)
|
bool file_list_search(const file_list_t *list, const char *needle, size_t *index)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
const char *alt;
|
const char *alt;
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
const file_list_t *list = (const file_list_t*)data;
|
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return false;
|
return false;
|
||||||
|
@ -32,30 +32,30 @@ typedef struct file_list
|
|||||||
size_t size;
|
size_t size;
|
||||||
} file_list_t;
|
} file_list_t;
|
||||||
|
|
||||||
void file_list_free(void *list);
|
void file_list_free(file_list_t *list);
|
||||||
|
|
||||||
void file_list_push(void *userdata, const char *path,
|
void file_list_push(file_list_t *userdata, const char *path,
|
||||||
unsigned type, size_t current_directory_ptr);
|
unsigned type, size_t current_directory_ptr);
|
||||||
void file_list_pop(void *list, size_t *directory_ptr);
|
void file_list_pop(file_list_t *list, size_t *directory_ptr);
|
||||||
void file_list_clear(void *list);
|
void file_list_clear(file_list_t *list);
|
||||||
|
|
||||||
void file_list_get_last(const void *list,
|
void file_list_get_last(const file_list_t *list,
|
||||||
const char **path, unsigned *type);
|
const char **path, unsigned *type);
|
||||||
|
|
||||||
size_t file_list_get_size(const void *list);
|
size_t file_list_get_size(const file_list_t *list);
|
||||||
size_t file_list_get_directory_ptr(const void *list);
|
size_t file_list_get_directory_ptr(const file_list_t *list);
|
||||||
|
|
||||||
void file_list_get_at_offset(const void *list, size_t index,
|
void file_list_get_at_offset(const file_list_t *list, size_t index,
|
||||||
const char **path, unsigned *type);
|
const char **path, unsigned *type);
|
||||||
|
|
||||||
void file_list_set_alt_at_offset(void *list, size_t index,
|
void file_list_set_alt_at_offset(file_list_t *list, size_t index,
|
||||||
const char *alt);
|
const char *alt);
|
||||||
void file_list_get_alt_at_offset(const void *list, size_t index,
|
void file_list_get_alt_at_offset(const file_list_t *list, size_t index,
|
||||||
const char **alt);
|
const char **alt);
|
||||||
|
|
||||||
void file_list_sort_on_alt(void *list);
|
void file_list_sort_on_alt(file_list_t *list);
|
||||||
|
|
||||||
bool file_list_search(const void *list, const char *needle, size_t *index);
|
bool file_list_search(const file_list_t *list, const char *needle, size_t *index);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user