VLC 4.0.0-dev
|
Data Structures | |
struct | vlc_playlist_item_meta |
Struct containing a copy of (parsed) media metadata, used for sorting without locking all the items. More... | |
struct | sort_request |
Functions | |
static int | vlc_playlist_item_meta_CopyString (const char **to, const char *from) |
static int | vlc_playlist_item_meta_GetNumber (const char *str, int64_t *to) |
static int | vlc_playlist_item_meta_InitField (struct vlc_playlist_item_meta *meta, enum vlc_playlist_sort_key key) |
static void | vlc_playlist_item_meta_DestroyFields (struct vlc_playlist_item_meta *meta) |
static int | vlc_playlist_item_meta_InitFields (struct vlc_playlist_item_meta *meta, const struct vlc_playlist_sort_criterion criteria[], size_t count) |
static struct vlc_playlist_item_meta * | vlc_playlist_item_meta_New (size_t index, vlc_playlist_item_t *item, const struct vlc_playlist_sort_criterion criteria[], size_t count) |
static void | vlc_playlist_item_meta_Delete (struct vlc_playlist_item_meta *meta) |
static int | CompareStrings (const char *a, const char *b) |
static int | CompareFilenameStrings (const char *a, const char *b) |
static int | CompareVersionStrings (const char *a, const char *b) |
static int | CompareIntegers (int64_t a, int64_t b) |
static int | CompareOptionalIntegers (bool has_a, int64_t a, bool has_b, int64_t b) |
static int | CompareMetaByKey (const struct vlc_playlist_item_meta *a, const struct vlc_playlist_item_meta *b, enum vlc_playlist_sort_key key) |
static int | compare_meta (const void *lhs, const void *rhs, void *userdata) |
static void | vlc_playlist_DeleteMetaArray (struct vlc_playlist_item_meta *array[], size_t count) |
static struct vlc_playlist_item_meta ** | vlc_playlist_NewMetaArray (vlc_playlist_t *playlist, const struct vlc_playlist_sort_criterion criteria[], size_t count) |
int | vlc_playlist_Sort (vlc_playlist_t *playlist, const struct vlc_playlist_sort_criterion criteria[], size_t count) |
Sort the playlist by a list of criteria. | |
|
static |
|
inlinestatic |
References vlc_filenamecmp().
Referenced by CompareMetaByKey().
|
inlinestatic |
Referenced by CompareMetaByKey(), and CompareOptionalIntegers().
|
inlinestatic |
References vlc_playlist_item_meta::album, vlc_playlist_item_meta::album_artist, vlc_playlist_item_meta::artist, CompareFilenameStrings(), CompareIntegers(), CompareOptionalIntegers(), CompareStrings(), CompareVersionStrings(), vlc_playlist_item_meta::date, vlc_playlist_item_meta::disc_number, vlc_playlist_item_meta::duration, vlc_playlist_item_meta::file_modified, vlc_playlist_item_meta::file_size, vlc_playlist_item_meta::genre, vlc_playlist_item_meta::has_date, vlc_playlist_item_meta::has_disc_number, vlc_playlist_item_meta::has_rating, vlc_playlist_item_meta::has_track_number, vlc_playlist_item_meta::rating, vlc_playlist_item_meta::title_or_name, vlc_playlist_item_meta::track_number, vlc_playlist_item_meta::url, vlc_assert_unreachable, VLC_PLAYLIST_SORT_KEY_ALBUM, VLC_PLAYLIST_SORT_KEY_ALBUM_ARTIST, VLC_PLAYLIST_SORT_KEY_ARTIST, VLC_PLAYLIST_SORT_KEY_DATE, VLC_PLAYLIST_SORT_KEY_DISC_NUMBER, VLC_PLAYLIST_SORT_KEY_DURATION, VLC_PLAYLIST_SORT_KEY_FILE_MODIFIED, VLC_PLAYLIST_SORT_KEY_FILE_SIZE, VLC_PLAYLIST_SORT_KEY_GENRE, VLC_PLAYLIST_SORT_KEY_RATING, VLC_PLAYLIST_SORT_KEY_TITLE, VLC_PLAYLIST_SORT_KEY_TRACK_NUMBER, and VLC_PLAYLIST_SORT_KEY_URL.
Referenced by compare_meta().
|
inlinestatic |
References CompareIntegers().
Referenced by CompareMetaByKey().
|
inlinestatic |
References strcasecmp().
Referenced by CompareMetaByKey().
|
inlinestatic |
References strverscmp().
Referenced by CompareMetaByKey().
|
static |
References count, and vlc_playlist_item_meta_Delete().
Referenced by vlc_playlist_NewMetaArray(), and vlc_playlist_Sort().
|
static |
References strdup(), unlikely, VLC_ENOMEM, and VLC_SUCCESS.
Referenced by vlc_playlist_item_meta_InitField().
|
static |
References vlc_playlist_item_meta_DestroyFields().
Referenced by vlc_playlist_DeleteMetaArray().
|
static |
References vlc_playlist_item_meta::album, vlc_playlist_item_meta::album_artist, vlc_playlist_item_meta::artist, vlc_playlist_item_meta::genre, vlc_playlist_item_meta::title_or_name, and vlc_playlist_item_meta::url.
Referenced by vlc_playlist_item_meta_Delete(), and vlc_playlist_item_meta_InitFields().
|
static |
References VLC_EGENERIC, and VLC_SUCCESS.
Referenced by vlc_playlist_item_meta_InitField().
|
static |
References vlc_playlist_item_meta::album, vlc_playlist_item_meta::album_artist, vlc_playlist_item_meta::artist, atoll(), vlc_playlist_item_meta::date, vlc_playlist_item_meta::disc_number, vlc_playlist_item_meta::duration, EMPTY_STR, vlc_playlist_item_meta::file_modified, vlc_playlist_item_meta::file_size, vlc_playlist_item_meta::genre, vlc_playlist_item_meta::has_date, vlc_playlist_item_meta::has_disc_number, vlc_playlist_item_meta::has_rating, vlc_playlist_item_meta::has_track_number, input_item_t::i_duration, INPUT_DURATION_INDEFINITE, INPUT_DURATION_UNSET, input_item_GetInfoLocked(), input_item_GetMetaLocked(), vlc_playlist_item_meta::item, vlc_playlist_item::media, input_item_t::psz_name, vlc_playlist_item_meta::rating, vlc_playlist_item_meta::title_or_name, vlc_playlist_item_meta::track_number, vlc_playlist_item_meta::url, vlc_assert_unreachable, VLC_EGENERIC, vlc_meta_Album, vlc_meta_AlbumArtist, vlc_meta_Artist, vlc_meta_Date, vlc_meta_DiscNumber, vlc_meta_Genre, vlc_meta_Rating, vlc_meta_Title, vlc_meta_TrackNumber, vlc_meta_URL, vlc_playlist_item_meta_CopyString(), vlc_playlist_item_meta_GetNumber(), VLC_PLAYLIST_SORT_KEY_ALBUM, VLC_PLAYLIST_SORT_KEY_ALBUM_ARTIST, VLC_PLAYLIST_SORT_KEY_ARTIST, VLC_PLAYLIST_SORT_KEY_DATE, VLC_PLAYLIST_SORT_KEY_DISC_NUMBER, VLC_PLAYLIST_SORT_KEY_DURATION, VLC_PLAYLIST_SORT_KEY_FILE_MODIFIED, VLC_PLAYLIST_SORT_KEY_FILE_SIZE, VLC_PLAYLIST_SORT_KEY_GENRE, VLC_PLAYLIST_SORT_KEY_RATING, VLC_PLAYLIST_SORT_KEY_TITLE, VLC_PLAYLIST_SORT_KEY_TRACK_NUMBER, VLC_PLAYLIST_SORT_KEY_URL, and VLC_SUCCESS.
Referenced by vlc_playlist_item_meta_InitFields().
|
static |
References count, vlc_playlist_sort_criterion::key, unlikely, vlc_playlist_item_meta_DestroyFields(), vlc_playlist_item_meta_InitField(), and VLC_SUCCESS.
Referenced by vlc_playlist_item_meta_New().
|
static |
|
static |
References count, playlist_item_vector_t::data, vlc_playlist::items, playlist_item_vector_t::size, unlikely, vlc_alloc(), vlc_playlist_DeleteMetaArray(), and vlc_playlist_item_meta_New().
Referenced by vlc_playlist_Sort().