Merge pull request #1771 from heuripedes/pl-sort

Playlist sort
This commit is contained in:
Twinaphex 2015-06-11 15:32:57 +02:00
commit f978a3088c
3 changed files with 19 additions and 0 deletions

View File

@ -1359,6 +1359,12 @@ static void menu_displaylist_push_horizontal_menu_list_content(
}
#endif
static int menu_displaylist_sort_playlist(const content_playlist_entry_t *a,
const content_playlist_entry_t *b)
{
return strcasecmp(a->label, b->label);
}
static int menu_displaylist_parse_horizontal_list(menu_displaylist_info_t *info)
{
char db_path[PATH_MAX_LENGTH];
@ -1402,6 +1408,8 @@ static int menu_displaylist_parse_horizontal_list(menu_displaylist_info_t *info)
strlcpy(path_playlist, "collection", sizeof(path_playlist));
playlist = menu->playlist;
content_playlist_qsort(playlist, menu_displaylist_sort_playlist);
menu_displaylist_parse_playlist(info, playlist, path_playlist, false);
return 0;

View File

@ -402,3 +402,9 @@ error:
content_playlist_free(playlist);
return NULL;
}
void content_playlist_qsort(content_playlist_t *playlist, content_playlist_sort_fun_t *fn)
{
qsort(playlist->entries, playlist->size, sizeof(content_playlist_entry_t),
(int (*)(const void *, const void *))fn);
}

View File

@ -43,6 +43,9 @@ typedef struct content_playlist
char *conf_path;
} content_playlist_t;
typedef int (content_playlist_sort_fun_t)(const content_playlist_entry_t *a,
const content_playlist_entry_t *b);
/**
* content_playlist_init:
* @path : Path to playlist contents file.
@ -126,6 +129,8 @@ void content_playlist_get_index_by_path(content_playlist_t *playlist,
void content_playlist_write_file(content_playlist_t *playlist);
void content_playlist_qsort(content_playlist_t *playlist, content_playlist_sort_fun_t *fn);
#ifdef __cplusplus
}
#endif