vlc | branch: master | Hugo Beauzée-Luyssen <[email protected]> | Wed Jul 31 11:17:13 2019 +0200| [f12cd172a9f760e7f4ee6adfce58119fda2fca55] | committer: Hugo Beauzée-Luyssen
medialibrary: Expose onHistoryChange event > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f12cd172a9f760e7f4ee6adfce58119fda2fca55 --- include/vlc_media_library.h | 17 +++++++++++++++++ modules/misc/medialibrary/medialib.cpp | 16 +++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/include/vlc_media_library.h b/include/vlc_media_library.h index 138fb19f05..8c599a3710 100644 --- a/include/vlc_media_library.h +++ b/include/vlc_media_library.h @@ -76,6 +76,12 @@ typedef enum vlc_ml_thumbnail_size_t VLC_ML_THUMBNAIL_SIZE_COUNT } vlc_ml_thumbnail_size_t; +typedef enum vlc_ml_history_type_t +{ + VLC_ML_HISTORY_TYPE_MEDIA, + VLC_ML_HISTORY_TYPE_NETWORK, +} vlc_ml_history_type_t; + typedef struct vlc_ml_thumbnail_t { char* psz_mrl; @@ -628,6 +634,13 @@ enum vlc_ml_event_type * vlc_ml_event_t::media_thumbnail_generated::b_success */ VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED, + /** + * Sent after the history gets changed. It can be either cleaned, or simply + * modified because a media was recently played/removed from the history. + * The history type (media/network) is stored in + * vlc_ml_event_t::history_changed::history_type + */ + VLC_ML_EVENT_HISTORY_CHANGED, }; typedef struct vlc_ml_event_t @@ -707,6 +720,10 @@ typedef struct vlc_ml_event_t vlc_ml_thumbnail_size_t i_size; bool b_success; } media_thumbnail_generated; + struct + { + vlc_ml_history_type_t history_type; + } history_changed; }; } vlc_ml_event_t; diff --git a/modules/misc/medialibrary/medialib.cpp b/modules/misc/medialibrary/medialib.cpp index 3b1a210eb6..cdbf5e39a7 100644 --- a/modules/misc/medialibrary/medialib.cpp +++ b/modules/misc/medialibrary/medialib.cpp @@ -317,8 +317,22 @@ void MediaLibrary::onMediaThumbnailReady( medialibrary::MediaPtr media, m_vlc_ml->cbs->pf_send_event( m_vlc_ml, &ev ); } -void MediaLibrary::onHistoryChanged( medialibrary::HistoryType ) +void MediaLibrary::onHistoryChanged( medialibrary::HistoryType historyType ) { + vlc_ml_event_t ev; + ev.i_type = VLC_ML_EVENT_HISTORY_CHANGED; + switch ( historyType ) + { + case medialibrary::HistoryType::Media: + ev.history_changed.history_type = VLC_ML_HISTORY_TYPE_MEDIA; + break; + case medialibrary::HistoryType::Network: + ev.history_changed.history_type = VLC_ML_HISTORY_TYPE_NETWORK; + break; + default: + vlc_assert_unreachable(); + } + m_vlc_ml->cbs->pf_send_event( m_vlc_ml, &ev ); } MediaLibrary::MediaLibrary( vlc_medialibrary_module_t* ml ) _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
