(Libretro SDK) Add file_list_sort_on_type to file_list.c

This commit is contained in:
twinaphex 2015-01-19 07:15:16 +01:00
parent 7d3cbd58c6
commit fe13a548f2
2 changed files with 19 additions and 0 deletions

View File

@ -168,11 +168,28 @@ static int file_list_alt_cmp(const void *a_, const void *b_)
return strcasecmp(cmp_a, cmp_b);
}
static int file_list_type_cmp(const void *a_, const void *b_)
{
const struct item_file *a = (const struct item_file*)a_;
const struct item_file *b = (const struct item_file*)b_;
if (a->type < b->type)
return -1;
if (a->type == b->type)
return 0;
return 1;
}
void file_list_sort_on_alt(file_list_t *list)
{
qsort(list->list, list->size, sizeof(list->list[0]), file_list_alt_cmp);
}
void file_list_sort_on_type(file_list_t *list)
{
qsort(list->list, list->size, sizeof(list->list[0]), file_list_type_cmp);
}
void *file_list_get_userdata_at_offset(const file_list_t *list, size_t idx)
{
if (!list)

View File

@ -94,6 +94,8 @@ void file_list_get_alt_at_offset(const file_list_t *list, size_t index,
void file_list_sort_on_alt(file_list_t *list);
void file_list_sort_on_type(file_list_t *list);
bool file_list_search(const file_list_t *list, const char *needle,
size_t *index);