VLC 4.0.0-dev
Loading...
Searching...
No Matches
vlc_media_library.h
Go to the documentation of this file.
1/*****************************************************************************
2 * vlc_media_library.h: SQL-based media library
3 *****************************************************************************
4 * Copyright (C) 2008-2010 the VideoLAN Team and AUTHORS
5 *
6 * Authors: Antoine Lejeune <phytos@videolan.org>
7 * Jean-Philippe André <jpeg@videolan.org>
8 * Rémi Duraffort <ivoire@videolan.org>
9 * Adrien Maglo <magsoft@videolan.org>
10 * Srikanth Raju <srikiraju at gmail dot com>
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU Lesser General Public License as published by
14 * the Free Software Foundation; either version 2.1 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Lesser General Public License for more details.
21 *
22 * You should have received a copy of the GNU Lesser General Public License
23 * along with this program; if not, write to the Free Software Foundation,
24 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25 *****************************************************************************/
26
27#ifndef VLC_MEDIA_LIBRARY_H
28# define VLC_MEDIA_LIBRARY_H
29
30#include <assert.h>
31#include <vlc_common.h>
32
33#include <time.h>
34
35# ifdef __cplusplus
36extern "C" {
37# endif
38
39typedef enum vlc_ml_media_type_t
46typedef enum vlc_ml_media_subtype_t
54typedef enum vlc_ml_file_type_t
64typedef enum vlc_ml_track_type_t
71typedef enum vlc_ml_thumbnail_size_t
88typedef enum vlc_ml_history_type_t
94typedef enum vlc_ml_playlist_type_t
101typedef struct vlc_ml_thumbnail_t
103 char* psz_mrl;
104 /**
105 * True if a thumbnail is available, or if thumbnail generation was
106 * attempted but failed
107 */
111typedef struct vlc_ml_movie_t
117typedef struct vlc_ml_show_episode_t
125typedef struct vlc_ml_show_t
137typedef struct vlc_ml_label_t
143typedef struct vlc_ml_label_list_t
149typedef struct vlc_ml_file_t
160typedef struct vlc_ml_file_list_t
166typedef struct vlc_ml_media_track_t
168 char* psz_codec;
172 uint32_t i_bitrate;
173 union
174 {
175 struct
176 {
177 // Audio
178 uint32_t i_nbChannels;
179 uint32_t i_sampleRate;
180 } a;
181 struct
182 {
183 // Video
184 uint32_t i_height;
185 uint32_t i_width;
186 uint32_t i_sarNum;
187 uint32_t i_sarDen;
188 uint32_t i_fpsNum;
189 uint32_t i_fpsDen;
190 } v;
191 };
194typedef struct vlc_ml_media_track_list_t
200typedef struct vlc_ml_media_t
239typedef struct vlc_ml_group_t
263typedef struct vlc_ml_playlist_t
265 int64_t i_id;
267 char* psz_name;
269 char* psz_mrl;
271 char* psz_artwork_mrl;
273 unsigned int i_nb_media;
274 uint32_t i_nb_video;
275 uint32_t i_nb_audio;
276 uint32_t i_nb_unknown;
278 unsigned int i_nb_present_media;
283 uint32_t i_creation_date;
285 int64_t i_duration; /* In ms */
288 bool b_is_read_only;
291typedef struct vlc_ml_artist_t
304typedef struct vlc_ml_artist_list_t
310typedef struct vlc_ml_album_t {
325typedef struct vlc_ml_genre_t
333typedef struct vlc_ml_media_list_t
339typedef struct vlc_ml_album_list_t
345typedef struct vlc_ml_show_list_t
351typedef struct vlc_ml_genre_list_t
357typedef struct vlc_ml_group_list_t
363typedef struct vlc_ml_playlist_list_t
369typedef struct vlc_ml_folder_t
371 int64_t i_id; /**< The folder's MRL. Will be NULL if b_present is false */
372 char* psz_name; /**< The folder's name */
373 char* psz_mrl; /**< The folder's MRL. Will be NULL if b_present is false */
374 unsigned int i_nb_media; /**< The media count */
375 unsigned int i_nb_video; /**< The number of video for this folder */
376 unsigned int i_nb_audio; /**< The number of audio for this volder */
377 bool b_present; /**< The folder's presence state */
378 bool b_banned; /**< Will be true if the user required this folder to be excluded */
381typedef struct vlc_ml_folder_list_t
387typedef struct vlc_ml_bookmark_t
389 int64_t i_media_id; /**< The associated media ID */
390 int64_t i_time; /**< The bookmark time. The unit is arbitrary */
391 char* psz_name; /**< The bookmark name */
392 char* psz_description; /**< The bookmark description */
395typedef struct vlc_ml_boomkmark_list_t
401/* Opaque medialibrary pointer, to be used by any non-medialibrary module */
403/* "Private" medialibrary pointer, to be used by the core & medialibrary modules */
405/* Opaque event callback type */
408typedef enum vlc_ml_sorting_criteria_t
441 VLC_ML_GET_MEDIA, /**< arg1: Media ID; ret: vlc_ml_media_t* */
442 VLC_ML_GET_MEDIA_BY_MRL, /**< arg1: Media MRL; ret: vlc_ml_media_t* */
443 VLC_ML_GET_INPUT_ITEM, /**< arg1: Media ID; ret: input_item_t* */
444 VLC_ML_GET_INPUT_ITEM_BY_MRL, /**< arg1: Media MRL; ret: input_item_t* */
445 VLC_ML_GET_ALBUM, /**< arg1: Album ID; ret: vlc_ml_album_t* */
446 VLC_ML_GET_ARTIST, /**< arg1: Artist ID; ret: vlc_ml_artist_t* */
447 VLC_ML_GET_GENRE, /**< arg1: Genre ID; ret: vlc_ml_genre_t* */
448 VLC_ML_GET_SHOW, /**< arg1: Show ID; ret: vlc_ml_show_t* */
449 VLC_ML_GET_PLAYLIST, /**< arg1: Playlist ID; ret: vlc_ml_playlist_t* */
450 VLC_ML_GET_GROUP, /**< arg1: Group ID; ret: vlc_ml_group_t* */
451 VLC_ML_GET_FOLDER, /**< arg1: folder ID; ret: vlc_ml_folder_t* */
453
456 /* General listing: */
457
458 VLC_ML_LIST_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
459 VLC_ML_COUNT_VIDEOS, /**< arg1 (out): size_t* */
460 VLC_ML_LIST_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
461 VLC_ML_COUNT_AUDIOS, /**< arg1 (out): size_t* */
462 VLC_ML_LIST_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
463 VLC_ML_COUNT_ALBUMS, /**< arg1 (out): size_t* */
464 VLC_ML_LIST_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
465 VLC_ML_COUNT_GENRES, /**< arg1 (out): size_t* */
466 VLC_ML_LIST_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t** */
467 VLC_ML_COUNT_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): size_t* */
468 VLC_ML_LIST_SHOWS, /**< arg1 (out): vlc_ml_show_list_t** */
469 VLC_ML_COUNT_SHOWS, /**< arg1 (out): size_t* */
470 VLC_ML_LIST_GROUPS, /**< arg1 (out): vlc_ml_group_list_t** */
471 VLC_ML_COUNT_GROUPS, /**< arg1 (out): size_t* */
472 VLC_ML_LIST_PLAYLISTS, /**< arg1 (out): vlc_ml_playlist_list_t** */
473 VLC_ML_COUNT_PLAYLISTS, /**< arg1 (out): size_t* */
474 VLC_ML_LIST_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
475 VLC_ML_COUNT_HISTORY, /**< arg1 (out): size_t* */
476 VLC_ML_LIST_HISTORY_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
477 VLC_ML_COUNT_HISTORY_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
478 VLC_ML_LIST_STREAM_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
479 VLC_ML_COUNT_STREAM_HISTORY, /**< arg1 (out): size_t* */
480 VLC_ML_LIST_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t** */
481 VLC_ML_COUNT_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): size_t* */
482 VLC_ML_LIST_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
483 VLC_ML_COUNT_FOLDERS, /**< arg1 (out): size_t* */
484 VLC_ML_LIST_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
485 VLC_ML_COUNT_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
487 /* Album specific listings */
488 VLC_ML_LIST_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): vlc_ml_media_list_t** */
489 VLC_ML_COUNT_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): size_t* */
490 VLC_ML_LIST_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): vlc_ml_album_list_t** */
491 VLC_ML_COUNT_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): size_t* */
493 /* Artist specific listings */
494 VLC_ML_LIST_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): vlc_ml_album_list_t** */
495 VLC_ML_COUNT_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): size_t* */
496 VLC_ML_LIST_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): vlc_ml_media_list_t** */
497 VLC_ML_COUNT_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): size_t* */
499 /* Genre specific listings */
500 VLC_ML_LIST_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): vlc_ml_artist_list_t** */
501 VLC_ML_COUNT_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): size_t* */
502 VLC_ML_LIST_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): vlc_ml_media_list_t** */
503 VLC_ML_COUNT_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): size_t* */
504 VLC_ML_LIST_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): vlc_ml_album_list_t** */
505 VLC_ML_COUNT_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): size_t* */
507 /* Show specific listings */
508 VLC_ML_LIST_SHOW_EPISODES, /**< arg1: show id; arg2(out): vlc_ml_media_list_t** */
509 VLC_ML_COUNT_SHOW_EPISODES, /**< arg1: show id; arg2(out): size_t* */
511 /* Media specific listings */
512 VLC_ML_LIST_MEDIA_LABELS, /**< arg1: media id; arg2 (out): vlc_ml_label_list_t** */
513 VLC_ML_COUNT_MEDIA_LABELS, /**< arg1: media id; arg2 (out): size_t* */
514 VLC_ML_LIST_MEDIA_BOOKMARKS, /**< arg1: media id; arg2 (out): vlc_ml_bookmark_list_t** */
516 /* Groups specific listings */
517 VLC_ML_LIST_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
518 VLC_ML_COUNT_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
520 /* Playlist specific listings */
521 VLC_ML_LIST_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
522 VLC_ML_COUNT_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
524 /* Folder specific listings */
525 VLC_ML_LIST_SUBFOLDERS, /**< arg1: parent id; arg2 (out): vlc_ml_folder_list_t** */
526 VLC_ML_COUNT_SUBFOLDERS, /**< arg1: parent id; arg2 (out): size_t* */
527 VLC_ML_LIST_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): vlc_ml_media_list_t** */
528 VLC_ML_COUNT_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): size_t* */
530 /* Children entities listing */
531 VLC_ML_LIST_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t** */
532 VLC_ML_COUNT_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
533 VLC_ML_LIST_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
534 VLC_ML_COUNT_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
535 VLC_ML_LIST_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
536 VLC_ML_COUNT_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
537 VLC_ML_LIST_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t** */
538 VLC_ML_COUNT_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
539 VLC_ML_LIST_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t** */
540 VLC_ML_COUNT_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
542
557 /* Adds a folder to discover through the medialibrary */
558 VLC_ML_ADD_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
559 VLC_ML_REMOVE_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
560 VLC_ML_BAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
561 VLC_ML_UNBAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
562 VLC_ML_IS_INDEXED, /**< arg1: mrl (const char*) arg2 (out): bool*; res: can fail */
563 /**
564 * Reload a specific folder, or all.
565 * arg1: mrl (const char*), NULL to reload all folders
566 * res: can't fail
567 */
570 /* Pause/resume background operations, such as media discovery & media analysis */
571 VLC_ML_PAUSE_BACKGROUND, /**< no args; can't fail */
572 VLC_ML_RESUME_BACKGROUND, /**< no args; can't fail */
574 /* Misc operations */
575 VLC_ML_CLEAR_HISTORY, /**< no args; can't fail */
577 /* Create media */
578 VLC_ML_NEW_EXTERNAL_MEDIA, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
579 VLC_ML_NEW_STREAM, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
583 /* Media management */
584 VLC_ML_MEDIA_UPDATE_PROGRESS, /**< arg1: media id; arg2: playback position; can fail */
585 VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: char**; */
586 VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*; */
587 VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2(out): vlc_ml_playback_states_all* */
588 VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2: const vlc_ml_playback_states_all* */
589 VLC_ML_MEDIA_SET_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
590 VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
591 VLC_ML_MEDIA_GENERATE_THUMBNAIL, /**< arg1: media id; arg2: vlc_ml_thumbnail_size_t; arg3: width; arg4: height; arg5: position */
592 VLC_ML_MEDIA_ADD_EXTERNAL_MRL, /**< arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t) */
593 VLC_ML_MEDIA_SET_TYPE, /**< arg1: media id; arg2: vlc_ml_media_type_t */
594 VLC_ML_MEDIA_SET_PLAYED, /**< arg1: media id; arg2: bool */
595 VLC_ML_MEDIA_SET_FAVORITE, /**< arg1: media id; arg2: bool */
596 VLC_ML_MEDIA_ADD_BOOKMARK, /**< arg1: media id; arg2: int64_t */
597 VLC_ML_MEDIA_REMOVE_BOOKMARK, /**< arg1: media id; arg2: int64_t */
598 VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, /**< arg1: media id */
599 VLC_ML_MEDIA_UPDATE_BOOKMARK, /**< arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char* */
601 /* Playlist management */
602 VLC_ML_PLAYLIST_CREATE, /**< arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail */
603 VLC_ML_PLAYLIST_DELETE, /**< arg1: playlist id; can fail */
604 VLC_ML_PLAYLIST_APPEND, /**< arg1: playlist id; arg2: media id; can fail */
605 VLC_ML_PLAYLIST_INSERT, /**< arg1: playlist id; arg2: media id; arg3: position; can fail */
606 VLC_ML_PLAYLIST_MOVE, /**< arg1: playlist id; arg2: from; arg3: to; can fail */
607 VLC_ML_PLAYLIST_REMOVE, /**< arg1: playlist id; arg2: position; can fail */
608 VLC_ML_PLAYLIST_RENAME /**< arg1: playlist id; arg2: const char*; can fail */
609};
611/**
612 * User playback settings.
613 * All values/units are up to the caller and are not interpreted by the media
614 * library.
615 * All values are stored and returned as strings.
616 * When calling vlc_medialibrary_t::pf_control with vlc_ml_MEDIA_GET_MEDIA_PLAYBACK_STATE,
617 * the value will be returned stored in the provided char**. If the state was
618 * not set yet, NULL will be returned.
619 * When setting a state, NULL can be provided as a value to unset it.
620 */
642typedef struct vlc_ml_playback_states_all
658 /**
659 * Entity modification callbacks. The affected entity will be passed:
660 * - As a `vlc_ml_<type>_t`, depending on the type of the modified/inserted
661 * entity, in `vlc_ml_event_t::modification::p_<type>`
662 * for ADDED and UPDATED variants.
663 * - as an id, in ::vlc_ml_event_t::deletion::i_entity_id
664 * When _DELETED callbacks get invoked, the entity will already have been
665 * deleted from the database, and cannot be retrieved anymore
666 */
691 /**
692 * A discovery started.
693 *
694 * This event will be emitted when the media library starts discovering a
695 * scheduled entry point.
696 * If more than a single entry point are queued, this event won't be fired
697 * again until all operations are completed and a new operation is scheduled.
698 * Once all currently queued operations are done
699 * VLC_ML_EVENT_DISCOVERY_COMPLETED will be emitted.
700 */
702 /**
703 * Sent when a discovery or reload operation starts analyzing a new folder.
704 * The discovered entry point is stored in
705 * vlc_ml_event_t::discovery_progress::psz_entry_point.
706 */
708 /**
709 * Sent when all queued discovery operations are done being processed.
710 */
712 /**
713 * This event is sent when a discovery failed. The entry point that failed to
714 * be discovered is stored in
715 * vlc_ml_event_t::discovery_failed::psz_entry_point
716 */
718 /**
719 * Sent when a new entry point gets added to the database.
720 * The entry point that was added is stored in
721 * vlc::ml_event_t::entry_point_added::psz_entry_point, and the success or failure
722 * state is stored in vlc_ml_event_t::entry_point_added::b_success
723 * If successful, this event won't be emitted again for this entry point.
724 * In case of failure, this event will be fired again if the same entry point
725 * is queued for discovery again.
726 */
728 /**
729 * Sent when an entry point removal request has been processed.
730 * The removed entry point is stored in
731 * vlc_ml_event_t::entry_point_removed::psz_entry_point and the success or failure
732 * state is stored in vlc_ml_event_t::entry_point_removed::b_success
733 */
735 /**
736 * Sent when an entry point ban request has been processed.
737 * The banned entry point is stored in
738 * vlc_ml_event_t::entry_point_banned::psz_entry_point and the operation success
739 * state is stored in vlc_ml_event_t::entry_point_banned::b_success
740 */
742 /**
743 * Sent when an entry point unban request has been processed.
744 * The unbanned entry point is stored in
745 * vlc_ml_event_t::entry_point_unbanned::psz_entry_point and the operation success
746 * state is stored in vlc_ml_event_t::entry_point_unbanned::b_success
747 */
749 /**
750 * Sent when a discoverer or parser threads changes its idle state.
751 * The idle state is stored in vlc_ml_event_t::background_idle_changed.b_idle.
752 * False means at least one background thread is in running, true means
753 * both discoverer & parser threads are paused.
754 */
756 /**
757 * Sent when the parsing progress percentage gets updated.
758 * The percentage is stored as a [0;100] integer, in
759 * vlc_ml_event_t::parsing_progress::i_percent
760 * This value might decrease as more media get discovered, but it will only
761 * increase once all discovery operations are completed.
762 */
764 /**
765 * Sent after a media thumbnail was generated, or if it's generation failed.
766 * The media is stored in vlc_ml_event_t::media_thumbnail_generated::p_media
767 * and the success state is stored in
768 * vlc_ml_event_t::media_thumbnail_generated::b_success
769 */
771 /**
772 * Sent after the history gets changed. It can be either cleaned, or simply
773 * modified because a media was recently played/removed from the history.
774 * The history type (media/network) is stored in
775 * vlc_ml_event_t::history_changed::history_type
776 */
778 /**
779 * Sent when an application requested rescan starts being processed.
780 */
783
784typedef struct vlc_ml_event_t
786 int i_type;
787 union
788 {
789 struct
790 {
791 const char* psz_entry_point;
793 struct
794 {
795 const char* psz_entry_point;
797 struct
798 {
799 const char* psz_entry_point;
800 bool b_success;
802 struct
803 {
804 const char* psz_entry_point;
805 bool b_success;
807 struct
808 {
809 const char* psz_entry_point;
810 bool b_success;
812 struct
813 {
814 const char* psz_entry_point;
815 bool b_success;
817 struct
818 {
819 uint8_t i_percent;
821 union
822 {
823 const vlc_ml_media_t* p_media;
832 struct
833 {
834 int64_t i_entity_id;
836 struct
837 {
838 int64_t i_entity_id;
839 } deletion;
840 struct
841 {
842 bool b_idle;
844 struct
845 {
846 const vlc_ml_media_t* p_media;
850 struct
851 {
854 };
857typedef void (*vlc_ml_callback_t)( void* p_data, const vlc_ml_event_t* p_event );
859typedef struct vlc_medialibrary_callbacks_t
866 struct vlc_object_t obj;
870 void* p_sys;
872 int (*pf_control)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
873 /**
874 * List some entities from the medialibrary.
875 *
876 * \param p_ml The medialibrary module instance.
877 * \param i_query The type search to be performed. \see vlc_ml_list enumeration
878 * \param p_params A pointer to a vlc_ml_query_params_t structure, or NULL for
879 * the default parameters (alphabetical ascending sort, no pagination)
880 *
881 * \return VLC_SUCCESS or an error code
882 *
883 * Refer to the individual list of vlc_ml_list requests for the additional
884 * per-query input/output parameters values & types
885 */
886 int (*pf_list)( struct vlc_medialibrary_module_t* p_ml, int i_query,
887 const vlc_ml_query_params_t* p_params, va_list args );
888
889 /**
890 * Get a specific entity by its id or another unique value
891 *
892 * \return The required entity, or a NULL pointer if couldn't be found.
893 *
894 * Refer to the list of queries for the specific return type
895 */
896 void* (*pf_get)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
900
903
905#define vlc_ml_instance_get(x) vlc_ml_instance_get( VLC_OBJECT(x) )
907VLC_API void* vlc_ml_get( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
908VLC_API int vlc_ml_control( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
909VLC_API int vlc_ml_list( vlc_medialibrary_t* p_ml, int i_query,
910 const vlc_ml_query_params_t* p_params, ... );
911
912/**
913 * \brief Registers a medialibrary callback.
914 * \returns A handle to the callback, to be passed to vlc_ml_event_unregister_callback
915 */
918
919/**
920 * \brief Unregisters a medialibrary callback
921 * \param p_ml an initialized medialibrary instance
922 * \param p_callback The callback handle returned by vlc_ml_register_callback
923 */
925 vlc_ml_event_callback_t* p_callback );
926/**
927 * \brief Unregisters a medialibrary callback from the said callback.
928 * \param p_ml an initialized medialibrary instance
929 * \param p_callback The handle returned by vlc_ml_register_callback
930 *
931 * This must only be called synchronously from the callback function provided to
932 * vlc_ml_event_register_callback
933 * The p_callback handle must be considered invalid when this function returns
934 */
936 vlc_ml_event_callback_t* p_callback );
937
938
947
961
964#ifdef __cplusplus
965 vlc_ml_query_params_t ret = { };
967#else
969#endif
970 return ret;
971}
972
973static inline int vlc_ml_add_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
975 return vlc_ml_control( p_ml, VLC_ML_ADD_FOLDER, psz_folder );
976}
977
978static inline int vlc_ml_remove_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
980 return vlc_ml_control( p_ml, VLC_ML_REMOVE_FOLDER, psz_folder );
981}
982
983static inline int vlc_ml_ban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
985 return vlc_ml_control( p_ml, VLC_ML_BAN_FOLDER, psz_folder );
986}
987
988static inline int vlc_ml_unban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
990 return vlc_ml_control( p_ml, VLC_ML_UNBAN_FOLDER, psz_folder );
991}
992
993static inline int vlc_ml_is_indexed( vlc_medialibrary_t* p_ml,
994 const char* psz_mrl, bool* p_res )
995{
996 return vlc_ml_control( p_ml, VLC_ML_IS_INDEXED, psz_mrl, p_res );
997}
998
999static inline int vlc_ml_reload_folder( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1001 return vlc_ml_control( p_ml, VLC_ML_RELOAD_FOLDER, psz_mrl );
1002}
1003
1004static inline int vlc_ml_pause_background( vlc_medialibrary_t* p_ml )
1007}
1008
1009static inline int vlc_ml_resume_background( vlc_medialibrary_t* p_ml )
1012}
1013
1014static inline int vlc_ml_clear_history( vlc_medialibrary_t* p_ml )
1016 return vlc_ml_control( p_ml, VLC_ML_CLEAR_HISTORY );
1017}
1018
1019static inline vlc_ml_media_t* vlc_ml_new_external_media( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1021 vlc_ml_media_t* res;
1022 if ( vlc_ml_control( p_ml, VLC_ML_NEW_EXTERNAL_MEDIA, psz_mrl, &res ) != VLC_SUCCESS )
1023 return NULL;
1024 return res;
1025}
1026
1027static inline vlc_ml_media_t* vlc_ml_new_stream( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1029 vlc_ml_media_t* res;
1030 if ( vlc_ml_control( p_ml, VLC_ML_NEW_STREAM, psz_mrl, &res ) != VLC_SUCCESS )
1031 return NULL;
1032 return res;
1033}
1034
1035static inline int vlc_ml_remove_stream( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1037 return vlc_ml_control(p_ml, VLC_ML_REMOVE_STREAM, i_media_id);
1038}
1039
1040static inline int vlc_ml_media_update_progress( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1041 double progress )
1042{
1043 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_PROGRESS, i_media_id, progress );
1044}
1045
1046static inline int vlc_ml_media_get_playback_state( vlc_medialibrary_t* p_ml, int64_t i_media_id, int i_state, char** ppsz_result )
1048 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, ppsz_result );
1049}
1050
1051static inline int vlc_ml_media_set_playback_state( vlc_medialibrary_t* p_ml, int64_t i_media_id, int i_state, const char* psz_value )
1053 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, psz_value );
1054}
1055
1057 int64_t i_media_id,
1059{
1060 return vlc_ml_control( p_ml,VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1061}
1062
1064 int64_t i_media_id,
1065 const vlc_ml_playback_states_all* prefs )
1066{
1067 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1068}
1069
1070static inline int vlc_ml_media_set_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1071 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1072{
1073 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1074}
1075
1076static inline int vlc_ml_media_set_genre_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1077 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1078{
1079 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1080}
1081
1082
1083static inline int vlc_ml_media_generate_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1085 uint32_t i_desired_width,
1086 uint32_t i_desired_height,
1087 double position )
1088{
1089 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GENERATE_THUMBNAIL, i_media_id,
1090 size_type, i_desired_width, i_desired_height, position );
1091}
1092
1093static inline int vlc_ml_media_add_external_mrl( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1094 const char* psz_mrl, int i_type )
1095{
1096 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_EXTERNAL_MRL, i_media_id, psz_mrl, i_type );
1097}
1098
1099static inline int vlc_ml_media_set_type( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1101{
1102 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_TYPE, i_media_id, (int)i_type );
1103}
1104
1105static inline int vlc_ml_media_set_played( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1106 bool b_played )
1107{
1108 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_PLAYED, i_media_id, (int) b_played );
1109}
1110
1111static inline int vlc_ml_media_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1112 bool b_favorite )
1113{
1114 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_FAVORITE, i_media_id, (int) b_favorite );
1115}
1116
1117static inline vlc_ml_bookmark_list_t*
1119 int64_t i_media_id )
1120{
1121 assert( p_ml != NULL );
1123 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_BOOKMARKS, params, i_media_id,
1124 &res ) != VLC_SUCCESS )
1125 return NULL;
1126 return res;
1127}
1128
1129static inline int
1130vlc_ml_media_add_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1132 assert( p_ml != NULL );
1133 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_BOOKMARK, i_media_id, i_time );
1134}
1135
1136static inline int
1137vlc_ml_media_remove_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1139 assert( p_ml != NULL );
1140 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_BOOKMARK, i_media_id, i_time );
1141}
1142
1143static inline int
1144vlc_ml_media_update_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1145 int64_t i_time, const char* psz_name,
1146 const char* psz_desc )
1147{
1148 assert( p_ml != NULL );
1149 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_BOOKMARK, i_media_id,
1150 i_time, psz_name, psz_desc );
1151}
1152
1153static inline int
1154vlc_ml_media_remove_all_bookmarks( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1156 assert( p_ml != NULL );
1157 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, i_media_id );
1158}
1159
1160static inline vlc_ml_playlist_t*
1161vlc_ml_playlist_create( vlc_medialibrary_t * p_ml, const char * name)
1163 assert( p_ml != NULL );
1164
1165 vlc_ml_playlist_t* result;
1166
1167 if (vlc_ml_control( p_ml, VLC_ML_PLAYLIST_CREATE, name, &result ) != VLC_SUCCESS )
1168 return NULL;
1169
1170 return result;
1171}
1172
1173static inline int
1174vlc_ml_playlist_delete( vlc_medialibrary_t * p_ml, int64_t i_playlist_id )
1176 assert( p_ml != NULL );
1177
1178 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_DELETE, i_playlist_id );
1179}
1180
1181static inline int
1182vlc_ml_playlist_append( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, int64_t i_media_id )
1184 assert( p_ml != NULL );
1185
1186 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_APPEND, i_playlist_id, i_media_id );
1187}
1188
1189static inline int
1190vlc_ml_playlist_insert( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, int64_t i_media_id,
1191 uint32_t i_position )
1192{
1193 assert( p_ml != NULL );
1194
1195 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_INSERT, i_playlist_id, i_media_id, i_position );
1196}
1197
1198static inline int
1200 int64_t i_playlist_id, uint32_t i_from, uint32_t i_to )
1201{
1202 assert( p_ml != NULL );
1203
1204 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_MOVE, i_playlist_id, i_from, i_to );
1205}
1206
1207static inline int
1208vlc_ml_playlist_remove( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, uint32_t i_position )
1210 assert( p_ml != NULL );
1211
1212 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_REMOVE, i_playlist_id, i_position );
1213}
1214
1215static inline int
1216vlc_ml_playlist_rename( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const char* name )
1218 assert( p_ml != NULL );
1219
1220 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_RENAME, i_playlist_id, name );
1221}
1222
1223static inline vlc_ml_media_t* vlc_ml_get_media( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1225 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA, i_media_id );
1226}
1227
1229 const char* psz_mrl )
1230{
1231 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA_BY_MRL, psz_mrl );
1232}
1233
1234static inline input_item_t* vlc_ml_get_input_item( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1236 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM, i_media_id );
1237}
1238
1240 const char* psz_mrl )
1241{
1242 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM_BY_MRL, psz_mrl );
1243}
1244
1245static inline vlc_ml_album_t* vlc_ml_get_album( vlc_medialibrary_t* p_ml, int64_t i_album_id )
1247 return (vlc_ml_album_t*)vlc_ml_get( p_ml, VLC_ML_GET_ALBUM, i_album_id );
1248}
1249
1250static inline vlc_ml_artist_t* vlc_ml_get_artist( vlc_medialibrary_t* p_ml, int64_t i_artist_id )
1252 return (vlc_ml_artist_t*)vlc_ml_get( p_ml, VLC_ML_GET_ARTIST, i_artist_id );
1253}
1254
1255static inline vlc_ml_genre_t* vlc_ml_get_genre( vlc_medialibrary_t* p_ml, int64_t i_genre_id )
1257 return (vlc_ml_genre_t*)vlc_ml_get( p_ml, VLC_ML_GET_GENRE, i_genre_id );
1258}
1259
1260static inline vlc_ml_show_t* vlc_ml_get_show( vlc_medialibrary_t* p_ml, int64_t i_show_id )
1262 return (vlc_ml_show_t*)vlc_ml_get( p_ml, VLC_ML_GET_SHOW, i_show_id );
1263}
1264
1265static inline vlc_ml_group_t* vlc_ml_get_group( vlc_medialibrary_t* p_ml, int64_t i_group_id )
1267 return (vlc_ml_group_t*)vlc_ml_get( p_ml, VLC_ML_GET_GROUP, i_group_id );
1268}
1269
1270static inline vlc_ml_folder_t* vlc_ml_get_folder( vlc_medialibrary_t* p_ml, int64_t i_folder_id )
1272 return (vlc_ml_folder_t*)vlc_ml_get( p_ml, VLC_ML_GET_FOLDER, i_folder_id);
1273}
1274
1275static inline vlc_ml_playlist_t* vlc_ml_get_playlist( vlc_medialibrary_t* p_ml, int64_t i_playlist_id )
1277 return (vlc_ml_playlist_t*)vlc_ml_get( p_ml, VLC_ML_GET_PLAYLIST, i_playlist_id );
1278}
1279
1280static inline vlc_ml_media_list_t* vlc_ml_list_media_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1282 vlc_assert( p_ml != NULL );
1284 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1285 return NULL;
1286 return res;
1287}
1288
1289static inline size_t vlc_ml_count_media_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1291 vlc_assert( p_ml != NULL );
1292 size_t res;
1293 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1294 return 0;
1295 return res;
1296}
1297
1300 int i_parent_type, int64_t i_parent_id )
1301{
1302 vlc_assert( p_ml != NULL );
1303
1305
1307 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1308 return NULL;
1309
1310 return res;
1311}
1312
1313static inline size_t vlc_ml_count_video_of( vlc_medialibrary_t* p_ml,
1315 int i_parent_type, int64_t i_parent_id )
1316{
1317 vlc_assert( p_ml != NULL );
1318
1319 size_t res;
1320
1322 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1323 return 0;
1324
1325 return res;
1326}
1327
1330 int i_parent_type, int64_t i_parent_id )
1331{
1332 vlc_assert( p_ml != NULL );
1333
1335
1337 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1338 return NULL;
1339
1340 return res;
1341}
1342
1343static inline size_t vlc_ml_count_audio_of( vlc_medialibrary_t* p_ml,
1345 int i_parent_type, int64_t i_parent_id )
1346{
1347 vlc_assert( p_ml != NULL );
1348
1349 size_t res;
1350
1352 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1353 return 0;
1354
1355 return res;
1356}
1357
1358static inline vlc_ml_artist_list_t* vlc_ml_list_artist_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1360 vlc_assert( p_ml != NULL );
1362 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1363 return NULL;
1364 return res;
1365}
1366
1367static inline size_t vlc_ml_count_artists_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1369 vlc_assert( p_ml != NULL );
1370 size_t res;
1371 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1372 return 0;
1373 return res;
1374}
1375
1376static inline vlc_ml_album_list_t* vlc_ml_list_albums_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1378 vlc_assert( p_ml != NULL );
1380 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1381 return NULL;
1382 return res;
1383}
1384
1385static inline size_t vlc_ml_count_albums_of( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int i_parent_type, int64_t i_parent_id )
1387 vlc_assert( p_ml != NULL );
1388 size_t res;
1389 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1390 return 0;
1391 return res;
1392}
1393
1394static inline vlc_ml_media_list_t* vlc_ml_list_album_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_album_id )
1396 vlc_assert( p_ml != NULL );
1398 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_TRACKS, params, i_album_id, &res ) != VLC_SUCCESS )
1399 return NULL;
1400 return res;
1401}
1402
1403static inline size_t vlc_ml_count_album_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_album_id )
1405 vlc_assert( p_ml != NULL );
1406 size_t count;
1407 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_TRACKS, params, i_album_id, &count ) != VLC_SUCCESS )
1408 return 0;
1409 return count;
1410}
1411
1412static inline vlc_ml_media_list_t* vlc_ml_list_album_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_album_id )
1414 vlc_assert( p_ml != NULL );
1416 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_ARTISTS, params, i_album_id, &res ) != VLC_SUCCESS )
1417 return NULL;
1418 return res;
1419}
1420
1421static inline size_t vlc_ml_count_album_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_album_id )
1423 vlc_assert( p_ml != NULL );
1424 size_t count;
1425 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_ARTISTS, params, i_album_id, &count ) != VLC_SUCCESS )
1426 return 0;
1427 return count;
1428}
1429
1430static inline vlc_ml_album_list_t* vlc_ml_list_artist_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_artist_id )
1432 vlc_assert( p_ml != NULL );
1434 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_ALBUMS, params, i_artist_id, &res ) != VLC_SUCCESS )
1435 return NULL;
1436 return res;
1437}
1438
1439static inline size_t vlc_ml_count_artist_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_artist_id )
1441 vlc_assert( p_ml != NULL );
1442 size_t count;
1443 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_ALBUMS, params, i_artist_id, &count ) != VLC_SUCCESS )
1444 return 0;
1445 return count;
1446}
1447
1448static inline vlc_ml_media_list_t* vlc_ml_list_artist_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_artist_id )
1450 vlc_assert( p_ml != NULL );
1452 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_TRACKS, params, i_artist_id, &res ) != VLC_SUCCESS )
1453 return NULL;
1454 return res;
1455}
1456
1457static inline size_t vlc_ml_count_artist_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_artist_id )
1459 vlc_assert( p_ml != NULL );
1460 size_t count;
1461 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_TRACKS, params, i_artist_id, &count ) != VLC_SUCCESS )
1462 return 0;
1463 return count;
1464}
1465
1468 vlc_assert( p_ml != NULL );
1470 if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEOS, params, &res ) != VLC_SUCCESS )
1471 return NULL;
1472 return res;
1473}
1474
1475static inline size_t vlc_ml_count_video_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1477 vlc_assert( p_ml != NULL );
1478 size_t count;
1479 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEOS, params, &count ) != VLC_SUCCESS )
1480 return 0;
1481 return count;
1482}
1483
1486 vlc_assert( p_ml != NULL );
1488 if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIOS, params, &res ) != VLC_SUCCESS )
1489 return NULL;
1490 return res;
1491}
1492
1493static inline size_t vlc_ml_count_audio_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1495 vlc_assert( p_ml != NULL );
1496 size_t count;
1497 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIOS, params, &count ) != VLC_SUCCESS )
1498 return 0;
1499 return count;
1500}
1501
1504 vlc_assert( p_ml != NULL );
1506 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS, params, &res ) != VLC_SUCCESS )
1507 return NULL;
1508 return res;
1509}
1510
1511static inline size_t vlc_ml_count_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1513 vlc_assert( p_ml != NULL );
1514 size_t count;
1515 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS, params, &count ) != VLC_SUCCESS )
1516 return 0;
1517 return count;
1518}
1519
1522 vlc_assert( p_ml != NULL );
1524 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRES, params, &res ) != VLC_SUCCESS )
1525 return NULL;
1526 return res;
1527}
1528
1529static inline size_t vlc_ml_count_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1531 vlc_assert( p_ml != NULL );
1532 size_t count;
1533 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRES, params, &count ) != VLC_SUCCESS )
1534 return 0;
1535 return count;
1536}
1537
1538/**
1539 * @brief vlc_ml_list_artists
1540 * @param p_ml an initialized medialibrary instance
1541 * @param params Query parameters, or NULL for the default
1542 * @param b_include_all True if you wish to fetch artists without at least one album.
1543 * @return
1544 */
1545static inline vlc_ml_artist_list_t* vlc_ml_list_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, bool b_include_all )
1547 vlc_assert( p_ml != NULL );
1549 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS, params, (int)b_include_all, &res ) != VLC_SUCCESS )
1550 return NULL;
1551 return res;
1552}
1553
1554static inline size_t vlc_ml_count_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, bool includeAll )
1556 vlc_assert( p_ml != NULL );
1557 size_t count;
1558 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS, params, includeAll, &count ) != VLC_SUCCESS )
1559 return 0;
1560 return count;
1561}
1562
1565 vlc_assert( p_ml != NULL );
1566 vlc_ml_show_list_t* res;
1567 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOWS, params, &res ) != VLC_SUCCESS )
1568 return NULL;
1569 return res;
1570}
1571
1572static inline size_t vlc_ml_count_shows( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1574 vlc_assert( p_ml != NULL );
1575 size_t count;
1576 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_SHOWS, params, &count ) != VLC_SUCCESS )
1577 return 0;
1578 return count;
1579}
1580
1581static inline vlc_ml_artist_list_t* vlc_ml_list_genre_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1583 vlc_assert( p_ml != NULL );
1585 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ARTISTS, params, i_genre_id, &res ) != VLC_SUCCESS )
1586 return NULL;
1587 return res;
1588}
1589
1590static inline size_t vlc_ml_count_genre_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1592 vlc_assert( p_ml != NULL );
1593 size_t count;
1594 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ARTISTS, params, i_genre_id, &count ) != VLC_SUCCESS )
1595 return 0;
1596 return count;
1597}
1598
1599static inline vlc_ml_media_list_t* vlc_ml_list_genre_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1601 vlc_assert( p_ml != NULL );
1603 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_TRACKS, params, i_genre_id, &res ) != VLC_SUCCESS )
1604 return NULL;
1605 return res;
1606}
1607
1608static inline size_t vlc_ml_count_genre_tracks( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1610 vlc_assert( p_ml != NULL );
1611 size_t count;
1612 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_TRACKS, params, i_genre_id, &count ) != VLC_SUCCESS )
1613 return 0;
1614 return count;
1615}
1616
1617static inline vlc_ml_album_list_t* vlc_ml_list_genre_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1619 vlc_assert( p_ml != NULL );
1621 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ALBUMS, params, i_genre_id, &res ) != VLC_SUCCESS )
1622 return NULL;
1623 return res;
1624}
1625
1626static inline size_t vlc_ml_count_genre_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_genre_id )
1628 vlc_assert( p_ml != NULL );
1629 size_t count;
1630 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_genre_id, &count ) != VLC_SUCCESS )
1631 return 0;
1632 return count;
1633}
1634
1635static inline vlc_ml_media_list_t* vlc_ml_list_show_episodes( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_show_id )
1637 vlc_assert( p_ml != NULL );
1639 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOW_EPISODES, params, i_show_id, &res ) != VLC_SUCCESS )
1640 return NULL;
1641 return res;
1642}
1643
1644static inline size_t vlc_ml_count_show_episodes( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_show_id )
1646 vlc_assert( p_ml != NULL );
1647 size_t count;
1648 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_show_id, &count ) != VLC_SUCCESS )
1649 return 0;
1650 return count;
1651}
1652
1653static inline vlc_ml_label_list_t* vlc_ml_list_media_labels( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_media_id )
1655 vlc_assert( p_ml != NULL );
1657 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &res ) != VLC_SUCCESS )
1658 return NULL;
1659 return res;
1660}
1661
1662static inline size_t vlc_ml_count_media_labels( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_media_id )
1664 vlc_assert( p_ml != NULL );
1665 size_t count;
1666 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &count ) != VLC_SUCCESS )
1667 return 0;
1668 return count;
1669}
1670
1673 vlc_assert( p_ml != NULL );
1675 if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY, params, &res ) != VLC_SUCCESS )
1676 return NULL;
1677 return res;
1678}
1679
1680static inline size_t vlc_ml_count_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1682 vlc_assert( p_ml != NULL );
1683 size_t count;
1684 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY, params, &count ) != VLC_SUCCESS )
1685 return 0;
1686 return count;
1687}
1688
1689
1692 vlc_assert( p_ml != NULL );
1694 if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY_BY_TYPE, params, (int)type, &res ) != VLC_SUCCESS )
1695 return NULL;
1696 return res;
1697}
1698
1699static inline size_t vlc_ml_count_history_by_type( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, vlc_ml_media_type_t type )
1701 vlc_assert( p_ml != NULL );
1702 size_t count;
1703 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY_BY_TYPE, params, (int)type, &count ) != VLC_SUCCESS )
1704 return 0;
1705 return count;
1706}
1707
1708
1709
1712 vlc_assert( p_ml != NULL );
1714 if ( vlc_ml_list( p_ml, VLC_ML_LIST_STREAM_HISTORY, params, &res ) != VLC_SUCCESS )
1715 return NULL;
1716 return res;
1717}
1718
1719static inline size_t vlc_ml_count_stream_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1721 vlc_assert( p_ml != NULL );
1722 size_t count;
1723 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_STREAM_HISTORY, params, &count ) != VLC_SUCCESS )
1724 return 0;
1725 return count;
1726}
1727
1728//-------------------------------------------------------------------------------------------------
1729// Groups
1730
1733 vlc_assert( p_ml != NULL );
1735 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUPS, params, &res ) != VLC_SUCCESS )
1736 return NULL;
1737 return res;
1738}
1739
1740static inline size_t vlc_ml_count_groups( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1742 vlc_assert( p_ml != NULL );
1743 size_t count;
1744 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUPS, params, &count ) != VLC_SUCCESS )
1745 return 0;
1746 return count;
1747}
1748
1749static inline vlc_ml_media_list_t* vlc_ml_list_group_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_group_id )
1751 vlc_assert( p_ml != NULL );
1753 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUP_MEDIA, params, i_group_id, &res ) != VLC_SUCCESS )
1754 return NULL;
1755 return res;
1756}
1757
1758static inline size_t vlc_ml_count_group_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_group_id )
1760 vlc_assert( p_ml != NULL );
1761 size_t count;
1762 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUP_MEDIA, params, i_group_id, &count ) != VLC_SUCCESS )
1763 return 0;
1764 return count;
1765}
1766
1767//-------------------------------------------------------------------------------------------------
1768
1771 vlc_assert( p_ml != NULL );
1773 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, (int) playlist_type, &res ) != VLC_SUCCESS )
1774 return NULL;
1775 return res;
1776}
1777
1778static 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)
1780 vlc_assert( p_ml != NULL );
1781 size_t count;
1782 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, (int) playlist_type, &count ) != VLC_SUCCESS )
1783 return 0;
1784 return count;
1785}
1786
1787static inline vlc_ml_media_list_t* vlc_ml_list_playlist_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_playlist_id )
1789 vlc_assert( p_ml != NULL );
1791 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLIST_MEDIA, params, i_playlist_id, &res ) != VLC_SUCCESS )
1792 return NULL;
1793 return res;
1794}
1795
1796static inline size_t vlc_ml_count_playlist_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, int64_t i_playlist_id )
1798 vlc_assert( p_ml != NULL );
1799 size_t count;
1800 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLIST_MEDIA, params, i_playlist_id, &count ) != VLC_SUCCESS )
1801 return 0;
1802 return count;
1803}
1804
1807 vlc_assert( p_ml != NULL );
1809 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1810 return NULL;
1811 return res;
1812}
1813
1814static inline size_t vlc_ml_count_entry_points( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1816 vlc_assert( p_ml != NULL );
1817 size_t res;
1818 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1819 return 0;
1820 return res;
1821}
1822
1823static inline vlc_ml_folder_list_t*
1826 vlc_assert( p_ml != NULL );
1828 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1829 return NULL;
1830 return res;
1831}
1832
1833static inline size_t vlc_ml_count_banned_entry_points( vlc_medialibrary_t* p_ml,
1835{
1836 vlc_assert( p_ml != NULL );
1837 size_t res;
1838 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1839 return 0;
1840 return res;
1841}
1842
1843// Folders
1844
1847{
1848 vlc_assert(p_ml != NULL);
1849
1851
1852 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS, params, &res) != VLC_SUCCESS)
1853 return NULL;
1854
1855 return res;
1856}
1857
1858static inline size_t vlc_ml_count_folders(vlc_medialibrary_t * p_ml,
1860{
1861 vlc_assert(p_ml != NULL);
1862
1863 size_t count;
1864
1865 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS, params, &count) != VLC_SUCCESS)
1866 return 0;
1867
1868 return count;
1869}
1870
1871static inline
1875{
1876 vlc_assert(p_ml != NULL);
1877
1879
1880 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS_BY_TYPE, params, (int) type, &res) != VLC_SUCCESS)
1881 return NULL;
1882
1883 return res;
1884}
1885
1886static inline size_t vlc_ml_count_folders_by_type(vlc_medialibrary_t * p_ml,
1889{
1890 vlc_assert(p_ml != NULL);
1891
1892 size_t count;
1893
1894 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS_BY_TYPE, params, (int) type, &count) != VLC_SUCCESS)
1895 return 0;
1896
1897 return count;
1898}
1899
1900// Folder Media
1901
1904 int64_t i_folder_id)
1905{
1906 vlc_assert(p_ml != NULL);
1907
1908 vlc_ml_media_list_t * res;
1909
1910 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDER_MEDIA, params, i_folder_id, &res) != VLC_SUCCESS)
1911 return NULL;
1912
1913 return res;
1914}
1915
1916static inline size_t vlc_ml_count_folder_media(vlc_medialibrary_t * p_ml,
1918 int64_t i_folder_id)
1919{
1920 vlc_assert(p_ml != NULL);
1921
1922 size_t count;
1923
1924 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDER_MEDIA, params, i_folder_id, &count) != VLC_SUCCESS)
1925 return 0;
1926
1927 return count;
1928}
1929
1930#ifdef __cplusplus
1931}
1932#endif /* C++ */
1933
1934#ifndef __cplusplus
1935# define vlc_ml_release( OBJ ) _Generic( ( OBJ ), \
1936 vlc_ml_show_t*: vlc_ml_show_release, \
1937 vlc_ml_artist_t*: vlc_ml_artist_release, \
1938 vlc_ml_album_t*: vlc_ml_album_release, \
1939 vlc_ml_genre_t*: vlc_ml_genre_release, \
1940 vlc_ml_media_t*: vlc_ml_media_release, \
1941 vlc_ml_group_t*: vlc_ml_group_release, \
1942 vlc_ml_folder_t*: vlc_ml_folder_release, \
1943 vlc_ml_playlist_t*: vlc_ml_playlist_release, \
1944 vlc_ml_label_list_t*: vlc_ml_label_list_release, \
1945 vlc_ml_file_list_t*: vlc_ml_file_list_release, \
1946 vlc_ml_artist_list_t*: vlc_ml_artist_list_release, \
1947 vlc_ml_media_list_t*: vlc_ml_media_list_release, \
1948 vlc_ml_album_list_t*: vlc_ml_album_list_release, \
1949 vlc_ml_show_list_t*: vlc_ml_show_list_release, \
1950 vlc_ml_genre_list_t*: vlc_ml_genre_list_release, \
1951 vlc_ml_group_list_t*: vlc_ml_group_list_release, \
1952 vlc_ml_playlist_list_t*: vlc_ml_playlist_list_release, \
1953 vlc_ml_folder_list_t*: vlc_ml_folder_list_release, \
1954 vlc_ml_playback_states_all*: vlc_ml_playback_states_all_release, \
1955 vlc_ml_bookmark_t*: vlc_ml_bookmark_release, \
1956 vlc_ml_bookmark_list_t*: vlc_ml_bookmark_list_release \
1957 )( OBJ )
1958#else
1959static inline void vlc_ml_release( vlc_ml_show_t* show ) { vlc_ml_show_release( show ); }
1960static inline void vlc_ml_release( vlc_ml_artist_t* artist ) { vlc_ml_artist_release( artist ); }
1961static inline void vlc_ml_release( vlc_ml_album_t* album ) { vlc_ml_album_release( album ); }
1962static inline void vlc_ml_release( vlc_ml_genre_t* genre ) { vlc_ml_genre_release( genre ); }
1963static inline void vlc_ml_release( vlc_ml_media_t* media ) { vlc_ml_media_release( media ); }
1964static inline void vlc_ml_release( vlc_ml_group_t* group ) { vlc_ml_group_release( group ); }
1965static inline void vlc_ml_release( vlc_ml_folder_t* folder ) { vlc_ml_folder_release( folder ); }
1966static inline void vlc_ml_release( vlc_ml_playlist_t* playlist ) { vlc_ml_playlist_release( playlist ); }
1977static inline void vlc_ml_release( vlc_ml_playback_states_all* prefs ) { vlc_ml_playback_states_all_release( prefs ); }
1978static inline void vlc_ml_release( vlc_ml_bookmark_t* bookmark ) { vlc_ml_bookmark_release( bookmark ); }
1980#endif
1981
1982#endif /* VLC_MEDIA_LIBRARY_H */
struct vlc_param ** list
Definition core.c:402
size_t count
Definition core.c:403
#define VLC_USED
Definition fourcc_gen.c:32
#define VLC_API
Definition fourcc_gen.c:31
#define vlc_assert(pred)
Run-time assertion.
Definition vlc_common.h:290
#define VLC_SUCCESS
No error.
Definition vlc_common.h:478
const char name[16]
Definition httpd.c:1298
int i_type
Definition httpd.c:1299
Describes an input and is used to spawn input_thread_t objects.
Definition vlc_input_item.h:98
Definition vlc_objects.h:103
Internal module descriptor.
Definition modules.h:76
Definition vlc_media_library.h:861
void(* pf_send_event)(vlc_medialibrary_module_t *p_ml, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:862
Definition vlc_media_library.h:866
void * p_sys
Definition vlc_media_library.h:871
struct vlc_object_t obj
Definition vlc_media_library.h:867
int(* pf_control)(struct vlc_medialibrary_module_t *p_ml, int i_query, va_list args)
Definition vlc_media_library.h:873
int(* pf_list)(struct vlc_medialibrary_module_t *p_ml, int i_query, const vlc_ml_query_params_t *p_params, va_list args)
List some entities from the medialibrary.
Definition vlc_media_library.h:887
const vlc_medialibrary_callbacks_t * cbs
Definition vlc_media_library.h:899
module_t * p_module
Definition vlc_media_library.h:869
Definition medialibrary.c:42
Definition vlc_media_library.h:341
size_t i_nb_items
Definition vlc_media_library.h:342
vlc_ml_album_t p_items[]
Definition vlc_media_library.h:343
Definition vlc_media_library.h:311
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:315
int64_t i_duration
Definition vlc_media_library.h:322
char * psz_summary
Definition vlc_media_library.h:314
int64_t i_artist_id
Definition vlc_media_library.h:317
unsigned int i_year
Definition vlc_media_library.h:323
char * psz_title
Definition vlc_media_library.h:313
uint32_t i_nb_tracks
Definition vlc_media_library.h:319
uint32_t i_nb_present_tracks
Definition vlc_media_library.h:320
char * psz_artist
Definition vlc_media_library.h:316
uint32_t i_nb_discs
Definition vlc_media_library.h:321
int64_t i_id
Definition vlc_media_library.h:312
Definition vlc_media_library.h:306
size_t i_nb_items
Definition vlc_media_library.h:307
vlc_ml_artist_t p_items[]
Definition vlc_media_library.h:308
Definition vlc_media_library.h:293
char * psz_mb_id
Definition vlc_media_library.h:298
char * psz_shortbio
Definition vlc_media_library.h:296
int64_t i_id
Definition vlc_media_library.h:294
unsigned int i_nb_album
Definition vlc_media_library.h:300
char * psz_name
Definition vlc_media_library.h:295
uint32_t i_nb_present_tracks
Definition vlc_media_library.h:302
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:297
unsigned int i_nb_tracks
Definition vlc_media_library.h:301
Definition vlc_media_library.h:389
int64_t i_time
The bookmark time.
Definition vlc_media_library.h:391
char * psz_name
The bookmark name.
Definition vlc_media_library.h:392
int64_t i_media_id
The associated media ID.
Definition vlc_media_library.h:390
char * psz_description
The bookmark description.
Definition vlc_media_library.h:393
Definition vlc_media_library.h:397
size_t i_nb_items
Definition vlc_media_library.h:398
vlc_ml_bookmark_t p_items[]
Definition vlc_media_library.h:399
Definition medialibrary.c:35
Definition vlc_media_library.h:786
struct vlc_ml_event_t::@244::@249 entry_point_removed
struct vlc_ml_event_t::@244::@251 entry_point_unbanned
struct vlc_ml_event_t::@244::@255 deletion
struct vlc_ml_event_t::@244::@250 entry_point_banned
union vlc_ml_event_t::@244::@253 creation
struct vlc_ml_event_t::@244::@256 background_idle_changed
uint8_t i_percent
Definition vlc_media_library.h:820
struct vlc_ml_event_t::@244::@257 media_thumbnail_generated
int64_t i_entity_id
Definition vlc_media_library.h:835
bool b_success
Definition vlc_media_library.h:801
struct vlc_ml_event_t::@244::@246 discovery_progress
struct vlc_ml_event_t::@244::@252 parsing_progress
const vlc_ml_artist_t * p_artist
Definition vlc_media_library.h:825
vlc_ml_history_type_t history_type
Definition vlc_media_library.h:853
const char * psz_entry_point
Definition vlc_media_library.h:792
int i_type
Definition vlc_media_library.h:787
const vlc_ml_album_t * p_album
Definition vlc_media_library.h:826
const vlc_ml_playlist_t * p_playlist
Definition vlc_media_library.h:828
const vlc_ml_folder_t * p_folder
Definition vlc_media_library.h:831
struct vlc_ml_event_t::@244::@254 modification
const vlc_ml_genre_t * p_genre
Definition vlc_media_library.h:829
const vlc_ml_media_t * p_media
Definition vlc_media_library.h:824
vlc_ml_thumbnail_size_t i_size
Definition vlc_media_library.h:848
struct vlc_ml_event_t::@244::@247 discovery_failed
struct vlc_ml_event_t::@244::@258 history_changed
bool b_idle
Definition vlc_media_library.h:843
const vlc_ml_group_t * p_group
Definition vlc_media_library.h:827
const vlc_ml_bookmark_t * p_bookmark
Definition vlc_media_library.h:830
struct vlc_ml_event_t::@244::@248 entry_point_added
Definition vlc_media_library.h:162
size_t i_nb_items
Definition vlc_media_library.h:163
vlc_ml_file_t p_items[]
Definition vlc_media_library.h:164
Definition vlc_media_library.h:151
int64_t i_size
Definition vlc_media_library.h:153
bool b_present
Definition vlc_media_library.h:158
time_t i_last_modification_date
Definition vlc_media_library.h:154
bool b_external
Definition vlc_media_library.h:156
vlc_ml_file_type_t i_type
Definition vlc_media_library.h:155
char * psz_mrl
Definition vlc_media_library.h:152
bool b_removable
Definition vlc_media_library.h:157
Definition vlc_media_library.h:383
vlc_ml_folder_t p_items[]
Definition vlc_media_library.h:385
size_t i_nb_items
Definition vlc_media_library.h:384
Definition vlc_media_library.h:371
char * psz_mrl
The folder's MRL.
Definition vlc_media_library.h:374
bool b_present
The folder's presence state.
Definition vlc_media_library.h:378
bool b_banned
Will be true if the user required this folder to be excluded.
Definition vlc_media_library.h:379
char * psz_name
The folder's name.
Definition vlc_media_library.h:373
unsigned int i_nb_audio
The number of audio for this volder.
Definition vlc_media_library.h:377
int64_t i_id
The folder's MRL.
Definition vlc_media_library.h:372
unsigned int i_nb_media
The media count.
Definition vlc_media_library.h:375
unsigned int i_nb_video
The number of video for this folder.
Definition vlc_media_library.h:376
Definition vlc_media_library.h:353
vlc_ml_genre_t p_items[]
Definition vlc_media_library.h:355
size_t i_nb_items
Definition vlc_media_library.h:354
Definition vlc_media_library.h:327
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:331
size_t i_nb_tracks
Definition vlc_media_library.h:330
char * psz_name
Definition vlc_media_library.h:329
int64_t i_id
Definition vlc_media_library.h:328
Definition vlc_media_library.h:359
size_t i_nb_items
Definition vlc_media_library.h:360
vlc_ml_group_t p_items[]
Definition vlc_media_library.h:361
Definition vlc_media_library.h:241
uint32_t i_nb_video
Definition vlc_media_library.h:247
uint32_t i_nb_seen
Definition vlc_media_library.h:255
time_t i_creation_date
Definition vlc_media_library.h:260
int64_t i_id
Definition vlc_media_library.h:242
uint32_t i_nb_present_video
Definition vlc_media_library.h:251
uint32_t i_nb_present_audio
Definition vlc_media_library.h:252
char * psz_name
Definition vlc_media_library.h:244
uint32_t i_nb_unknown
Definition vlc_media_library.h:249
int64_t i_duration
Definition vlc_media_library.h:258
uint32_t i_nb_total_media
Definition vlc_media_library.h:246
uint32_t i_nb_present_media
Definition vlc_media_library.h:250
uint32_t i_nb_present_seen
Definition vlc_media_library.h:256
time_t i_last_modification_date
Definition vlc_media_library.h:261
uint32_t i_nb_present_unknown
Definition vlc_media_library.h:253
uint32_t i_nb_audio
Definition vlc_media_library.h:248
Definition vlc_media_library.h:145
size_t i_nb_items
Definition vlc_media_library.h:146
vlc_ml_label_t p_items[]
Definition vlc_media_library.h:147
Definition vlc_media_library.h:139
int64_t i_id
Definition vlc_media_library.h:140
char * psz_name
Definition vlc_media_library.h:141
Definition vlc_media_library.h:335
size_t i_nb_items
Definition vlc_media_library.h:336
vlc_ml_media_t p_items[]
Definition vlc_media_library.h:337
Definition vlc_media_library.h:202
int32_t i_year
Definition vlc_media_library.h:211
vlc_ml_movie_t movie
Definition vlc_media_library.h:227
int64_t i_duration
Definition vlc_media_library.h:213
char * psz_title
Definition vlc_media_library.h:217
int64_t i_album_id
Definition vlc_media_library.h:231
vlc_ml_file_list_t * p_files
Definition vlc_media_library.h:208
time_t i_last_played_date
Definition vlc_media_library.h:216
int i_track_nb
Definition vlc_media_library.h:234
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:220
vlc_ml_media_subtype_t i_subtype
Definition vlc_media_library.h:206
vlc_ml_show_episode_t show_episode
Definition vlc_media_library.h:226
int64_t i_id
Definition vlc_media_library.h:203
vlc_ml_media_type_t i_type
Definition vlc_media_library.h:205
int i_disc_nb
Definition vlc_media_library.h:235
int64_t i_artist_id
Definition vlc_media_library.h:230
uint32_t i_playcount
Definition vlc_media_library.h:214
bool b_is_favorite
Definition vlc_media_library.h:222
struct vlc_ml_media_t::@241::@243 album_track
char * psz_filename
Definition vlc_media_library.h:218
vlc_ml_media_track_list_t * p_tracks
Definition vlc_media_library.h:209
double f_progress
Definition vlc_media_library.h:215
int64_t i_genre_id
Definition vlc_media_library.h:232
Definition vlc_media_library.h:196
size_t i_nb_items
Definition vlc_media_library.h:197
vlc_ml_media_track_t p_items[]
Definition vlc_media_library.h:198
Definition vlc_media_library.h:168
char * psz_language
Definition vlc_media_library.h:170
uint32_t i_nbChannels
Definition vlc_media_library.h:179
uint32_t i_height
Definition vlc_media_library.h:185
uint32_t i_sampleRate
Definition vlc_media_library.h:180
uint32_t i_sarNum
Definition vlc_media_library.h:187
uint32_t i_fpsDen
Definition vlc_media_library.h:190
struct vlc_ml_media_track_t::@237::@239 a
struct vlc_ml_media_track_t::@237::@240 v
char * psz_codec
Definition vlc_media_library.h:169
vlc_ml_track_type_t i_type
Definition vlc_media_library.h:172
uint32_t i_fpsNum
Definition vlc_media_library.h:189
uint32_t i_sarDen
Definition vlc_media_library.h:188
uint32_t i_bitrate
Definition vlc_media_library.h:173
uint32_t i_width
Definition vlc_media_library.h:186
char * psz_description
Definition vlc_media_library.h:171
Definition vlc_media_library.h:113
char * psz_imdb_id
Definition vlc_media_library.h:115
char * psz_summary
Definition vlc_media_library.h:114
Definition vlc_media_library.h:644
char * deinterlace
Definition vlc_media_library.h:653
char * current_audio_track
Definition vlc_media_library.h:649
char * current_video_track
Definition vlc_media_library.h:648
float zoom
Definition vlc_media_library.h:646
int current_title
Definition vlc_media_library.h:647
char * aspect_ratio
Definition vlc_media_library.h:651
char * crop
Definition vlc_media_library.h:652
float rate
Definition vlc_media_library.h:645
char * current_subtitle_track
Definition vlc_media_library.h:650
char * video_filter
Definition vlc_media_library.h:654
Definition vlc_media_library.h:365
size_t i_nb_items
Definition vlc_media_library.h:366
vlc_ml_playlist_t p_items[]
Definition vlc_media_library.h:367
Definition vlc_media_library.h:265
unsigned int i_nb_media
Definition vlc_media_library.h:274
int64_t i_duration
Definition vlc_media_library.h:286
char * psz_artwork_mrl
Definition vlc_media_library.h:272
char * psz_mrl
Definition vlc_media_library.h:270
uint32_t i_nb_unknown
Definition vlc_media_library.h:277
uint32_t i_nb_present_audio
Definition vlc_media_library.h:281
unsigned int i_nb_present_media
Definition vlc_media_library.h:279
char * psz_name
Definition vlc_media_library.h:268
uint32_t i_nb_present_video
Definition vlc_media_library.h:280
uint32_t i_nb_duration_unknown
Definition vlc_media_library.h:287
bool b_is_read_only
Definition vlc_media_library.h:289
uint32_t i_nb_audio
Definition vlc_media_library.h:276
uint32_t i_nb_present_unknown
Definition vlc_media_library.h:282
int64_t i_id
Definition vlc_media_library.h:266
uint32_t i_creation_date
Definition vlc_media_library.h:284
uint32_t i_nb_video
Definition vlc_media_library.h:275
Definition vlc_media_library.h:432
const char * psz_pattern
Definition vlc_media_library.h:433
bool b_desc
Definition vlc_media_library.h:437
vlc_ml_sorting_criteria_t i_sort
Definition vlc_media_library.h:436
uint32_t i_offset
Definition vlc_media_library.h:435
uint32_t i_nbResults
Definition vlc_media_library.h:434
Definition vlc_media_library.h:119
char * psz_summary
Definition vlc_media_library.h:120
uint32_t i_season_number
Definition vlc_media_library.h:123
uint32_t i_episode_nb
Definition vlc_media_library.h:122
char * psz_tvdb_id
Definition vlc_media_library.h:121
Definition vlc_media_library.h:347
vlc_ml_show_t p_items[]
Definition vlc_media_library.h:349
size_t i_nb_items
Definition vlc_media_library.h:348
Definition vlc_media_library.h:127
unsigned int i_release_year
Definition vlc_media_library.h:133
char * psz_tvdb_id
Definition vlc_media_library.h:132
uint32_t i_nb_episodes
Definition vlc_media_library.h:134
char * psz_artwork_mrl
Definition vlc_media_library.h:131
uint32_t i_nb_seasons
Definition vlc_media_library.h:135
char * psz_name
Definition vlc_media_library.h:129
int64_t i_id
Definition vlc_media_library.h:128
char * psz_summary
Definition vlc_media_library.h:130
Definition vlc_media_library.h:103
char * psz_mrl
Definition vlc_media_library.h:104
vlc_ml_thumbnail_status_t i_status
True if a thumbnail is available, or if thumbnail generation was attempted but failed.
Definition vlc_media_library.h:109
VLC object common members.
Definition vlc_objects.h:53
const char * psz_name
Definition text_style.c:33
This file is a collection of common definitions and types.
static int vlc_ml_media_set_type(vlc_medialibrary_t *p_ml, int64_t i_media_id, vlc_ml_media_type_t i_type)
Definition vlc_media_library.h:1100
vlc_medialibrary_t * libvlc_MlCreate(libvlc_int_t *p_libvlc)
Definition medialibrary.c:102
void vlc_ml_media_list_release(vlc_ml_media_list_t *p_list)
Definition medialibrary.c:322
void vlc_ml_show_list_release(vlc_ml_show_list_t *p_list)
Definition medialibrary.c:340
static vlc_ml_media_list_t * vlc_ml_list_show_episodes(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_show_id)
Definition vlc_media_library.h:1636
static vlc_ml_artist_list_t * vlc_ml_list_artist_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1359
static int vlc_ml_playlist_rename(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, const char *name)
Definition vlc_media_library.h:1217
static size_t vlc_ml_count_stream_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1720
void * vlc_ml_get(vlc_medialibrary_t *p_ml, int i_query,...)
Definition medialibrary.c:419
static int vlc_ml_playlist_move(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_from, uint32_t i_to)
Definition vlc_media_library.h:1200
static int vlc_ml_media_set_all_playback_states(vlc_medialibrary_t *p_ml, int64_t i_media_id, const vlc_ml_playback_states_all *prefs)
Definition vlc_media_library.h:1064
static size_t vlc_ml_count_banned_entry_points(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1834
static size_t vlc_ml_count_playlist_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_playlist_id)
Definition vlc_media_library.h:1797
static vlc_ml_media_t * vlc_ml_get_media(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1224
static vlc_ml_media_t * vlc_ml_new_external_media(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1020
vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:73
@ VLC_ML_THUMBNAIL_SIZE_COUNT
Definition vlc_media_library.h:77
@ VLC_ML_THUMBNAIL_BANNER
Definition vlc_media_library.h:75
@ VLC_ML_THUMBNAIL_SMALL
Definition vlc_media_library.h:74
static vlc_ml_media_list_t * vlc_ml_list_artist_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_artist_id)
Definition vlc_media_library.h:1449
void vlc_ml_album_list_release(vlc_ml_album_list_t *p_list)
Definition medialibrary.c:331
void vlc_ml_playlist_release(vlc_ml_playlist_t *p_playlist)
Definition medialibrary.c:261
static size_t vlc_ml_count_shows(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1573
vlc_ml_get_queries
Definition vlc_media_library.h:441
@ VLC_ML_GET_SHOW
arg1: Show ID; ret: vlc_ml_show_t*
Definition vlc_media_library.h:449
@ VLC_ML_GET_MEDIA_BY_MRL
arg1: Media MRL; ret: vlc_ml_media_t*
Definition vlc_media_library.h:443
@ VLC_ML_GET_GENRE
arg1: Genre ID; ret: vlc_ml_genre_t*
Definition vlc_media_library.h:448
@ VLC_ML_GET_INPUT_ITEM_BY_MRL
arg1: Media MRL; ret: input_item_t*
Definition vlc_media_library.h:445
@ VLC_ML_GET_GROUP
arg1: Group ID; ret: vlc_ml_group_t*
Definition vlc_media_library.h:451
@ VLC_ML_GET_PLAYLIST
arg1: Playlist ID; ret: vlc_ml_playlist_t*
Definition vlc_media_library.h:450
@ VLC_ML_GET_FOLDER
arg1: folder ID; ret: vlc_ml_folder_t*
Definition vlc_media_library.h:452
@ VLC_ML_GET_MEDIA
arg1: Media ID; ret: vlc_ml_media_t*
Definition vlc_media_library.h:442
@ VLC_ML_GET_ALBUM
arg1: Album ID; ret: vlc_ml_album_t*
Definition vlc_media_library.h:446
@ VLC_ML_GET_INPUT_ITEM
arg1: Media ID; ret: input_item_t*
Definition vlc_media_library.h:444
@ VLC_ML_GET_ARTIST
arg1: Artist ID; ret: vlc_ml_artist_t*
Definition vlc_media_library.h:447
static size_t vlc_ml_count_genre_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1609
static vlc_ml_playlist_t * vlc_ml_playlist_create(vlc_medialibrary_t *p_ml, const char *name)
Definition vlc_media_library.h:1162
static int vlc_ml_remove_stream(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1036
static size_t vlc_ml_count_folder_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_folder_id)
Definition vlc_media_library.h:1917
static size_t vlc_ml_count_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1681
static size_t vlc_ml_count_show_episodes(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_show_id)
Definition vlc_media_library.h:1645
vlc_ml_control
Definition vlc_media_library.h:557
@ VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2: const vlc_ml_playback_states_all*
Definition vlc_media_library.h:589
@ VLC_ML_RESUME_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:573
@ VLC_ML_MEDIA_UPDATE_BOOKMARK
arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char*
Definition vlc_media_library.h:600
@ VLC_ML_MEDIA_REMOVE_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:598
@ VLC_ML_PLAYLIST_INSERT
arg1: playlist id; arg2: media id; arg3: position; can fail
Definition vlc_media_library.h:606
@ VLC_ML_MEDIA_ADD_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:597
@ VLC_ML_NEW_EXTERNAL_MEDIA
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:579
@ VLC_ML_RELOAD_FOLDER
Reload a specific folder, or all.
Definition vlc_media_library.h:569
@ VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*;
Definition vlc_media_library.h:587
@ VLC_ML_ADD_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:559
@ VLC_ML_MEDIA_SET_TYPE
arg1: media id; arg2: vlc_ml_media_type_t
Definition vlc_media_library.h:594
@ VLC_ML_PLAYLIST_APPEND
arg1: playlist id; arg2: media id; can fail
Definition vlc_media_library.h:605
@ VLC_ML_MEDIA_GENERATE_THUMBNAIL
arg1: media id; arg2: vlc_ml_thumbnail_size_t; arg3: width; arg4: height; arg5: position
Definition vlc_media_library.h:592
@ VLC_ML_REMOVE_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:560
@ VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2(out): vlc_ml_playback_states_all*
Definition vlc_media_library.h:588
@ VLC_ML_BAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:561
@ VLC_ML_NEW_STREAM
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:580
@ VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: char**;
Definition vlc_media_library.h:586
@ VLC_ML_MEDIA_SET_FAVORITE
arg1: media id; arg2: bool
Definition vlc_media_library.h:596
@ VLC_ML_PLAYLIST_MOVE
arg1: playlist id; arg2: from; arg3: to; can fail
Definition vlc_media_library.h:607
@ VLC_ML_PLAYLIST_CREATE
arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail
Definition vlc_media_library.h:603
@ VLC_ML_UNBAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:562
@ VLC_ML_PAUSE_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:572
@ VLC_ML_PLAYLIST_DELETE
arg1: playlist id; can fail
Definition vlc_media_library.h:604
@ VLC_ML_MEDIA_SET_GENRE_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:591
@ VLC_ML_CLEAR_HISTORY
no args; can't fail
Definition vlc_media_library.h:576
@ VLC_ML_MEDIA_SET_PLAYED
arg1: media id; arg2: bool
Definition vlc_media_library.h:595
@ VLC_ML_MEDIA_SET_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:590
@ VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS
arg1: media id
Definition vlc_media_library.h:599
@ VLC_ML_MEDIA_ADD_EXTERNAL_MRL
arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t)
Definition vlc_media_library.h:593
@ VLC_ML_REMOVE_STREAM
Definition vlc_media_library.h:582
@ VLC_ML_PLAYLIST_REMOVE
arg1: playlist id; arg2: position; can fail
Definition vlc_media_library.h:608
@ VLC_ML_MEDIA_UPDATE_PROGRESS
arg1: media id; arg2: playback position; can fail
Definition vlc_media_library.h:585
@ VLC_ML_IS_INDEXED
arg1: mrl (const char*) arg2 (out): bool*; res: can fail
Definition vlc_media_library.h:563
@ VLC_ML_PLAYLIST_RENAME
arg1: playlist id; arg2: const char*; can fail
Definition vlc_media_library.h:609
vlc_ml_event_callback_t * vlc_ml_event_register_callback(vlc_medialibrary_t *p_ml, vlc_ml_callback_t cb, void *p_data)
Registers a medialibrary callback.
Definition medialibrary.c:67
void vlc_ml_artist_list_release(vlc_ml_artist_list_t *p_list)
Definition medialibrary.c:312
static int vlc_ml_playlist_remove(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_position)
Definition vlc_media_library.h:1209
void vlc_ml_label_list_release(vlc_ml_label_list_t *p_list)
Definition medialibrary.c:294
static int vlc_ml_clear_history(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1015
vlc_ml_track_type_t
Definition vlc_media_library.h:66
@ VLC_ML_TRACK_TYPE_VIDEO
Definition vlc_media_library.h:68
@ VLC_ML_TRACK_TYPE_AUDIO
Definition vlc_media_library.h:69
@ VLC_ML_TRACK_TYPE_UNKNOWN
Definition vlc_media_library.h:67
vlc_ml_media_type_t
Definition vlc_media_library.h:41
@ VLC_ML_MEDIA_TYPE_VIDEO
Definition vlc_media_library.h:43
@ VLC_ML_MEDIA_TYPE_AUDIO
Definition vlc_media_library.h:44
@ VLC_ML_MEDIA_TYPE_UNKNOWN
Definition vlc_media_library.h:42
static input_item_t * vlc_ml_get_input_item(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1235
static 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)
Definition vlc_media_library.h:1779
static int vlc_ml_reload_folder(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1000
void vlc_ml_folder_release(vlc_ml_folder_t *p_folder)
Definition medialibrary.c:284
static int vlc_ml_media_get_all_playback_pref(vlc_medialibrary_t *p_ml, int64_t i_media_id, vlc_ml_playback_states_all *prefs)
Definition vlc_media_library.h:1057
vlc_ml_thumbnail_status_t
Definition vlc_media_library.h:81
@ VLC_ML_THUMBNAIL_STATUS_CRASH
Definition vlc_media_library.h:86
@ VLC_ML_THUMBNAIL_STATUS_MISSING
Definition vlc_media_library.h:82
@ VLC_ML_THUMBNAIL_STATUS_FAILURE
Definition vlc_media_library.h:84
@ VLC_ML_THUMBNAIL_STATUS_PERSISTENT_FAILURE
Definition vlc_media_library.h:85
@ VLC_ML_THUMBNAIL_STATUS_AVAILABLE
Definition vlc_media_library.h:83
static vlc_ml_album_t * vlc_ml_get_album(vlc_medialibrary_t *p_ml, int64_t i_album_id)
Definition vlc_media_library.h:1246
static int vlc_ml_playlist_insert(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, int64_t i_media_id, uint32_t i_position)
Definition vlc_media_library.h:1191
static vlc_ml_media_list_t * vlc_ml_list_media_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1281
static vlc_ml_album_list_t * vlc_ml_list_albums_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1377
static size_t vlc_ml_count_media_labels(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_media_id)
Definition vlc_media_library.h:1663
static size_t vlc_ml_count_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1530
vlc_ml_media_subtype_t
Definition vlc_media_library.h:48
@ VLC_ML_MEDIA_SUBTYPE_UNKNOWN
Definition vlc_media_library.h:49
@ VLC_ML_MEDIA_SUBTYPE_ALBUMTRACK
Definition vlc_media_library.h:52
@ VLC_ML_MEDIA_SUBTYPE_SHOW_EPISODE
Definition vlc_media_library.h:50
@ VLC_ML_MEDIA_SUBTYPE_MOVIE
Definition vlc_media_library.h:51
static vlc_ml_artist_list_t * vlc_ml_list_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, bool b_include_all)
vlc_ml_list_artists
Definition vlc_media_library.h:1546
void(* vlc_ml_callback_t)(void *p_data, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:858
static size_t vlc_ml_count_artist_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_artist_id)
Definition vlc_media_library.h:1458
static size_t vlc_ml_count_genre_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1627
static int vlc_ml_remove_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:979
static vlc_ml_media_list_t * vlc_ml_list_folder_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_folder_id)
Definition vlc_media_library.h:1903
static 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)
Definition vlc_media_library.h:1770
#define vlc_ml_instance_get(x)
Definition vlc_media_library.h:906
vlc_ml_event_type
Definition vlc_media_library.h:658
@ VLC_ML_EVENT_ARTIST_UPDATED
Definition vlc_media_library.h:672
@ VLC_ML_EVENT_BOOKMARKS_ADDED
Definition vlc_media_library.h:686
@ VLC_ML_EVENT_RESCAN_STARTED
Sent when an application requested rescan starts being processed.
Definition vlc_media_library.h:782
@ VLC_ML_EVENT_ALBUM_ADDED
Definition vlc_media_library.h:674
@ VLC_ML_EVENT_DISCOVERY_PROGRESS
Sent when a discovery or reload operation starts analyzing a new folder.
Definition vlc_media_library.h:708
@ VLC_ML_EVENT_BACKGROUND_IDLE_CHANGED
Sent when a discoverer or parser threads changes its idle state.
Definition vlc_media_library.h:756
@ VLC_ML_EVENT_BOOKMARKS_DELETED
Definition vlc_media_library.h:688
@ VLC_ML_EVENT_FOLDER_DELETED
Definition vlc_media_library.h:691
@ VLC_ML_EVENT_MEDIA_UPDATED
Definition vlc_media_library.h:669
@ VLC_ML_EVENT_ENTRY_POINT_ADDED
Sent when a new entry point gets added to the database.
Definition vlc_media_library.h:728
@ VLC_ML_EVENT_PLAYLIST_ADDED
Definition vlc_media_library.h:680
@ VLC_ML_EVENT_DISCOVERY_STARTED
A discovery started.
Definition vlc_media_library.h:702
@ VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED
Sent after a media thumbnail was generated, or if it's generation failed.
Definition vlc_media_library.h:771
@ VLC_ML_EVENT_GENRE_UPDATED
Definition vlc_media_library.h:684
@ VLC_ML_EVENT_ENTRY_POINT_REMOVED
Sent when an entry point removal request has been processed.
Definition vlc_media_library.h:735
@ VLC_ML_EVENT_HISTORY_CHANGED
Sent after the history gets changed.
Definition vlc_media_library.h:778
@ VLC_ML_EVENT_ENTRY_POINT_BANNED
Sent when an entry point ban request has been processed.
Definition vlc_media_library.h:742
@ VLC_ML_EVENT_GROUP_DELETED
Definition vlc_media_library.h:679
@ VLC_ML_EVENT_GROUP_ADDED
Definition vlc_media_library.h:677
@ VLC_ML_EVENT_GENRE_DELETED
Definition vlc_media_library.h:685
@ VLC_ML_EVENT_GENRE_ADDED
Definition vlc_media_library.h:683
@ VLC_ML_EVENT_ENTRY_POINT_UNBANNED
Sent when an entry point unban request has been processed.
Definition vlc_media_library.h:749
@ VLC_ML_EVENT_ALBUM_DELETED
Definition vlc_media_library.h:676
@ VLC_ML_EVENT_MEDIA_ADDED
Entity modification callbacks.
Definition vlc_media_library.h:668
@ VLC_ML_EVENT_DISCOVERY_FAILED
This event is sent when a discovery failed.
Definition vlc_media_library.h:718
@ VLC_ML_EVENT_ARTIST_DELETED
Definition vlc_media_library.h:673
@ VLC_ML_EVENT_BOOKMARKS_UPDATED
Definition vlc_media_library.h:687
@ VLC_ML_EVENT_PLAYLIST_DELETED
Definition vlc_media_library.h:682
@ VLC_ML_EVENT_FOLDER_ADDED
Definition vlc_media_library.h:689
@ VLC_ML_EVENT_PARSING_PROGRESS_UPDATED
Sent when the parsing progress percentage gets updated.
Definition vlc_media_library.h:764
@ VLC_ML_EVENT_ALBUM_UPDATED
Definition vlc_media_library.h:675
@ VLC_ML_EVENT_ARTIST_ADDED
Definition vlc_media_library.h:671
@ VLC_ML_EVENT_FOLDER_UPDATED
Definition vlc_media_library.h:690
@ VLC_ML_EVENT_PLAYLIST_UPDATED
Definition vlc_media_library.h:681
@ VLC_ML_EVENT_DISCOVERY_COMPLETED
Sent when all queued discovery operations are done being processed.
Definition vlc_media_library.h:712
@ VLC_ML_EVENT_GROUP_UPDATED
Definition vlc_media_library.h:678
@ VLC_ML_EVENT_MEDIA_DELETED
Definition vlc_media_library.h:670
void libvlc_MlRelease(vlc_medialibrary_t *p_ml)
Definition medialibrary.c:120
static vlc_ml_media_list_t * vlc_ml_list_audio_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1329
static vlc_ml_media_list_t * vlc_ml_list_genre_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1600
static vlc_ml_media_list_t * vlc_ml_list_playlist_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_playlist_id)
Definition vlc_media_library.h:1788
static vlc_ml_query_params_t vlc_ml_query_params_create(void)
Definition vlc_media_library.h:963
static int vlc_ml_media_update_progress(vlc_medialibrary_t *p_ml, int64_t i_media_id, double progress)
Definition vlc_media_library.h:1041
static vlc_ml_artist_t * vlc_ml_get_artist(vlc_medialibrary_t *p_ml, int64_t i_artist_id)
Definition vlc_media_library.h:1251
static vlc_ml_folder_list_t * vlc_ml_list_folders(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1846
static size_t vlc_ml_count_album_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_album_id)
Definition vlc_media_library.h:1404
vlc_ml_history_type_t
Definition vlc_media_library.h:90
@ VLC_ML_HISTORY_TYPE_MEDIA
Definition vlc_media_library.h:91
@ VLC_ML_HISTORY_TYPE_NETWORK
Definition vlc_media_library.h:92
static int vlc_ml_media_set_played(vlc_medialibrary_t *p_ml, int64_t i_media_id, bool b_played)
Definition vlc_media_library.h:1106
static vlc_ml_media_list_t * vlc_ml_list_group_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_group_id)
Definition vlc_media_library.h:1750
static size_t vlc_ml_count_video_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1314
static int vlc_ml_media_add_external_mrl(vlc_medialibrary_t *p_ml, int64_t i_media_id, const char *psz_mrl, int i_type)
Definition vlc_media_library.h:1094
static vlc_ml_label_list_t * vlc_ml_list_media_labels(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_media_id)
Definition vlc_media_library.h:1654
static size_t vlc_ml_count_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, bool includeAll)
Definition vlc_media_library.h:1555
struct vlc_ml_boomkmark_list_t vlc_ml_bookmark_list_t
static int vlc_ml_media_set_playback_state(vlc_medialibrary_t *p_ml, int64_t i_media_id, int i_state, const char *psz_value)
Definition vlc_media_library.h:1052
static int vlc_ml_ban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:984
int vlc_ml_list(vlc_medialibrary_t *p_ml, int i_query, const vlc_ml_query_params_t *p_params,...)
Definition medialibrary.c:438
static size_t vlc_ml_count_history_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition vlc_media_library.h:1700
void vlc_ml_playlist_list_release(vlc_ml_playlist_list_t *p_list)
Definition medialibrary.c:367
static vlc_ml_media_list_t * vlc_ml_list_history_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition vlc_media_library.h:1691
vlc_ml_list_queries
Definition vlc_media_library.h:456
@ VLC_ML_LIST_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:459
@ VLC_ML_COUNT_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:486
@ VLC_ML_LIST_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:495
@ VLC_ML_LIST_SHOW_EPISODES
arg1: show id; arg2(out): vlc_ml_media_list_t**
Definition vlc_media_library.h:509
@ VLC_ML_LIST_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:463
@ VLC_ML_LIST_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:481
@ VLC_ML_LIST_GROUPS
arg1 (out): vlc_ml_group_list_t**
Definition vlc_media_library.h:471
@ VLC_ML_LIST_FOLDER_MEDIA
arg1: folder id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:528
@ VLC_ML_COUNT_HISTORY_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:478
@ VLC_ML_COUNT_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:523
@ VLC_ML_LIST_GENRE_ARTISTS
arg1: genre id; arg2 (out): vlc_ml_artist_list_t**
Definition vlc_media_library.h:501
@ VLC_ML_LIST_STREAM_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:479
@ VLC_ML_COUNT_GENRES
arg1 (out): size_t*
Definition vlc_media_library.h:466
@ VLC_ML_COUNT_SHOWS
arg1 (out): size_t*
Definition vlc_media_library.h:470
@ VLC_ML_LIST_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t**
Definition vlc_media_library.h:540
@ VLC_ML_LIST_MEDIA_BOOKMARKS
arg1: media id; arg2 (out): vlc_ml_bookmark_list_t**
Definition vlc_media_library.h:515
@ VLC_ML_LIST_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition vlc_media_library.h:473
@ VLC_ML_LIST_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t**
Definition vlc_media_library.h:538
@ VLC_ML_LIST_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:461
@ VLC_ML_COUNT_SHOW_EPISODES
arg1: show id; arg2(out): size_t*
Definition vlc_media_library.h:510
@ VLC_ML_LIST_SUBFOLDERS
arg1: parent id; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:526
@ VLC_ML_LIST_ARTISTS
arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:467
@ VLC_ML_COUNT_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:539
@ VLC_ML_COUNT_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:496
@ VLC_ML_COUNT_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:533
@ VLC_ML_LIST_HISTORY_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:477
@ VLC_ML_COUNT_GENRE_TRACKS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:504
@ VLC_ML_COUNT_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:498
@ VLC_ML_COUNT_STREAM_HISTORY
arg1 (out): size_t*
Definition vlc_media_library.h:480
@ VLC_ML_LIST_GENRE_TRACKS
arg1: genre id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:503
@ VLC_ML_COUNT_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:492
@ VLC_ML_LIST_MEDIA_LABELS
arg1: media id; arg2 (out): vlc_ml_label_list_t**
Definition vlc_media_library.h:513
@ VLC_ML_COUNT_AUDIOS
arg1 (out): size_t*
Definition vlc_media_library.h:462
@ VLC_ML_COUNT_SUBFOLDERS
arg1: parent id; arg2 (out): size_t*
Definition vlc_media_library.h:527
@ VLC_ML_LIST_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:475
@ VLC_ML_COUNT_ARTISTS
arg1 bool: includeAll; arg2 (out): size_t*
Definition vlc_media_library.h:468
@ VLC_ML_LIST_GENRE_ALBUMS
arg1: genre id; arg2 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:505
@ VLC_ML_COUNT_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:541
@ VLC_ML_COUNT_GENRE_ALBUMS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:506
@ VLC_ML_COUNT_MEDIA_LABELS
arg1: media id; arg2 (out): size_t*
Definition vlc_media_library.h:514
@ VLC_ML_LIST_GROUP_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:518
@ VLC_ML_COUNT_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:535
@ VLC_ML_LIST_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:534
@ VLC_ML_LIST_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:522
@ VLC_ML_LIST_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:483
@ VLC_ML_COUNT_GROUP_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:519
@ VLC_ML_COUNT_VIDEOS
arg1 (out): size_t*
Definition vlc_media_library.h:460
@ VLC_ML_LIST_SHOWS
arg1 (out): vlc_ml_show_list_t**
Definition vlc_media_library.h:469
@ VLC_ML_COUNT_FOLDER_MEDIA
arg1: folder id; arg2 (out): size_t*
Definition vlc_media_library.h:529
@ VLC_ML_COUNT_FOLDERS
arg1 (out): size_t*
Definition vlc_media_library.h:484
@ VLC_ML_LIST_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:536
@ VLC_ML_COUNT_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): size_t*
Definition vlc_media_library.h:482
@ VLC_ML_LIST_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:465
@ VLC_ML_LIST_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:489
@ VLC_ML_COUNT_ALBUMS
arg1 (out): size_t*
Definition vlc_media_library.h:464
@ VLC_ML_LIST_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:485
@ VLC_ML_COUNT_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:537
@ VLC_ML_LIST_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:497
@ VLC_ML_COUNT_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:490
@ VLC_ML_COUNT_HISTORY
arg1 (out): size_t*
Definition vlc_media_library.h:476
@ VLC_ML_COUNT_PLAYLISTS
arg1 (out): size_t*
Definition vlc_media_library.h:474
@ VLC_ML_COUNT_GROUPS
arg1 (out): size_t*
Definition vlc_media_library.h:472
@ VLC_ML_LIST_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:491
@ VLC_ML_COUNT_GENRE_ARTISTS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:502
@ VLC_ML_LIST_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t**
Definition vlc_media_library.h:532
static size_t vlc_ml_count_entry_points(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1815
static int vlc_ml_media_update_bookmark(vlc_medialibrary_t *p_ml, int64_t i_media_id, int64_t i_time, const char *psz_name, const char *psz_desc)
Definition vlc_media_library.h:1145
#define vlc_ml_release(OBJ)
Definition vlc_media_library.h:1936
static size_t vlc_ml_count_audio_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1344
static vlc_ml_genre_t * vlc_ml_get_genre(vlc_medialibrary_t *p_ml, int64_t i_genre_id)
Definition vlc_media_library.h:1256
vlc_ml_playback_state
User playback settings.
Definition vlc_media_library.h:623
@ VLC_ML_PLAYBACK_STATE_PROGRAM
Definition vlc_media_library.h:628
@ VLC_ML_PLAYBACK_STATE_TITLE
Definition vlc_media_library.h:626
@ VLC_ML_PLAYBACK_STATE_DEINTERLACE
Definition vlc_media_library.h:633
@ VLC_ML_PLAYBACK_STATE_SPEED
Definition vlc_media_library.h:625
@ VLC_ML_PLAYBACK_STATE_VIDEO_FILTER
Definition vlc_media_library.h:634
@ VLC_ML_PLAYBACK_STATE_AUDIO_DELAY
Definition vlc_media_library.h:637
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_DELAY
Definition vlc_media_library.h:639
@ VLC_ML_PLAYBACK_STATE_RATING
Definition vlc_media_library.h:624
@ VLC_ML_PLAYBACK_STATE_APP_SPECIFIC
Definition vlc_media_library.h:640
@ VLC_ML_PLAYBACK_STATE_ASPECT_RATIO
Definition vlc_media_library.h:630
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_TRACK
Definition vlc_media_library.h:638
@ VLC_ML_PLAYBACK_STATE_GAIN
Definition vlc_media_library.h:636
@ VLC_ML_PLAYBACK_STATE_AUDIO_TRACK
Definition vlc_media_library.h:635
@ VLC_ML_PLAYBACK_STATE_CROP
Definition vlc_media_library.h:632
@ VLC_ML_PLAYBACK_STATE_CHAPTER
Definition vlc_media_library.h:627
@ VLC_ML_PLAYBACK_STATE_VIDEO_TRACK
Definition vlc_media_library.h:629
@ VLC_ML_PLAYBACK_STATE_ZOOM
Definition vlc_media_library.h:631
static vlc_ml_folder_list_t * vlc_ml_list_banned_entry_points(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1825
static int vlc_ml_resume_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1010
static vlc_ml_folder_list_t * vlc_ml_list_entry_points(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1806
void vlc_ml_album_release(vlc_ml_album_t *p_album)
Definition medialibrary.c:219
static vlc_ml_show_t * vlc_ml_get_show(vlc_medialibrary_t *p_ml, int64_t i_show_id)
Definition vlc_media_library.h:1261
void vlc_ml_folder_list_release(vlc_ml_folder_list_t *p_list)
Definition medialibrary.c:376
static vlc_ml_media_list_t * vlc_ml_list_stream_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1711
static vlc_ml_bookmark_list_t * vlc_ml_list_media_bookmarks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_media_id)
Definition vlc_media_library.h:1119
void vlc_ml_artist_release(vlc_ml_artist_t *p_artist)
Definition medialibrary.c:203
static vlc_ml_folder_t * vlc_ml_get_folder(vlc_medialibrary_t *p_ml, int64_t i_folder_id)
Definition vlc_media_library.h:1271
static int vlc_ml_media_set_favorite(vlc_medialibrary_t *p_ml, int64_t i_media_id, bool b_favorite)
Definition vlc_media_library.h:1112
static vlc_ml_media_list_t * vlc_ml_list_album_tracks(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_album_id)
Definition vlc_media_library.h:1395
static vlc_ml_genre_list_t * vlc_ml_list_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1521
static vlc_ml_folder_list_t * vlc_ml_list_folders_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition vlc_media_library.h:1873
void vlc_ml_bookmark_list_release(vlc_ml_bookmark_list_t *p_list)
Definition medialibrary.c:410
static vlc_ml_group_t * vlc_ml_get_group(vlc_medialibrary_t *p_ml, int64_t i_group_id)
Definition vlc_media_library.h:1266
static int vlc_ml_media_remove_bookmark(vlc_medialibrary_t *p_ml, int64_t i_media_id, int64_t i_time)
Definition vlc_media_library.h:1138
void vlc_ml_genre_release(vlc_ml_genre_t *p_genre)
Definition medialibrary.c:227
static vlc_ml_artist_list_t * vlc_ml_list_genre_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1582
void vlc_ml_genre_list_release(vlc_ml_genre_list_t *p_list)
Definition medialibrary.c:349
static size_t vlc_ml_count_group_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_group_id)
Definition vlc_media_library.h:1759
static int vlc_ml_media_set_thumbnail(vlc_medialibrary_t *p_ml, int64_t i_media_id, const char *psz_mrl, vlc_ml_thumbnail_size_t sizeType)
Definition vlc_media_library.h:1071
static vlc_ml_media_t * vlc_ml_new_stream(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1028
void vlc_ml_event_unregister_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback)
Unregisters a medialibrary callback.
Definition medialibrary.c:81
static vlc_ml_media_list_t * vlc_ml_list_video_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1299
static int vlc_ml_media_remove_all_bookmarks(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1155
static size_t vlc_ml_count_folders_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition vlc_media_library.h:1887
static int vlc_ml_is_indexed(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool *p_res)
Definition vlc_media_library.h:994
static vlc_ml_album_list_t * vlc_ml_list_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1503
static int vlc_ml_playlist_append(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, int64_t i_media_id)
Definition vlc_media_library.h:1183
static size_t vlc_ml_count_album_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_album_id)
Definition vlc_media_library.h:1422
static vlc_ml_media_list_t * vlc_ml_list_video_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1467
vlc_ml_playlist_type_t
Definition vlc_media_library.h:96
@ VLC_ML_PLAYLIST_TYPE_ALL
Definition vlc_media_library.h:97
@ VLC_ML_PLAYLIST_TYPE_AUDIO
Definition vlc_media_library.h:98
@ VLC_ML_PLAYLIST_TYPE_VIDEO
Definition vlc_media_library.h:99
static vlc_ml_media_list_t * vlc_ml_list_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1672
static vlc_ml_playlist_t * vlc_ml_get_playlist(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition vlc_media_library.h:1276
static size_t vlc_ml_count_genre_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1591
static vlc_ml_media_list_t * vlc_ml_list_album_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_album_id)
Definition vlc_media_library.h:1413
void vlc_ml_file_list_release(vlc_ml_file_list_t *p_list)
Definition medialibrary.c:303
static vlc_ml_group_list_t * vlc_ml_list_groups(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1732
void vlc_ml_bookmark_release(vlc_ml_bookmark_t *p_bookmark)
Definition medialibrary.c:402
void vlc_ml_playback_states_all_release(vlc_ml_playback_states_all *prefs)
Definition medialibrary.c:385
static input_item_t * vlc_ml_get_input_item_by_mrl(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1240
static int vlc_ml_media_get_playback_state(vlc_medialibrary_t *p_ml, int64_t i_media_id, int i_state, char **ppsz_result)
Definition vlc_media_library.h:1047
static int vlc_ml_pause_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1005
static int vlc_ml_media_generate_thumbnail(vlc_medialibrary_t *p_ml, int64_t i_media_id, vlc_ml_thumbnail_size_t size_type, uint32_t i_desired_width, uint32_t i_desired_height, double position)
Definition vlc_media_library.h:1084
static vlc_ml_show_list_t * vlc_ml_list_shows(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1564
static int vlc_ml_playlist_delete(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition vlc_media_library.h:1175
static int vlc_ml_unban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:989
vlc_ml_file_type_t
Definition vlc_media_library.h:56
@ VLC_ML_FILE_TYPE_MAIN
Definition vlc_media_library.h:58
@ VLC_ML_FILE_TYPE_SUBTITLE
Definition vlc_media_library.h:61
@ VLC_ML_FILE_TYPE_UNKNOWN
Definition vlc_media_library.h:57
@ VLC_ML_FILE_TYPE_SOUNDTRACK
Definition vlc_media_library.h:60
@ VLC_ML_FILE_TYPE_PART
Definition vlc_media_library.h:59
@ VLC_ML_FILE_TYPE_PLAYLIST
Definition vlc_media_library.h:62
static int vlc_ml_media_add_bookmark(vlc_medialibrary_t *p_ml, int64_t i_media_id, int64_t i_time)
Definition vlc_media_library.h:1131
static size_t vlc_ml_count_albums_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1386
void vlc_ml_show_release(vlc_ml_show_t *p_show)
Definition medialibrary.c:149
static size_t vlc_ml_count_artist_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_artist_id)
Definition vlc_media_library.h:1440
static size_t vlc_ml_count_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1512
vlc_ml_sorting_criteria_t
Definition vlc_media_library.h:410
@ VLC_ML_SORTING_LASTMODIFICATIONDATE
Definition vlc_media_library.h:420
@ VLC_ML_SORTING_INSERTIONDATE
Definition vlc_media_library.h:419
@ VLC_ML_SORTING_PLAYCOUNT
Definition vlc_media_library.h:424
@ VLC_ML_SORTING_ARTIST
Definition vlc_media_library.h:423
@ VLC_ML_SORTING_ALPHA
Definition vlc_media_library.h:417
@ VLC_ML_SORTING_TRACKNUMBER
Definition vlc_media_library.h:427
@ VLC_ML_SORTING_FILENAME
Definition vlc_media_library.h:426
@ VLC_ML_SORTING_ALBUM
Definition vlc_media_library.h:425
@ VLC_ML_SORTING_DEFAULT
Definition vlc_media_library.h:416
@ VLC_ML_SORTING_DURATION
Definition vlc_media_library.h:418
@ VLC_ML_SORTING_RELEASEDATE
Definition vlc_media_library.h:421
@ VLC_ML_SORTING_FILESIZE
Definition vlc_media_library.h:422
void vlc_ml_media_release(vlc_ml_media_t *p_media)
Definition medialibrary.c:270
static size_t vlc_ml_count_audio_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1494
static int vlc_ml_add_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:974
static size_t vlc_ml_count_groups(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1741
static size_t vlc_ml_count_artists_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1368
void vlc_ml_group_release(vlc_ml_group_t *p_group)
Definition medialibrary.c:244
static vlc_ml_album_list_t * vlc_ml_list_genre_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_genre_id)
Definition vlc_media_library.h:1618
static int vlc_ml_media_set_genre_thumbnail(vlc_medialibrary_t *p_ml, int64_t i_media_id, const char *psz_mrl, vlc_ml_thumbnail_size_t sizeType)
Definition vlc_media_library.h:1077
static size_t vlc_ml_count_media_of(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int i_parent_type, int64_t i_parent_id)
Definition vlc_media_library.h:1290
static vlc_ml_media_list_t * vlc_ml_list_audio_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1485
void vlc_ml_event_unregister_from_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback)
Unregisters a medialibrary callback from the said callback.
Definition medialibrary.c:90
static vlc_ml_album_list_t * vlc_ml_list_artist_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, int64_t i_artist_id)
Definition vlc_media_library.h:1431
static size_t vlc_ml_count_video_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1476
vlc_ml_parent_type
Definition vlc_media_library.h:545
@ VLC_ML_PARENT_ARTIST
Definition vlc_media_library.h:548
@ VLC_ML_PARENT_ALBUM
Definition vlc_media_library.h:547
@ VLC_ML_PARENT_GROUP
Definition vlc_media_library.h:551
@ VLC_ML_PARENT_FOLDER
Definition vlc_media_library.h:552
@ VLC_ML_PARENT_UNKNOWN
Definition vlc_media_library.h:546
@ VLC_ML_PARENT_PLAYLIST
Definition vlc_media_library.h:553
@ VLC_ML_PARENT_SHOW
Definition vlc_media_library.h:549
@ VLC_ML_PARENT_GENRE
Definition vlc_media_library.h:550
void vlc_ml_group_list_release(vlc_ml_group_list_t *p_list)
Definition medialibrary.c:358
static size_t vlc_ml_count_folders(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1859
static vlc_ml_media_t * vlc_ml_get_media_by_mrl(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1229
char psz_value[8]
Definition vout_intf.c:100