[vlc-devel] [PATCH 3/3] medialib: factorise history retrieval calls
Pierre Lamot
pierre at videolabs.io
Wed Dec 9 12:52:07 CET 2020
---
modules/misc/medialibrary/medialib.cpp | 63 +++++++++++---------------
1 file changed, 26 insertions(+), 37 deletions(-)
diff --git a/modules/misc/medialibrary/medialib.cpp b/modules/misc/medialibrary/medialib.cpp
index 3cd342f833..2db89a39cc 100644
--- a/modules/misc/medialibrary/medialib.cpp
+++ b/modules/misc/medialibrary/medialib.cpp
@@ -861,69 +861,58 @@ int MediaLibrary::List( int listQuery, const vlc_ml_query_params_t* params, va_l
case VLC_ML_LIST_PLAYLISTS:
case VLC_ML_COUNT_PLAYLISTS:
return listPlaylist( listQuery, paramsPtr, psz_pattern, nbItems, offset, args );
- case VLC_ML_LIST_HISTORY:
case VLC_ML_COUNT_HISTORY:
+ case VLC_ML_LIST_HISTORY:
+ case VLC_ML_COUNT_HISTORY_BY_TYPE:
+ case VLC_ML_LIST_HISTORY_BY_TYPE:
+ case VLC_ML_COUNT_STREAM_HISTORY:
+ case VLC_ML_LIST_STREAM_HISTORY:
{
- auto query = m_ml->history();
- if ( query == nullptr )
- return VLC_EGENERIC;
+ medialibrary::Query<medialibrary::IMedia> query;
switch ( listQuery )
{
- case VLC_ML_LIST_HISTORY:
- *va_arg( args, vlc_ml_media_list_t**) =
- ml_convert_list<vlc_ml_media_list_t, vlc_ml_media_t>(
- query->items( nbItems, offset ) );
- return VLC_SUCCESS;
case VLC_ML_COUNT_HISTORY:
- *va_arg( args, size_t* ) = query->count();
- return VLC_SUCCESS;
+ case VLC_ML_LIST_HISTORY:
+ query = m_ml->history();
+ break;
+ case VLC_ML_COUNT_HISTORY_BY_TYPE:
+ case VLC_ML_LIST_HISTORY_BY_TYPE:
+ {
+ auto type = va_arg(args, int);
+ query = m_ml->history(static_cast<medialibrary::IMedia::Type>( type ));
+ break;
+ }
+ case VLC_ML_COUNT_STREAM_HISTORY:
+ case VLC_ML_LIST_STREAM_HISTORY:
+ query = m_ml->streamHistory();
+ break;
default:
vlc_assert_unreachable();
}
- }
- case VLC_ML_COUNT_HISTORY_BY_TYPE:
- case VLC_ML_LIST_HISTORY_BY_TYPE:
- {
- auto type = va_arg(args, int);
- auto query = m_ml->history(static_cast<medialibrary::IMedia::Type>( type ));
+
if ( query == nullptr )
return VLC_EGENERIC;
switch ( listQuery )
{
+ case VLC_ML_LIST_HISTORY:
case VLC_ML_LIST_HISTORY_BY_TYPE:
+ case VLC_ML_LIST_STREAM_HISTORY:
*va_arg( args, vlc_ml_media_list_t**) =
ml_convert_list<vlc_ml_media_list_t, vlc_ml_media_t>(
query->items( nbItems, offset ) );
return VLC_SUCCESS;
+ case VLC_ML_COUNT_HISTORY:
case VLC_ML_COUNT_HISTORY_BY_TYPE:
+ case VLC_ML_COUNT_STREAM_HISTORY:
*va_arg( args, size_t* ) = query->count();
return VLC_SUCCESS;
default:
vlc_assert_unreachable();
}
}
- case VLC_ML_LIST_STREAM_HISTORY:
- case VLC_ML_COUNT_STREAM_HISTORY:
- {
- auto query = m_ml->streamHistory();
- if ( query == nullptr )
- return VLC_EGENERIC;
- switch ( listQuery )
- {
- case VLC_ML_LIST_STREAM_HISTORY:
- *va_arg( args, vlc_ml_media_list_t**) =
- ml_convert_list<vlc_ml_media_list_t, vlc_ml_media_t>(
- query->items( nbItems, offset ) );
- return VLC_SUCCESS;
- case VLC_ML_COUNT_STREAM_HISTORY:
- *va_arg( args, size_t* ) = query->count();
- return VLC_SUCCESS;
- default:
- vlc_assert_unreachable();
- }
- }
+
}
return VLC_SUCCESS;
}
--
2.25.1
More information about the vlc-devel
mailing list