mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-24 20:48:52 +02:00
medialib: allow to list audio or video only playlists
This commit is contained in:
parent
d109df247c
commit
793acb3a47
@ -89,6 +89,13 @@ typedef enum vlc_ml_history_type_t
|
||||
VLC_ML_HISTORY_TYPE_NETWORK,
|
||||
} vlc_ml_history_type_t;
|
||||
|
||||
typedef enum vlc_ml_playlist_type_t
|
||||
{
|
||||
VLC_ML_PLAYLIST_TYPE_ALL,
|
||||
VLC_ML_PLAYLIST_TYPE_AUDIO,
|
||||
VLC_ML_PLAYLIST_TYPE_VIDEO,
|
||||
} vlc_ml_playlist_type_t;
|
||||
|
||||
typedef struct vlc_ml_thumbnail_t
|
||||
{
|
||||
char* psz_mrl;
|
||||
@ -1738,20 +1745,20 @@ static inline size_t vlc_ml_count_group_media( vlc_medialibrary_t* p_ml, const v
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
static inline vlc_ml_playlist_list_t* vlc_ml_list_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
|
||||
static inline vlc_ml_playlist_list_t* vlc_ml_list_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, vlc_ml_playlist_type_t playlist_type )
|
||||
{
|
||||
vlc_assert( p_ml != NULL );
|
||||
vlc_ml_playlist_list_t* res;
|
||||
if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, &res ) != VLC_SUCCESS )
|
||||
if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, (int) playlist_type, &res ) != VLC_SUCCESS )
|
||||
return NULL;
|
||||
return res;
|
||||
}
|
||||
|
||||
static inline size_t vlc_ml_count_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
|
||||
static inline size_t vlc_ml_count_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, vlc_ml_playlist_type_t playlist_type)
|
||||
{
|
||||
vlc_assert( p_ml != NULL );
|
||||
size_t count;
|
||||
if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, &count ) != VLC_SUCCESS )
|
||||
if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, (int) playlist_type, &count ) != VLC_SUCCESS )
|
||||
return 0;
|
||||
return count;
|
||||
}
|
||||
|
@ -1990,11 +1990,28 @@ int MediaLibrary::listPlaylist( int listQuery, const medialibrary::QueryParamete
|
||||
case VLC_ML_LIST_PLAYLISTS:
|
||||
case VLC_ML_COUNT_PLAYLISTS:
|
||||
{
|
||||
auto vlcPlaylistType = static_cast<vlc_ml_playlist_type_t>(va_arg( args, int ));
|
||||
medialibrary::PlaylistType mlPlaylistType;
|
||||
switch (vlcPlaylistType)
|
||||
{
|
||||
case VLC_ML_PLAYLIST_TYPE_ALL:
|
||||
mlPlaylistType = medialibrary::PlaylistType::All;
|
||||
break;
|
||||
case VLC_ML_PLAYLIST_TYPE_VIDEO:
|
||||
mlPlaylistType = medialibrary::PlaylistType::VideoOnly;
|
||||
break;
|
||||
case VLC_ML_PLAYLIST_TYPE_AUDIO:
|
||||
mlPlaylistType = medialibrary::PlaylistType::AudioOnly;
|
||||
break;
|
||||
default:
|
||||
vlc_assert_unreachable();
|
||||
}
|
||||
|
||||
medialibrary::Query<medialibrary::IPlaylist> query;
|
||||
if ( pattern != nullptr )
|
||||
query = m_ml->searchPlaylists( pattern, paramsPtr );
|
||||
else
|
||||
query = m_ml->playlists( medialibrary::PlaylistType::All, paramsPtr );
|
||||
query = m_ml->playlists( mlPlaylistType, paramsPtr );
|
||||
if ( query == nullptr )
|
||||
return VLC_EGENERIC;
|
||||
switch ( listQuery )
|
||||
|
Loading…
Reference in New Issue
Block a user