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
72typedef enum vlc_ml_thumbnail_size_t
89typedef enum vlc_ml_history_type_t
96typedef enum vlc_ml_playlist_type_t
98 VLC_ML_PLAYLIST_TYPE_ALL, /**< Playlist containing any kind of tracks */
99 VLC_ML_PLAYLIST_TYPE_AUDIO, /**< Playlist containing at least one audio track */
100 VLC_ML_PLAYLIST_TYPE_VIDEO, /**< Playlist containing at least one video track */
101 VLC_ML_PLAYLIST_TYPE_AUDIO_ONLY, /**< Playlist containing audio tracks only */
102 VLC_ML_PLAYLIST_TYPE_VIDEO_ONLY, /**< Playlist containing video tracks only */
105typedef struct vlc_ml_thumbnail_t
107 char* psz_mrl;
108 /**
109 * True if a thumbnail is available, or if thumbnail generation was
110 * attempted but failed
111 */
115typedef struct vlc_ml_movie_t
121typedef struct vlc_ml_show_episode_t
129typedef struct vlc_ml_show_t
141typedef struct vlc_ml_label_t
147typedef struct vlc_ml_label_list_t
153typedef struct vlc_ml_file_t
164typedef struct vlc_ml_file_list_t
170typedef struct vlc_ml_media_track_t
172 char* psz_codec;
176 uint32_t i_bitrate;
177 union
178 {
179 struct
180 {
181 // Audio
182 uint32_t i_nbChannels;
183 uint32_t i_sampleRate;
184 } a;
185 struct
186 {
187 // Video
188 uint32_t i_height;
189 uint32_t i_width;
190 uint32_t i_sarNum;
191 uint32_t i_sarDen;
192 uint32_t i_fpsNum;
193 uint32_t i_fpsDen;
194 } v;
195 struct
196 {
197 // Subtitle
198 char* psz_encoding;
199 } s;
200 };
203typedef struct vlc_ml_media_track_list_t
209typedef struct vlc_ml_media_t
249typedef struct vlc_ml_group_t
273typedef struct vlc_ml_playlist_t
275 int64_t i_id;
277 char* psz_name;
279 char* psz_mrl;
281 char* psz_artwork_mrl;
283 unsigned int i_nb_media;
284 uint32_t i_nb_video;
285 uint32_t i_nb_audio;
286 uint32_t i_nb_unknown;
288 unsigned int i_nb_present_media;
293 uint32_t i_creation_date;
295 int64_t i_duration; /* In ms */
298 bool b_is_read_only;
302typedef struct vlc_ml_artist_t
316typedef struct vlc_ml_artist_list_t
322typedef struct vlc_ml_album_t {
338typedef struct vlc_ml_genre_t
347typedef struct vlc_ml_media_list_t
353typedef struct vlc_ml_album_list_t
359typedef struct vlc_ml_show_list_t
365typedef struct vlc_ml_genre_list_t
371typedef struct vlc_ml_group_list_t
377typedef struct vlc_ml_playlist_list_t
383typedef struct vlc_ml_folder_t
385 int64_t i_id; /**< The folder's MRL. Will be NULL if b_present is false */
386 char* psz_name; /**< The folder's name */
387 char* psz_mrl; /**< The folder's MRL. Will be NULL if b_present is false */
388 unsigned int i_nb_media; /**< The media count */
389 unsigned int i_nb_video; /**< The number of video for this folder */
390 unsigned int i_nb_audio; /**< The number of audio for this volder */
391 int64_t i_duration; /**< The sum of all the member durations of the folder in ms. */
392 bool b_is_favorite; /**< The folder's favorite state */
393 bool b_present; /**< The folder's presence state */
394 bool b_banned; /**< Will be true if the user required this folder to be excluded */
397typedef struct vlc_ml_folder_list_t
403typedef struct vlc_ml_bookmark_t
405 int64_t i_media_id; /**< The associated media ID */
406 int64_t i_time; /**< The bookmark time. The unit is arbitrary */
407 char* psz_name; /**< The bookmark name */
408 char* psz_description; /**< The bookmark description */
411typedef struct vlc_ml_boomkmark_list_t
417/* Opaque medialibrary pointer, to be used by any non-medialibrary module */
419/* "Private" medialibrary pointer, to be used by the core & medialibrary modules */
421/* Opaque event callback type */
424typedef enum vlc_ml_sorting_criteria_t
445/**
446 * Generic parameter set for medialibrary queries.
447 *
448 * \warning Should only be default instanciated with ::vlc_ml_query_params_create().
449 */
450typedef struct vlc_ml_query_params_t
463 VLC_ML_GET_MEDIA, /**< arg1: Media ID; ret: vlc_ml_media_t* */
464 VLC_ML_GET_MEDIA_BY_MRL, /**< arg1: Media MRL; ret: vlc_ml_media_t* */
465 VLC_ML_GET_INPUT_ITEM, /**< arg1: Media ID; ret: input_item_t* */
466 VLC_ML_GET_INPUT_ITEM_BY_MRL, /**< arg1: Media MRL; ret: input_item_t* */
467 VLC_ML_GET_ALBUM, /**< arg1: Album ID; ret: vlc_ml_album_t* */
468 VLC_ML_GET_ARTIST, /**< arg1: Artist ID; ret: vlc_ml_artist_t* */
469 VLC_ML_GET_GENRE, /**< arg1: Genre ID; ret: vlc_ml_genre_t* */
470 VLC_ML_GET_SHOW, /**< arg1: Show ID; ret: vlc_ml_show_t* */
471 VLC_ML_GET_PLAYLIST, /**< arg1: Playlist ID; ret: vlc_ml_playlist_t* */
472 VLC_ML_GET_GROUP, /**< arg1: Group ID; ret: vlc_ml_group_t* */
473 VLC_ML_GET_FOLDER, /**< arg1: folder ID; ret: vlc_ml_folder_t* */
475
478 /* General listing: */
479
480 VLC_ML_LIST_MEDIA, /**< arg1 (out): vlc_ml_media_list_t** */
481 VLC_ML_COUNT_MEDIA, /**< arg1 (out): size_t* */
482 VLC_ML_LIST_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
483 VLC_ML_COUNT_VIDEOS, /**< arg1 (out): size_t* */
484 VLC_ML_LIST_MOVIES, /**< arg1 (out): vlc_ml_media_list_t** */
485 VLC_ML_COUNT_MOVIES, /**< arg1 (out): size_t* */
486 VLC_ML_LIST_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
487 VLC_ML_COUNT_AUDIOS, /**< arg1 (out): size_t* */
488 VLC_ML_LIST_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
489 VLC_ML_COUNT_ALBUMS, /**< arg1 (out): size_t* */
490 VLC_ML_LIST_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
491 VLC_ML_COUNT_GENRES, /**< arg1 (out): size_t* */
492 VLC_ML_LIST_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t** */
493 VLC_ML_COUNT_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): size_t* */
494 VLC_ML_LIST_SHOWS, /**< arg1 (out): vlc_ml_show_list_t** */
495 VLC_ML_COUNT_SHOWS, /**< arg1 (out): size_t* */
496 VLC_ML_LIST_GROUPS, /**< arg1 (out): vlc_ml_group_list_t** */
497 VLC_ML_COUNT_GROUPS, /**< arg1 (out): size_t* */
498 VLC_ML_LIST_PLAYLISTS, /**< arg1 (out): vlc_ml_playlist_list_t** */
499 VLC_ML_COUNT_PLAYLISTS, /**< arg1 (out): size_t* */
500 VLC_ML_LIST_HISTORY, /**< arg1 vlc_ml_history_type_t; arg2 (out): vlc_ml_media_list_t** */
501 VLC_ML_COUNT_HISTORY, /**< arg1 vlc_ml_history_type_t; arg2 (out): size_t* */
502 VLC_ML_LIST_VIDEO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
503 VLC_ML_COUNT_VIDEO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
504 VLC_ML_LIST_AUDIO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
505 VLC_ML_COUNT_AUDIO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
506 VLC_ML_LIST_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t** */
507 VLC_ML_COUNT_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): size_t* */
508 VLC_ML_LIST_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
509 VLC_ML_COUNT_FOLDERS, /**< arg1 (out): size_t* */
510 VLC_ML_LIST_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
511 VLC_ML_COUNT_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
513 /* Album specific listings */
514 VLC_ML_LIST_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): vlc_ml_media_list_t** */
515 VLC_ML_COUNT_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): size_t* */
516 VLC_ML_LIST_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): vlc_ml_album_list_t** */
517 VLC_ML_COUNT_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): size_t* */
519 /* Artist specific listings */
520 VLC_ML_LIST_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): vlc_ml_album_list_t** */
521 VLC_ML_COUNT_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): size_t* */
522 VLC_ML_LIST_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): vlc_ml_media_list_t** */
523 VLC_ML_COUNT_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): size_t* */
525 /* Genre specific listings */
526 VLC_ML_LIST_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): vlc_ml_artist_list_t** */
527 VLC_ML_COUNT_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): size_t* */
528 VLC_ML_LIST_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): vlc_ml_media_list_t** */
529 VLC_ML_COUNT_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): size_t* */
530 VLC_ML_LIST_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): vlc_ml_album_list_t** */
531 VLC_ML_COUNT_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): size_t* */
533 /* Show specific listings */
534 VLC_ML_LIST_SHOW_EPISODES, /**< arg1: show id; arg2(out): vlc_ml_media_list_t** */
535 VLC_ML_COUNT_SHOW_EPISODES, /**< arg1: show id; arg2(out): size_t* */
537 /* Media specific listings */
538 VLC_ML_LIST_MEDIA_LABELS, /**< arg1: media id; arg2 (out): vlc_ml_label_list_t** */
539 VLC_ML_COUNT_MEDIA_LABELS, /**< arg1: media id; arg2 (out): size_t* */
540 VLC_ML_LIST_MEDIA_BOOKMARKS, /**< arg1: media id; arg2 (out): vlc_ml_bookmark_list_t** */
542 /* Groups specific listings */
543 VLC_ML_LIST_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
544 VLC_ML_COUNT_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
546 /* Playlist specific listings */
547 VLC_ML_LIST_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
548 VLC_ML_COUNT_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
550 /* Folder specific listings */
551 VLC_ML_LIST_SUBFOLDERS, /**< arg1: parent id; arg2 (out): vlc_ml_folder_list_t** */
552 VLC_ML_COUNT_SUBFOLDERS, /**< arg1: parent id; arg2 (out): size_t* */
553 VLC_ML_LIST_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): vlc_ml_media_list_t** */
554 VLC_ML_COUNT_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): size_t* */
556 /* Favorites listings */
557 VLC_ML_LIST_FAVORITE_MEDIA, /**< arg1 (out): vlc_ml_media_list_t** */
558 VLC_ML_COUNT_FAVORITE_MEDIA, /**< arg1 (out): size_t* */
559 VLC_ML_LIST_FAVORITE_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
560 VLC_ML_COUNT_FAVORITE_VIDEOS, /**< arg1 (out): size_t* */
561 VLC_ML_LIST_FAVORITE_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
562 VLC_ML_COUNT_FAVORITE_AUDIOS, /**< arg1 (out): size_t* */
563 VLC_ML_LIST_FAVORITE_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
564 VLC_ML_COUNT_FAVORITE_ALBUMS, /**< arg1 (out): size_t* */
565 VLC_ML_LIST_FAVORITE_ARTISTS, /**< arg1 (out): vlc_ml_artist_list_t** */
566 VLC_ML_COUNT_FAVORITE_ARTISTS,/**< arg1 (out): size_t* */
567 VLC_ML_LIST_FAVORITE_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
568 VLC_ML_COUNT_FAVORITE_GENRES, /**< arg1 (out): size_t* */
569 VLC_ML_LIST_FAVORITE_PLAYLISTS,/**< arg1 (out): vlc_ml_playlist_list_t** */
570 VLC_ML_COUNT_FAVORITE_PLAYLISTS,/**< arg1 (out): size_t* */
571 VLC_ML_LIST_FAVORITE_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
572 VLC_ML_COUNT_FAVORITE_FOLDERS,/**< arg1 (out): size_t* */
574 /* Children entities listing */
575 VLC_ML_LIST_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t** */
576 VLC_ML_COUNT_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
577 VLC_ML_LIST_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
578 VLC_ML_COUNT_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
579 VLC_ML_LIST_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
580 VLC_ML_COUNT_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
581 VLC_ML_LIST_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t** */
582 VLC_ML_COUNT_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
583 VLC_ML_LIST_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t** */
584 VLC_ML_COUNT_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
586
601 /* Adds a folder to discover through the medialibrary */
602 VLC_ML_ADD_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
603 VLC_ML_REMOVE_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
604 VLC_ML_BAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
605 VLC_ML_UNBAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
606 VLC_ML_IS_INDEXED, /**< arg1: mrl (const char*) arg2 (out): bool*; res: can fail */
607 /**
608 * Reload a specific folder, or all.
609 * arg1: mrl (const char*), NULL to reload all folders
610 * res: can't fail
611 */
614 VLC_ML_SET_FOLDER_PUBLIC, /**< arg1: mrl (const char *); res: can't fail */
615 VLC_ML_SET_FOLDER_PRIVATE, /**< arg1: mrl (const char *); res: can't fail */
617 /* Pause/resume background operations, such as media discovery & media analysis */
618 VLC_ML_PAUSE_BACKGROUND, /**< no args; can't fail */
619 VLC_ML_RESUME_BACKGROUND, /**< no args; can't fail */
621 /* Misc operations */
622 VLC_ML_CLEAR_HISTORY, /**< arg1: vlc_ml_history_type_t; can't fail */
624 /* Create media */
625 VLC_ML_NEW_EXTERNAL_MEDIA, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
626 VLC_ML_NEW_STREAM, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
630 /* Media management */
631 VLC_ML_MEDIA_UPDATE_PROGRESS, /**< arg1: media id; arg2: playback position; can fail */
632 VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: char**; */
633 VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*; */
634 VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2(out): vlc_ml_playback_states_all* */
635 VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2: const vlc_ml_playback_states_all* */
636 VLC_ML_MEDIA_SET_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
637 VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
638 VLC_ML_MEDIA_GENERATE_THUMBNAIL, /**< arg1: media id; arg2: vlc_ml_thumbnail_size_t; arg3: width; arg4: height; arg5: position */
639 VLC_ML_MEDIA_ADD_EXTERNAL_MRL, /**< arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t) */
640 VLC_ML_MEDIA_SET_TYPE, /**< arg1: media id; arg2: vlc_ml_media_type_t */
641 VLC_ML_MEDIA_SET_PLAYED, /**< arg1: media id; arg2: bool */
642 VLC_ML_MEDIA_SET_FAVORITE, /**< arg1: media id; arg2: bool */
643 VLC_ML_MEDIA_ADD_BOOKMARK, /**< arg1: media id; arg2: int64_t */
644 VLC_ML_MEDIA_REMOVE_BOOKMARK, /**< arg1: media id; arg2: int64_t */
645 VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, /**< arg1: media id */
646 VLC_ML_MEDIA_UPDATE_BOOKMARK, /**< arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char* */
648 /* Playlist management */
649 VLC_ML_PLAYLIST_CREATE, /**< arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail */
650 VLC_ML_PLAYLIST_DELETE, /**< arg1: playlist id; can fail */
651 VLC_ML_PLAYLIST_APPEND, /**< arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; can fail */
652 VLC_ML_PLAYLIST_INSERT, /**< arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; arg4: position; can fail */
653 VLC_ML_PLAYLIST_MOVE, /**< arg1: playlist id; arg2: from; arg3: to; arg4: count; can fail */
654 VLC_ML_PLAYLIST_REMOVE, /**< arg1: playlist id; arg2: position; arg3: count; can fail */
655 VLC_ML_PLAYLIST_RENAME, /**< arg1: playlist id; arg2: const char*; can fail */
657 /* Set Favorites */
658 VLC_ML_FOLDER_SET_FAVORITE, /**< arg1: mrl (const char*); arg2: bool; res: can fail */
659 VLC_ML_ARTIST_SET_FAVORITE, /**< arg1: artist id; arg2: bool; can fail */
660 VLC_ML_ALBUM_SET_FAVORITE, /**< arg1: album id; arg2: bool; can fail */
661 VLC_ML_GENRE_SET_FAVORITE, /**< arg1: genre id; arg2: bool; can fail */
662 VLC_ML_PLAYLIST_SET_FAVORITE, /**< arg1: playlist id; arg2: bool; can fail */
664
665/**
666 * User playback settings.
667 * All values/units are up to the caller and are not interpreted by the media
668 * library.
669 * All values are stored and returned as strings.
670 * When calling vlc_medialibrary_t::pf_control with vlc_ml_MEDIA_GET_MEDIA_PLAYBACK_STATE,
671 * the value will be returned stored in the provided char**. If the state was
672 * not set yet, NULL will be returned.
673 * When setting a state, NULL can be provided as a value to unset it.
674 */
696typedef struct vlc_ml_playback_states_all
712 /**
713 * Entity modification callbacks. The affected entity will be passed:
714 * - As a `vlc_ml_<type>_t`, depending on the type of the modified/inserted
715 * entity, in `vlc_ml_event_t::modification::p_<type>`
716 * for ADDED and UPDATED variants.
717 * - as an id, in ::vlc_ml_event_t::deletion::i_entity_id
718 * When _DELETED callbacks get invoked, the entity will already have been
719 * deleted from the database, and cannot be retrieved anymore
720 */
745 /**
746 * A discovery started.
747 *
748 * This event will be emitted when the media library starts discovering a
749 * scheduled entry point.
750 * If more than a single entry point are queued, this event won't be fired
751 * again until all operations are completed and a new operation is scheduled.
752 * Once all currently queued operations are done
753 * VLC_ML_EVENT_DISCOVERY_COMPLETED will be emitted.
754 */
756 /**
757 * Sent when a discovery or reload operation starts analyzing a new folder.
758 * The discovered entry point is stored in
759 * vlc_ml_event_t::discovery_progress::psz_entry_point.
760 */
762 /**
763 * Sent when all queued discovery operations are done being processed.
764 */
766 /**
767 * This event is sent when a discovery failed. The entry point that failed to
768 * be discovered is stored in
769 * vlc_ml_event_t::discovery_failed::psz_entry_point
770 */
772 /**
773 * Sent when a new entry point gets added to the database.
774 * The entry point that was added is stored in
775 * vlc::ml_event_t::entry_point_added::psz_entry_point, and the success or failure
776 * state is stored in vlc_ml_event_t::entry_point_added::b_success
777 * If successful, this event won't be emitted again for this entry point.
778 * In case of failure, this event will be fired again if the same entry point
779 * is queued for discovery again.
780 */
782 /**
783 * Sent when an entry point removal request has been processed.
784 * The removed entry point is stored in
785 * vlc_ml_event_t::entry_point_removed::psz_entry_point and the success or failure
786 * state is stored in vlc_ml_event_t::entry_point_removed::b_success
787 */
789 /**
790 * Sent when an entry point ban request has been processed.
791 * The banned entry point is stored in
792 * vlc_ml_event_t::entry_point_banned::psz_entry_point and the operation success
793 * state is stored in vlc_ml_event_t::entry_point_banned::b_success
794 */
796 /**
797 * Sent when an entry point unban request has been processed.
798 * The unbanned entry point is stored in
799 * vlc_ml_event_t::entry_point_unbanned::psz_entry_point and the operation success
800 * state is stored in vlc_ml_event_t::entry_point_unbanned::b_success
801 */
803 /**
804 * Sent when a discoverer or parser threads changes its idle state.
805 * The idle state is stored in vlc_ml_event_t::background_idle_changed.b_idle.
806 * False means at least one background thread is in running, true means
807 * both discoverer & parser threads are paused.
808 */
810 /**
811 * Sent when the parsing progress percentage gets updated.
812 * The percentage is stored as a [0;100] integer, in
813 * vlc_ml_event_t::parsing_progress::i_percent
814 * This value might decrease as more media get discovered, but it will only
815 * increase once all discovery operations are completed.
816 */
818 /**
819 * Sent after a media thumbnail was generated, or if it's generation failed.
820 * The media is stored in vlc_ml_event_t::media_thumbnail_generated::p_media
821 * and the success state is stored in
822 * vlc_ml_event_t::media_thumbnail_generated::b_success
823 */
825 /**
826 * Sent after the history gets changed. It can be either cleaned, or simply
827 * modified because a media was recently played/removed from the history.
828 * The history type (global/local/network) is stored in
829 * vlc_ml_event_t::history_changed::history_type
830 */
832 /**
833 * Sent when an application requested rescan starts being processed.
834 */
836 /**
837 * Sent when favorites list changes. This includes when entities are
838 * marked/unmarked as favorites.
839 * The entity type and id are stored in vlc_ml_event_t::favorites_changed
840 */
843
844typedef struct vlc_ml_event_t
846 int i_type;
847 union
848 {
849 struct
850 {
851 const char* psz_entry_point;
853 struct
854 {
855 const char* psz_entry_point;
857 struct
858 {
859 const char* psz_entry_point;
860 bool b_success;
862 struct
863 {
864 const char* psz_entry_point;
865 bool b_success;
867 struct
868 {
869 const char* psz_entry_point;
870 bool b_success;
872 struct
873 {
874 const char* psz_entry_point;
875 bool b_success;
877 struct
878 {
879 uint8_t i_percent;
881 union
882 {
883 const vlc_ml_media_t* p_media;
892 struct
893 {
894 int64_t i_entity_id;
896 struct
897 {
898 int64_t i_entity_id;
899 } deletion;
900 struct
901 {
902 bool b_idle;
904 struct
905 {
906 const vlc_ml_media_t* p_media;
910 struct
911 {
914 struct
915 {
916 int64_t i_entity_id;
917 int i_entity_type; /**< One of VLC_ML_PARENT_* values */
918 bool b_favorite; /**< true if marked as favorite, false if unmarked */
920 };
923typedef void (*vlc_ml_callback_t)( void* p_data, const vlc_ml_event_t* p_event );
925typedef struct vlc_medialibrary_callbacks_t
932 struct vlc_object_t obj;
936 void* p_sys;
938 int (*pf_control)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
939 /**
940 * List some entities from the medialibrary.
941 *
942 * \param p_ml The medialibrary module instance.
943 * \param i_query The type search to be performed. \see vlc_ml_list enumeration
944 * \param p_params A pointer to a vlc_ml_query_params_t structure, or NULL for
945 * the default parameters (alphabetical ascending sort, no pagination)
946 *
947 * \return VLC_SUCCESS or an error code
948 *
949 * Refer to the individual list of vlc_ml_list requests for the additional
950 * per-query input/output parameters values & types
951 */
952 int (*pf_list)( struct vlc_medialibrary_module_t* p_ml, int i_query,
953 const vlc_ml_query_params_t* p_params, va_list args );
954
955 /**
956 * Get a specific entity by its id or another unique value
957 *
958 * \return The required entity, or a NULL pointer if couldn't be found.
959 *
960 * Refer to the list of queries for the specific return type
961 */
962 void* (*pf_get)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
966
969
971#define vlc_ml_instance_get(x) vlc_ml_instance_get( VLC_OBJECT(x) )
973VLC_API void* vlc_ml_get( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
974VLC_API int vlc_ml_control( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
975VLC_API int vlc_ml_list( vlc_medialibrary_t* p_ml, int i_query,
976 const vlc_ml_query_params_t* p_params, ... );
977
978/**
979 * \brief Registers a medialibrary callback.
980 * \returns A handle to the callback, to be passed to vlc_ml_event_unregister_callback
981 */
984
985/**
986 * \brief Unregisters a medialibrary callback
987 * \param p_ml an initialized medialibrary instance
988 * \param p_callback The callback handle returned by vlc_ml_register_callback
989 */
991 vlc_ml_event_callback_t* p_callback );
992/**
993 * \brief Unregisters a medialibrary callback from the said callback.
994 * \param p_ml an initialized medialibrary instance
995 * \param p_callback The handle returned by vlc_ml_register_callback
996 *
997 * This must only be called synchronously from the callback function provided to
998 * vlc_ml_event_register_callback
999 * The p_callback handle must be considered invalid when this function returns
1000 */
1002 vlc_ml_event_callback_t* p_callback );
1003
1004
1013
1027
1030#ifdef __cplusplus
1031 vlc_ml_query_params_t ret = { };
1033#else
1035#endif
1036 return ret;
1037}
1038
1039static inline int vlc_ml_add_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1041 return vlc_ml_control( p_ml, VLC_ML_ADD_FOLDER, psz_folder );
1042}
1043
1044static inline int vlc_ml_remove_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1046 return vlc_ml_control( p_ml, VLC_ML_REMOVE_FOLDER, psz_folder );
1047}
1048
1049static inline int vlc_ml_ban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1051 return vlc_ml_control( p_ml, VLC_ML_BAN_FOLDER, psz_folder );
1052}
1053
1054static inline int vlc_ml_unban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1056 return vlc_ml_control( p_ml, VLC_ML_UNBAN_FOLDER, psz_folder );
1057}
1058
1059static inline int vlc_ml_is_indexed( vlc_medialibrary_t* p_ml,
1060 const char* psz_mrl, bool* p_res )
1061{
1062 return vlc_ml_control( p_ml, VLC_ML_IS_INDEXED, psz_mrl, p_res );
1063}
1064
1065static inline int vlc_ml_reload_folder( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1067 return vlc_ml_control( p_ml, VLC_ML_RELOAD_FOLDER, psz_mrl );
1068}
1069
1070static inline int vlc_ml_set_folder_public( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1072 return vlc_ml_control( p_ml, VLC_ML_SET_FOLDER_PUBLIC, psz_mrl );
1073}
1074
1075static inline int vlc_ml_set_folder_private( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1077 return vlc_ml_control( p_ml, VLC_ML_SET_FOLDER_PRIVATE, psz_mrl );
1078}
1079
1080static inline int vlc_ml_pause_background( vlc_medialibrary_t* p_ml )
1083}
1084
1085static inline int vlc_ml_resume_background( vlc_medialibrary_t* p_ml )
1088}
1089
1090static inline int vlc_ml_clear_history( vlc_medialibrary_t* p_ml, vlc_ml_history_type_t type )
1092 return vlc_ml_control( p_ml, VLC_ML_CLEAR_HISTORY, type );
1093}
1094
1095static inline vlc_ml_media_t* vlc_ml_new_external_media( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1097 vlc_ml_media_t* res;
1098 if ( vlc_ml_control( p_ml, VLC_ML_NEW_EXTERNAL_MEDIA, psz_mrl, &res ) != VLC_SUCCESS )
1099 return NULL;
1100 return res;
1101}
1102
1103static inline vlc_ml_media_t* vlc_ml_new_stream( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1105 vlc_ml_media_t* res;
1106 if ( vlc_ml_control( p_ml, VLC_ML_NEW_STREAM, psz_mrl, &res ) != VLC_SUCCESS )
1107 return NULL;
1108 return res;
1109}
1110
1111static inline int vlc_ml_remove_stream( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1113 return vlc_ml_control(p_ml, VLC_ML_REMOVE_STREAM, i_media_id);
1114}
1115
1116static inline int vlc_ml_media_update_progress( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1117 double progress )
1118{
1119 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_PROGRESS, i_media_id, progress );
1120}
1121
1122static inline int vlc_ml_media_get_playback_state( vlc_medialibrary_t* p_ml, int64_t i_media_id, int i_state, char** ppsz_result )
1124 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, ppsz_result );
1125}
1126
1127static 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 )
1129 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, psz_value );
1130}
1131
1133 int64_t i_media_id,
1135{
1136 return vlc_ml_control( p_ml,VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1137}
1138
1140 int64_t i_media_id,
1141 const vlc_ml_playback_states_all* prefs )
1142{
1143 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1144}
1145
1146static inline int vlc_ml_media_set_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1147 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1148{
1149 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1150}
1151
1152static inline int vlc_ml_media_set_genre_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1153 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1154{
1155 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1156}
1157
1158
1159static inline int vlc_ml_media_generate_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1161 uint32_t i_desired_width,
1162 uint32_t i_desired_height,
1163 double position )
1164{
1165 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GENERATE_THUMBNAIL, i_media_id,
1166 size_type, i_desired_width, i_desired_height, position );
1167}
1168
1169static inline int vlc_ml_media_add_external_mrl( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1170 const char* psz_mrl, int i_type )
1171{
1172 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_EXTERNAL_MRL, i_media_id, psz_mrl, i_type );
1173}
1174
1175static inline int vlc_ml_media_set_type( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1177{
1178 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_TYPE, i_media_id, (int)i_type );
1179}
1180
1181static inline int vlc_ml_media_set_played( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1182 bool b_played )
1183{
1184 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_PLAYED, i_media_id, (int) b_played );
1185}
1186
1187static inline int vlc_ml_media_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1188 bool b_favorite )
1189{
1190 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_FAVORITE, i_media_id, (int) b_favorite );
1191}
1192
1193static inline vlc_ml_bookmark_list_t*
1195 int64_t i_media_id )
1196{
1197 assert( p_ml != NULL );
1199 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_BOOKMARKS, params, i_media_id,
1200 &res ) != VLC_SUCCESS )
1201 return NULL;
1202 return res;
1203}
1204
1205static inline int
1206vlc_ml_media_add_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1208 assert( p_ml != NULL );
1209 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_BOOKMARK, i_media_id, i_time );
1210}
1211
1212static inline int
1213vlc_ml_media_remove_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1215 assert( p_ml != NULL );
1216 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_BOOKMARK, i_media_id, i_time );
1217}
1218
1219static inline int
1220vlc_ml_media_update_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1221 int64_t i_time, const char* psz_name,
1222 const char* psz_desc )
1223{
1224 assert( p_ml != NULL );
1225 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_BOOKMARK, i_media_id,
1226 i_time, psz_name, psz_desc );
1227}
1228
1229static inline int
1230vlc_ml_media_remove_all_bookmarks( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1232 assert( p_ml != NULL );
1233 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, i_media_id );
1234}
1235
1236static inline vlc_ml_playlist_t*
1237vlc_ml_playlist_create( vlc_medialibrary_t * p_ml, const char * name)
1239 assert( p_ml != NULL );
1240
1241 vlc_ml_playlist_t* result;
1242
1243 if (vlc_ml_control( p_ml, VLC_ML_PLAYLIST_CREATE, name, &result ) != VLC_SUCCESS )
1244 return NULL;
1245
1246 return result;
1247}
1248
1249static inline int
1250vlc_ml_playlist_delete( vlc_medialibrary_t * p_ml, int64_t i_playlist_id )
1252 assert( p_ml != NULL );
1253
1254 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_DELETE, i_playlist_id );
1255}
1256
1257static inline int
1258vlc_ml_playlist_append( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const int64_t *i_media_ids, size_t i_media_id_count )
1260 assert( p_ml != NULL );
1261
1262 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_APPEND, i_playlist_id, i_media_ids, i_media_id_count );
1263}
1264
1265static inline int
1266vlc_ml_playlist_insert( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const int64_t *i_media_ids,
1267 size_t i_media_id_count, uint32_t i_position )
1268{
1269 assert( p_ml != NULL );
1270
1271 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_INSERT, i_playlist_id, i_media_ids, i_media_id_count, i_position );
1272}
1273
1274static inline int
1276 int64_t i_playlist_id, uint32_t i_from, uint32_t i_to, uint32_t i_count )
1277{
1278 assert( p_ml != NULL );
1279
1280 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_MOVE, i_playlist_id, i_from, i_to, i_count );
1281}
1282
1283static inline int
1284vlc_ml_playlist_remove( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, uint32_t i_position, uint32_t i_count )
1286 assert( p_ml != NULL );
1287
1288 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_REMOVE, i_playlist_id, i_position, i_count );
1289}
1290
1291static inline int
1292vlc_ml_playlist_rename( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const char* name )
1294 assert( p_ml != NULL );
1295
1296 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_RENAME, i_playlist_id, name );
1297}
1298
1299static inline vlc_ml_media_t* vlc_ml_get_media( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1301 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA, i_media_id );
1302}
1303
1305 const char* psz_mrl )
1306{
1307 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA_BY_MRL, psz_mrl );
1308}
1309
1310static inline input_item_t* vlc_ml_get_input_item( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1312 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM, i_media_id );
1313}
1314
1316 const char* psz_mrl )
1317{
1318 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM_BY_MRL, psz_mrl );
1319}
1320
1321static inline vlc_ml_album_t* vlc_ml_get_album( vlc_medialibrary_t* p_ml, int64_t i_album_id )
1323 return (vlc_ml_album_t*)vlc_ml_get( p_ml, VLC_ML_GET_ALBUM, i_album_id );
1324}
1325
1326static inline vlc_ml_artist_t* vlc_ml_get_artist( vlc_medialibrary_t* p_ml, int64_t i_artist_id )
1328 return (vlc_ml_artist_t*)vlc_ml_get( p_ml, VLC_ML_GET_ARTIST, i_artist_id );
1329}
1330
1331static inline vlc_ml_genre_t* vlc_ml_get_genre( vlc_medialibrary_t* p_ml, int64_t i_genre_id )
1333 return (vlc_ml_genre_t*)vlc_ml_get( p_ml, VLC_ML_GET_GENRE, i_genre_id );
1334}
1335
1336static inline vlc_ml_show_t* vlc_ml_get_show( vlc_medialibrary_t* p_ml, int64_t i_show_id )
1338 return (vlc_ml_show_t*)vlc_ml_get( p_ml, VLC_ML_GET_SHOW, i_show_id );
1339}
1340
1341static inline vlc_ml_group_t* vlc_ml_get_group( vlc_medialibrary_t* p_ml, int64_t i_group_id )
1343 return (vlc_ml_group_t*)vlc_ml_get( p_ml, VLC_ML_GET_GROUP, i_group_id );
1344}
1345
1346static inline vlc_ml_folder_t* vlc_ml_get_folder( vlc_medialibrary_t* p_ml, int64_t i_folder_id )
1348 return (vlc_ml_folder_t*)vlc_ml_get( p_ml, VLC_ML_GET_FOLDER, i_folder_id);
1349}
1350
1351static inline vlc_ml_playlist_t* vlc_ml_get_playlist( vlc_medialibrary_t* p_ml, int64_t i_playlist_id )
1353 return (vlc_ml_playlist_t*)vlc_ml_get( p_ml, VLC_ML_GET_PLAYLIST, i_playlist_id );
1354}
1355
1356static 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 )
1358 vlc_assert( p_ml != NULL );
1360 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1361 return NULL;
1362 return res;
1363}
1364
1365static 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 )
1367 vlc_assert( p_ml != NULL );
1368 size_t res;
1369 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1370 return 0;
1371 return res;
1372}
1373
1376 int i_parent_type, int64_t i_parent_id )
1377{
1378 vlc_assert( p_ml != NULL );
1379
1381
1383 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1384 return NULL;
1385
1386 return res;
1387}
1388
1389static inline size_t vlc_ml_count_video_of( vlc_medialibrary_t* p_ml,
1391 int i_parent_type, int64_t i_parent_id )
1392{
1393 vlc_assert( p_ml != NULL );
1394
1395 size_t res;
1396
1398 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1399 return 0;
1400
1401 return res;
1402}
1403
1406 int i_parent_type, int64_t i_parent_id )
1407{
1408 vlc_assert( p_ml != NULL );
1409
1411
1413 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1414 return NULL;
1415
1416 return res;
1417}
1418
1419static inline size_t vlc_ml_count_audio_of( vlc_medialibrary_t* p_ml,
1421 int i_parent_type, int64_t i_parent_id )
1422{
1423 vlc_assert( p_ml != NULL );
1424
1425 size_t res;
1426
1428 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1429 return 0;
1430
1431 return res;
1432}
1433
1434static 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 )
1436 vlc_assert( p_ml != NULL );
1438 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1439 return NULL;
1440 return res;
1441}
1442
1443static 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 )
1445 vlc_assert( p_ml != NULL );
1446 size_t res;
1447 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1448 return 0;
1449 return res;
1450}
1451
1452static 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 )
1454 vlc_assert( p_ml != NULL );
1456 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1457 return NULL;
1458 return res;
1459}
1460
1461static 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 )
1463 vlc_assert( p_ml != NULL );
1464 size_t res;
1465 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1466 return 0;
1467 return res;
1468}
1469
1470static 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 )
1472 vlc_assert( p_ml != NULL );
1474 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_TRACKS, params, i_album_id, &res ) != VLC_SUCCESS )
1475 return NULL;
1476 return res;
1477}
1478
1479static 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 )
1481 vlc_assert( p_ml != NULL );
1482 size_t count;
1483 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_TRACKS, params, i_album_id, &count ) != VLC_SUCCESS )
1484 return 0;
1485 return count;
1486}
1487
1488static 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 )
1490 vlc_assert( p_ml != NULL );
1492 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_ARTISTS, params, i_album_id, &res ) != VLC_SUCCESS )
1493 return NULL;
1494 return res;
1495}
1496
1497static 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 )
1499 vlc_assert( p_ml != NULL );
1500 size_t count;
1501 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_ARTISTS, params, i_album_id, &count ) != VLC_SUCCESS )
1502 return 0;
1503 return count;
1504}
1505
1506static 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 )
1508 vlc_assert( p_ml != NULL );
1510 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_ALBUMS, params, i_artist_id, &res ) != VLC_SUCCESS )
1511 return NULL;
1512 return res;
1513}
1514
1515static 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 )
1517 vlc_assert( p_ml != NULL );
1518 size_t count;
1519 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_ALBUMS, params, i_artist_id, &count ) != VLC_SUCCESS )
1520 return 0;
1521 return count;
1522}
1523
1524static 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 )
1526 vlc_assert( p_ml != NULL );
1528 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_TRACKS, params, i_artist_id, &res ) != VLC_SUCCESS )
1529 return NULL;
1530 return res;
1531}
1532
1533static 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 )
1535 vlc_assert( p_ml != NULL );
1536 size_t count;
1537 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_TRACKS, params, i_artist_id, &count ) != VLC_SUCCESS )
1538 return 0;
1539 return count;
1540}
1541
1544 vlc_assert( p_ml != NULL );
1546 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA, params, &res ) != VLC_SUCCESS )
1547 return NULL;
1548 return res;
1549}
1550
1551static inline size_t vlc_ml_count_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1553 vlc_assert( p_ml != NULL );
1554 size_t count;
1555 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA, params, &count ) != VLC_SUCCESS )
1556 return 0;
1557 return count;
1558}
1559
1562 vlc_assert( p_ml != NULL );
1564 if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEOS, params, &res ) != VLC_SUCCESS )
1565 return NULL;
1566 return res;
1567}
1568
1569static inline size_t vlc_ml_count_video_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1571 vlc_assert( p_ml != NULL );
1572 size_t count;
1573 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEOS, params, &count ) != VLC_SUCCESS )
1574 return 0;
1575 return count;
1576}
1577
1580 vlc_assert( p_ml != NULL );
1582 if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIOS, params, &res ) != VLC_SUCCESS )
1583 return NULL;
1584 return res;
1585}
1586
1587static inline size_t vlc_ml_count_audio_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1589 vlc_assert( p_ml != NULL );
1590 size_t count;
1591 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIOS, params, &count ) != VLC_SUCCESS )
1592 return 0;
1593 return count;
1594}
1595
1598 vlc_assert( p_ml != NULL );
1600 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS, params, &res ) != VLC_SUCCESS )
1601 return NULL;
1602 return res;
1603}
1604
1605static inline size_t vlc_ml_count_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1607 vlc_assert( p_ml != NULL );
1608 size_t count;
1609 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS, params, &count ) != VLC_SUCCESS )
1610 return 0;
1611 return count;
1612}
1613
1616 vlc_assert( p_ml != NULL );
1618 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRES, params, &res ) != VLC_SUCCESS )
1619 return NULL;
1620 return res;
1621}
1622
1623static inline size_t vlc_ml_count_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1625 vlc_assert( p_ml != NULL );
1626 size_t count;
1627 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRES, params, &count ) != VLC_SUCCESS )
1628 return 0;
1629 return count;
1630}
1631
1632/**
1633 * @brief vlc_ml_list_artists
1634 * @param p_ml an initialized medialibrary instance
1635 * @param params Query parameters, or NULL for the default
1636 * @param b_include_all True if you wish to fetch artists without at least one album.
1637 * @return
1638 */
1639static 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 )
1641 vlc_assert( p_ml != NULL );
1643 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS, params, (int)b_include_all, &res ) != VLC_SUCCESS )
1644 return NULL;
1645 return res;
1646}
1647
1648static inline size_t vlc_ml_count_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, bool includeAll )
1650 vlc_assert( p_ml != NULL );
1651 size_t count;
1652 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS, params, includeAll, &count ) != VLC_SUCCESS )
1653 return 0;
1654 return count;
1655}
1656
1659 vlc_assert( p_ml != NULL );
1660 vlc_ml_show_list_t* res;
1661 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOWS, params, &res ) != VLC_SUCCESS )
1662 return NULL;
1663 return res;
1664}
1665
1668 vlc_assert(p_ml != NULL);
1670 if (vlc_ml_list(p_ml, VLC_ML_LIST_MOVIES, params, &res) != VLC_SUCCESS)
1671 return NULL;
1672 return res;
1673}
1674
1675static inline size_t vlc_ml_count_movies(vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params)
1677 vlc_assert(p_ml != NULL);
1678 size_t count;
1679 if (vlc_ml_list(p_ml, VLC_ML_COUNT_MOVIES, params, &count) != VLC_SUCCESS)
1680 return 0;
1681 return count;
1682}
1683
1684static inline size_t vlc_ml_count_shows( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1686 vlc_assert( p_ml != NULL );
1687 size_t count;
1688 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_SHOWS, params, &count ) != VLC_SUCCESS )
1689 return 0;
1690 return count;
1691}
1692
1693static 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 )
1695 vlc_assert( p_ml != NULL );
1697 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ARTISTS, params, i_genre_id, &res ) != VLC_SUCCESS )
1698 return NULL;
1699 return res;
1700}
1701
1702static 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 )
1704 vlc_assert( p_ml != NULL );
1705 size_t count;
1706 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ARTISTS, params, i_genre_id, &count ) != VLC_SUCCESS )
1707 return 0;
1708 return count;
1709}
1710
1711static 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 )
1713 vlc_assert( p_ml != NULL );
1715 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_TRACKS, params, i_genre_id, &res ) != VLC_SUCCESS )
1716 return NULL;
1717 return res;
1718}
1719
1720static 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 )
1722 vlc_assert( p_ml != NULL );
1723 size_t count;
1724 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_TRACKS, params, i_genre_id, &count ) != VLC_SUCCESS )
1725 return 0;
1726 return count;
1727}
1728
1729static 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 )
1731 vlc_assert( p_ml != NULL );
1733 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ALBUMS, params, i_genre_id, &res ) != VLC_SUCCESS )
1734 return NULL;
1735 return res;
1736}
1737
1738static 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 )
1740 vlc_assert( p_ml != NULL );
1741 size_t count;
1742 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_genre_id, &count ) != VLC_SUCCESS )
1743 return 0;
1744 return count;
1745}
1746
1747static 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 )
1749 vlc_assert( p_ml != NULL );
1751 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOW_EPISODES, params, i_show_id, &res ) != VLC_SUCCESS )
1752 return NULL;
1753 return res;
1754}
1755
1756static 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 )
1758 vlc_assert( p_ml != NULL );
1759 size_t count;
1760 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_show_id, &count ) != VLC_SUCCESS )
1761 return 0;
1762 return count;
1763}
1764
1765static 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 )
1767 vlc_assert( p_ml != NULL );
1769 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &res ) != VLC_SUCCESS )
1770 return NULL;
1771 return res;
1772}
1773
1774static 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 )
1776 vlc_assert( p_ml != NULL );
1777 size_t count;
1778 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &count ) != VLC_SUCCESS )
1779 return 0;
1780 return count;
1781}
1782
1785 vlc_assert( p_ml != NULL );
1787 if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY, params, (int)type, &res ) != VLC_SUCCESS )
1788 return NULL;
1789 return res;
1790}
1791
1792static inline size_t vlc_ml_count_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, vlc_ml_history_type_t type )
1794 vlc_assert( p_ml != NULL );
1795 size_t count;
1796 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY, params, (int)type, &count ) != VLC_SUCCESS )
1797 return 0;
1798 return count;
1799}
1800
1803 vlc_assert( p_ml != NULL );
1805 if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEO_HISTORY, params, &res ) != VLC_SUCCESS )
1806 return NULL;
1807 return res;
1808}
1809
1810static inline size_t vlc_ml_count_video_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1812 vlc_assert( p_ml != NULL );
1813 size_t count;
1814 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEO_HISTORY, params, &count ) != VLC_SUCCESS )
1815 return 0;
1816 return count;
1817}
1818
1821 vlc_assert( p_ml != NULL );
1823 if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIO_HISTORY, params, &res ) != VLC_SUCCESS )
1824 return NULL;
1825 return res;
1826}
1827
1828static inline size_t vlc_ml_count_audio_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1830 vlc_assert( p_ml != NULL );
1831 size_t count;
1832 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIO_HISTORY, params, &count ) != VLC_SUCCESS )
1833 return 0;
1834 return count;
1835}
1836
1837//-------------------------------------------------------------------------------------------------
1838// Groups
1839
1842 vlc_assert( p_ml != NULL );
1844 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUPS, params, &res ) != VLC_SUCCESS )
1845 return NULL;
1846 return res;
1847}
1848
1849static inline size_t vlc_ml_count_groups( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1851 vlc_assert( p_ml != NULL );
1852 size_t count;
1853 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUPS, params, &count ) != VLC_SUCCESS )
1854 return 0;
1855 return count;
1856}
1857
1858static 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 )
1860 vlc_assert( p_ml != NULL );
1862 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUP_MEDIA, params, i_group_id, &res ) != VLC_SUCCESS )
1863 return NULL;
1864 return res;
1865}
1866
1867static 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 )
1869 vlc_assert( p_ml != NULL );
1870 size_t count;
1871 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUP_MEDIA, params, i_group_id, &count ) != VLC_SUCCESS )
1872 return 0;
1873 return count;
1874}
1875
1876//-------------------------------------------------------------------------------------------------
1877
1880 vlc_assert( p_ml != NULL );
1882 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, (int) playlist_type, &res ) != VLC_SUCCESS )
1883 return NULL;
1884 return res;
1885}
1886
1887static 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)
1889 vlc_assert( p_ml != NULL );
1890 size_t count;
1891 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, (int) playlist_type, &count ) != VLC_SUCCESS )
1892 return 0;
1893 return count;
1894}
1895
1896static 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 )
1898 vlc_assert( p_ml != NULL );
1900 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLIST_MEDIA, params, i_playlist_id, &res ) != VLC_SUCCESS )
1901 return NULL;
1902 return res;
1903}
1904
1905static 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 )
1907 vlc_assert( p_ml != NULL );
1908 size_t count;
1909 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLIST_MEDIA, params, i_playlist_id, &count ) != VLC_SUCCESS )
1910 return 0;
1911 return count;
1912}
1913
1916 vlc_assert( p_ml != NULL );
1918 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1919 return NULL;
1920 return res;
1921}
1922
1923static inline size_t vlc_ml_count_entry_points( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1925 vlc_assert( p_ml != NULL );
1926 size_t res;
1927 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1928 return 0;
1929 return res;
1930}
1931
1932static inline vlc_ml_folder_list_t*
1935 vlc_assert( p_ml != NULL );
1937 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1938 return NULL;
1939 return res;
1940}
1941
1942static inline size_t vlc_ml_count_banned_entry_points( vlc_medialibrary_t* p_ml,
1944{
1945 vlc_assert( p_ml != NULL );
1946 size_t res;
1947 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1948 return 0;
1949 return res;
1950}
1951
1952// Folders
1953
1956{
1957 vlc_assert(p_ml != NULL);
1958
1960
1961 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS, params, &res) != VLC_SUCCESS)
1962 return NULL;
1963
1964 return res;
1965}
1966
1967static inline size_t vlc_ml_count_folders(vlc_medialibrary_t * p_ml,
1969{
1970 vlc_assert(p_ml != NULL);
1971
1972 size_t count;
1973
1974 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS, params, &count) != VLC_SUCCESS)
1975 return 0;
1976
1977 return count;
1978}
1979
1980static inline
1984{
1985 vlc_assert(p_ml != NULL);
1986
1988
1989 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS_BY_TYPE, params, (int) type, &res) != VLC_SUCCESS)
1990 return NULL;
1991
1992 return res;
1993}
1994
1995static inline size_t vlc_ml_count_folders_by_type(vlc_medialibrary_t * p_ml,
1998{
1999 vlc_assert(p_ml != NULL);
2000
2001 size_t count;
2002
2003 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS_BY_TYPE, params, (int) type, &count) != VLC_SUCCESS)
2004 return 0;
2005
2006 return count;
2007}
2008
2009// Folder Media
2010
2013 int64_t i_folder_id)
2014{
2015 vlc_assert(p_ml != NULL);
2016
2017 vlc_ml_media_list_t * res;
2018
2019 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDER_MEDIA, params, i_folder_id, &res) != VLC_SUCCESS)
2020 return NULL;
2021
2022 return res;
2023}
2024
2025static inline size_t vlc_ml_count_folder_media(vlc_medialibrary_t * p_ml,
2027 int64_t i_folder_id)
2028{
2029 vlc_assert(p_ml != NULL);
2030
2031 size_t count;
2032
2033 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDER_MEDIA, params, i_folder_id, &count) != VLC_SUCCESS)
2034 return 0;
2035
2036 return count;
2037}
2038
2039static inline int vlc_ml_folder_set_favorite( vlc_medialibrary_t* p_ml, const char* psz_mrl, bool b_favorite )
2041 return vlc_ml_control( p_ml, VLC_ML_FOLDER_SET_FAVORITE, psz_mrl, (int)b_favorite );
2042}
2043
2044static inline int vlc_ml_artist_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_artist_id, bool b_favorite )
2046 return vlc_ml_control( p_ml, VLC_ML_ARTIST_SET_FAVORITE, i_artist_id, (int)b_favorite );
2047}
2048
2049static inline int vlc_ml_album_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_album_id, bool b_favorite )
2051 return vlc_ml_control( p_ml, VLC_ML_ALBUM_SET_FAVORITE, i_album_id, (int)b_favorite );
2052}
2053
2054static inline int vlc_ml_genre_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_genre_id, bool b_favorite )
2056 return vlc_ml_control( p_ml, VLC_ML_GENRE_SET_FAVORITE, i_genre_id, (int)b_favorite );
2057}
2058
2059static inline int vlc_ml_playlist_set_favorite( vlc_medialibrary_t *p_ml, int64_t i_playlist_id, bool b_favorite )
2061 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_SET_FAVORITE, i_playlist_id, (int)b_favorite );
2062}
2063
2064//-------------------------------------------------------------------------------------------------
2065// Favorites
2066
2069 vlc_assert( p_ml != NULL );
2071 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_MEDIA, params, &res ) != VLC_SUCCESS )
2072 return NULL;
2073 return res;
2074}
2075
2076static inline size_t vlc_ml_count_favorite_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2078 vlc_assert( p_ml != NULL );
2079 size_t count;
2080 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_MEDIA, params, &count ) != VLC_SUCCESS )
2081 return 0;
2082 return count;
2083}
2084
2087 vlc_assert( p_ml != NULL );
2089 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_VIDEOS, params, &res ) != VLC_SUCCESS )
2090 return NULL;
2091 return res;
2092}
2093
2094static inline size_t vlc_ml_count_favorite_videos( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2096 vlc_assert( p_ml != NULL );
2097 size_t count;
2098 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_VIDEOS, params, &count ) != VLC_SUCCESS )
2099 return 0;
2100 return count;
2101}
2102
2105 vlc_assert( p_ml != NULL );
2107 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_AUDIOS, params, &res ) != VLC_SUCCESS )
2108 return NULL;
2109 return res;
2110}
2111
2112static inline size_t vlc_ml_count_favorite_audios( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2114 vlc_assert( p_ml != NULL );
2115 size_t count;
2116 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_AUDIOS, params, &count ) != VLC_SUCCESS )
2117 return 0;
2118 return count;
2119}
2120
2123 vlc_assert( p_ml != NULL );
2125 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_ALBUMS, params, &res ) != VLC_SUCCESS )
2126 return NULL;
2127 return res;
2128}
2129
2130static inline size_t vlc_ml_count_favorite_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2132 vlc_assert( p_ml != NULL );
2133 size_t count;
2134 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_ALBUMS, params, &count ) != VLC_SUCCESS )
2135 return 0;
2136 return count;
2137}
2138
2141 vlc_assert( p_ml != NULL );
2143 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_ARTISTS, params, &res ) != VLC_SUCCESS )
2144 return NULL;
2145 return res;
2146}
2147
2148static inline size_t vlc_ml_count_favorite_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2150 vlc_assert( p_ml != NULL );
2151 size_t count;
2152 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_ARTISTS, params, &count ) != VLC_SUCCESS )
2153 return 0;
2154 return count;
2155}
2156
2159 vlc_assert( p_ml != NULL );
2161 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_GENRES, params, &res ) != VLC_SUCCESS )
2162 return NULL;
2163 return res;
2164}
2165
2166static inline size_t vlc_ml_count_favorite_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2168 vlc_assert( p_ml != NULL );
2169 size_t count;
2170 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_GENRES, params, &count ) != VLC_SUCCESS )
2171 return 0;
2172 return count;
2173}
2174
2177 vlc_assert( p_ml != NULL );
2179 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_PLAYLISTS, params, &res ) != VLC_SUCCESS )
2180 return NULL;
2181 return res;
2182}
2183
2184static inline size_t vlc_ml_count_favorite_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2186 vlc_assert( p_ml != NULL );
2187 size_t count;
2189 return 0;
2190 return count;
2191}
2192
2195 vlc_assert( p_ml != NULL );
2197 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_FOLDERS, params, &res ) != VLC_SUCCESS )
2198 return NULL;
2199 return res;
2200}
2201
2202static inline size_t vlc_ml_count_favorite_folders( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2204 vlc_assert( p_ml != NULL );
2205 size_t count;
2206 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_FOLDERS, params, &count ) != VLC_SUCCESS )
2207 return 0;
2208 return count;
2209}
2210
2211#ifdef __cplusplus
2212}
2213#endif /* C++ */
2214
2215#ifndef __cplusplus
2216# define vlc_ml_release( OBJ ) _Generic( ( OBJ ), \
2217 vlc_ml_show_t*: vlc_ml_show_release, \
2218 vlc_ml_artist_t*: vlc_ml_artist_release, \
2219 vlc_ml_album_t*: vlc_ml_album_release, \
2220 vlc_ml_genre_t*: vlc_ml_genre_release, \
2221 vlc_ml_media_t*: vlc_ml_media_release, \
2222 vlc_ml_group_t*: vlc_ml_group_release, \
2223 vlc_ml_folder_t*: vlc_ml_folder_release, \
2224 vlc_ml_playlist_t*: vlc_ml_playlist_release, \
2225 vlc_ml_label_list_t*: vlc_ml_label_list_release, \
2226 vlc_ml_file_list_t*: vlc_ml_file_list_release, \
2227 vlc_ml_artist_list_t*: vlc_ml_artist_list_release, \
2228 vlc_ml_media_list_t*: vlc_ml_media_list_release, \
2229 vlc_ml_album_list_t*: vlc_ml_album_list_release, \
2230 vlc_ml_show_list_t*: vlc_ml_show_list_release, \
2231 vlc_ml_genre_list_t*: vlc_ml_genre_list_release, \
2232 vlc_ml_group_list_t*: vlc_ml_group_list_release, \
2233 vlc_ml_playlist_list_t*: vlc_ml_playlist_list_release, \
2234 vlc_ml_folder_list_t*: vlc_ml_folder_list_release, \
2235 vlc_ml_playback_states_all*: vlc_ml_playback_states_all_release, \
2236 vlc_ml_bookmark_t*: vlc_ml_bookmark_release, \
2237 vlc_ml_bookmark_list_t*: vlc_ml_bookmark_list_release \
2238 )( OBJ )
2239#else
2240static inline void vlc_ml_release( vlc_ml_show_t* show ) { vlc_ml_show_release( show ); }
2241static inline void vlc_ml_release( vlc_ml_artist_t* artist ) { vlc_ml_artist_release( artist ); }
2242static inline void vlc_ml_release( vlc_ml_album_t* album ) { vlc_ml_album_release( album ); }
2243static inline void vlc_ml_release( vlc_ml_genre_t* genre ) { vlc_ml_genre_release( genre ); }
2244static inline void vlc_ml_release( vlc_ml_media_t* media ) { vlc_ml_media_release( media ); }
2245static inline void vlc_ml_release( vlc_ml_group_t* group ) { vlc_ml_group_release( group ); }
2246static inline void vlc_ml_release( vlc_ml_folder_t* folder ) { vlc_ml_folder_release( folder ); }
2247static inline void vlc_ml_release( vlc_ml_playlist_t* playlist ) { vlc_ml_playlist_release( playlist ); }
2258static inline void vlc_ml_release( vlc_ml_playback_states_all* prefs ) { vlc_ml_playback_states_all_release( prefs ); }
2259static inline void vlc_ml_release( vlc_ml_bookmark_t* bookmark ) { vlc_ml_bookmark_release( bookmark ); }
2261#endif
2262
2263#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:292
#define VLC_SUCCESS
No error.
Definition vlc_common.h:480
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:927
void(* pf_send_event)(vlc_medialibrary_module_t *p_ml, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:928
Definition vlc_media_library.h:932
void * p_sys
Definition vlc_media_library.h:937
struct vlc_object_t obj
Definition vlc_media_library.h:933
int(* pf_control)(struct vlc_medialibrary_module_t *p_ml, int i_query, va_list args)
Definition vlc_media_library.h:939
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:953
const vlc_medialibrary_callbacks_t * cbs
Definition vlc_media_library.h:965
module_t * p_module
Definition vlc_media_library.h:935
Definition medialibrary.c:42
Definition vlc_media_library.h:355
size_t i_nb_items
Definition vlc_media_library.h:356
vlc_ml_album_t p_items[]
Definition vlc_media_library.h:357
Definition vlc_media_library.h:323
bool b_is_favorite
Definition vlc_media_library.h:336
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:327
int64_t i_duration
Definition vlc_media_library.h:334
char * psz_summary
Definition vlc_media_library.h:326
int64_t i_artist_id
Definition vlc_media_library.h:329
unsigned int i_year
Definition vlc_media_library.h:335
char * psz_title
Definition vlc_media_library.h:325
uint32_t i_nb_tracks
Definition vlc_media_library.h:331
uint32_t i_nb_present_tracks
Definition vlc_media_library.h:332
char * psz_artist
Definition vlc_media_library.h:328
uint32_t i_nb_discs
Definition vlc_media_library.h:333
int64_t i_id
Definition vlc_media_library.h:324
Definition vlc_media_library.h:318
size_t i_nb_items
Definition vlc_media_library.h:319
vlc_ml_artist_t p_items[]
Definition vlc_media_library.h:320
Definition vlc_media_library.h:304
char * psz_mb_id
Definition vlc_media_library.h:309
char * psz_shortbio
Definition vlc_media_library.h:307
int64_t i_id
Definition vlc_media_library.h:305
unsigned int i_nb_album
Definition vlc_media_library.h:311
char * psz_name
Definition vlc_media_library.h:306
uint32_t i_nb_present_tracks
Definition vlc_media_library.h:313
bool b_is_favorite
Definition vlc_media_library.h:314
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:308
unsigned int i_nb_tracks
Definition vlc_media_library.h:312
Definition vlc_media_library.h:405
int64_t i_time
The bookmark time.
Definition vlc_media_library.h:407
char * psz_name
The bookmark name.
Definition vlc_media_library.h:408
int64_t i_media_id
The associated media ID.
Definition vlc_media_library.h:406
char * psz_description
The bookmark description.
Definition vlc_media_library.h:409
Definition vlc_media_library.h:413
size_t i_nb_items
Definition vlc_media_library.h:414
vlc_ml_bookmark_t p_items[]
Definition vlc_media_library.h:415
Definition medialibrary.c:35
Definition vlc_media_library.h:846
int i_entity_type
One of VLC_ML_PARENT_* values.
Definition vlc_media_library.h:918
struct vlc_ml_event_t::@247::@251 entry_point_added
struct vlc_ml_event_t::@247::@252 entry_point_removed
struct vlc_ml_event_t::@247::@259 background_idle_changed
struct vlc_ml_event_t::@247::@260 media_thumbnail_generated
union vlc_ml_event_t::@247::@256 creation
bool b_favorite
true if marked as favorite, false if unmarked
Definition vlc_media_library.h:919
uint8_t i_percent
Definition vlc_media_library.h:880
int64_t i_entity_id
Definition vlc_media_library.h:895
bool b_success
Definition vlc_media_library.h:861
struct vlc_ml_event_t::@247::@250 discovery_failed
struct vlc_ml_event_t::@247::@254 entry_point_unbanned
struct vlc_ml_event_t::@247::@257 modification
struct vlc_ml_event_t::@247::@253 entry_point_banned
const vlc_ml_artist_t * p_artist
Definition vlc_media_library.h:885
vlc_ml_history_type_t history_type
Definition vlc_media_library.h:913
const char * psz_entry_point
Definition vlc_media_library.h:852
struct vlc_ml_event_t::@247::@255 parsing_progress
int i_type
Definition vlc_media_library.h:847
const vlc_ml_album_t * p_album
Definition vlc_media_library.h:886
const vlc_ml_playlist_t * p_playlist
Definition vlc_media_library.h:888
const vlc_ml_folder_t * p_folder
Definition vlc_media_library.h:891
const vlc_ml_genre_t * p_genre
Definition vlc_media_library.h:889
const vlc_ml_media_t * p_media
Definition vlc_media_library.h:884
struct vlc_ml_event_t::@247::@262 favorites_changed
vlc_ml_thumbnail_size_t i_size
Definition vlc_media_library.h:908
struct vlc_ml_event_t::@247::@258 deletion
bool b_idle
Definition vlc_media_library.h:903
const vlc_ml_group_t * p_group
Definition vlc_media_library.h:887
struct vlc_ml_event_t::@247::@261 history_changed
const vlc_ml_bookmark_t * p_bookmark
Definition vlc_media_library.h:890
struct vlc_ml_event_t::@247::@249 discovery_progress
Definition vlc_media_library.h:166
size_t i_nb_items
Definition vlc_media_library.h:167
vlc_ml_file_t p_items[]
Definition vlc_media_library.h:168
Definition vlc_media_library.h:155
int64_t i_size
Definition vlc_media_library.h:157
bool b_present
Definition vlc_media_library.h:162
time_t i_last_modification_date
Definition vlc_media_library.h:158
bool b_external
Definition vlc_media_library.h:160
vlc_ml_file_type_t i_type
Definition vlc_media_library.h:159
char * psz_mrl
Definition vlc_media_library.h:156
bool b_removable
Definition vlc_media_library.h:161
Definition vlc_media_library.h:399
vlc_ml_folder_t p_items[]
Definition vlc_media_library.h:401
size_t i_nb_items
Definition vlc_media_library.h:400
Definition vlc_media_library.h:385
char * psz_mrl
The folder's MRL.
Definition vlc_media_library.h:388
bool b_present
The folder's presence state.
Definition vlc_media_library.h:394
bool b_banned
Will be true if the user required this folder to be excluded.
Definition vlc_media_library.h:395
char * psz_name
The folder's name.
Definition vlc_media_library.h:387
unsigned int i_nb_audio
The number of audio for this volder.
Definition vlc_media_library.h:391
int64_t i_id
The folder's MRL.
Definition vlc_media_library.h:386
unsigned int i_nb_media
The media count.
Definition vlc_media_library.h:389
unsigned int i_nb_video
The number of video for this folder.
Definition vlc_media_library.h:390
bool b_is_favorite
The folder's favorite state.
Definition vlc_media_library.h:393
int64_t i_duration
The sum of all the member durations of the folder in ms.
Definition vlc_media_library.h:392
Definition vlc_media_library.h:367
vlc_ml_genre_t p_items[]
Definition vlc_media_library.h:369
size_t i_nb_items
Definition vlc_media_library.h:368
Definition vlc_media_library.h:340
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:344
size_t i_nb_tracks
Definition vlc_media_library.h:343
bool b_is_favorite
Definition vlc_media_library.h:345
char * psz_name
Definition vlc_media_library.h:342
int64_t i_id
Definition vlc_media_library.h:341
Definition vlc_media_library.h:373
size_t i_nb_items
Definition vlc_media_library.h:374
vlc_ml_group_t p_items[]
Definition vlc_media_library.h:375
Definition vlc_media_library.h:251
uint32_t i_nb_video
Definition vlc_media_library.h:257
uint32_t i_nb_seen
Definition vlc_media_library.h:265
time_t i_creation_date
Definition vlc_media_library.h:270
int64_t i_id
Definition vlc_media_library.h:252
uint32_t i_nb_present_video
Definition vlc_media_library.h:261
uint32_t i_nb_present_audio
Definition vlc_media_library.h:262
char * psz_name
Definition vlc_media_library.h:254
uint32_t i_nb_unknown
Definition vlc_media_library.h:259
int64_t i_duration
Definition vlc_media_library.h:268
uint32_t i_nb_total_media
Definition vlc_media_library.h:256
uint32_t i_nb_present_media
Definition vlc_media_library.h:260
uint32_t i_nb_present_seen
Definition vlc_media_library.h:266
time_t i_last_modification_date
Definition vlc_media_library.h:271
uint32_t i_nb_present_unknown
Definition vlc_media_library.h:263
uint32_t i_nb_audio
Definition vlc_media_library.h:258
Definition vlc_media_library.h:149
size_t i_nb_items
Definition vlc_media_library.h:150
vlc_ml_label_t p_items[]
Definition vlc_media_library.h:151
Definition vlc_media_library.h:143
int64_t i_id
Definition vlc_media_library.h:144
char * psz_name
Definition vlc_media_library.h:145
Definition vlc_media_library.h:349
size_t i_nb_items
Definition vlc_media_library.h:350
vlc_ml_media_t p_items[]
Definition vlc_media_library.h:351
Definition vlc_media_library.h:211
int32_t i_year
Definition vlc_media_library.h:220
vlc_ml_movie_t movie
Definition vlc_media_library.h:237
int64_t i_duration
Definition vlc_media_library.h:222
char * psz_title
Definition vlc_media_library.h:226
int64_t i_album_id
Definition vlc_media_library.h:241
vlc_ml_file_list_t * p_files
Definition vlc_media_library.h:217
time_t i_last_played_date
Definition vlc_media_library.h:225
int i_track_nb
Definition vlc_media_library.h:244
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition vlc_media_library.h:229
vlc_ml_media_subtype_t i_subtype
Definition vlc_media_library.h:215
vlc_ml_show_episode_t show_episode
Definition vlc_media_library.h:236
int64_t i_id
Definition vlc_media_library.h:212
vlc_ml_media_type_t i_type
Definition vlc_media_library.h:214
struct vlc_ml_media_t::@244::@246 album_track
int i_disc_nb
Definition vlc_media_library.h:245
int64_t i_artist_id
Definition vlc_media_library.h:240
uint32_t i_playcount
Definition vlc_media_library.h:223
bool b_is_favorite
Definition vlc_media_library.h:231
bool b_is_public
Definition vlc_media_library.h:232
char * psz_filename
Definition vlc_media_library.h:227
vlc_ml_media_track_list_t * p_tracks
Definition vlc_media_library.h:218
double f_progress
Definition vlc_media_library.h:224
int64_t i_genre_id
Definition vlc_media_library.h:242
Definition vlc_media_library.h:205
size_t i_nb_items
Definition vlc_media_library.h:206
vlc_ml_media_track_t p_items[]
Definition vlc_media_library.h:207
Definition vlc_media_library.h:172
char * psz_language
Definition vlc_media_library.h:174
uint32_t i_nbChannels
Definition vlc_media_library.h:183
uint32_t i_height
Definition vlc_media_library.h:189
struct vlc_ml_media_track_t::@239::@243 s
uint32_t i_sampleRate
Definition vlc_media_library.h:184
struct vlc_ml_media_track_t::@239::@241 a
struct vlc_ml_media_track_t::@239::@242 v
uint32_t i_sarNum
Definition vlc_media_library.h:191
uint32_t i_fpsDen
Definition vlc_media_library.h:194
char * psz_codec
Definition vlc_media_library.h:173
vlc_ml_track_type_t i_type
Definition vlc_media_library.h:176
uint32_t i_fpsNum
Definition vlc_media_library.h:193
uint32_t i_sarDen
Definition vlc_media_library.h:192
uint32_t i_bitrate
Definition vlc_media_library.h:177
uint32_t i_width
Definition vlc_media_library.h:190
char * psz_encoding
Definition vlc_media_library.h:199
char * psz_description
Definition vlc_media_library.h:175
Definition vlc_media_library.h:117
char * psz_imdb_id
Definition vlc_media_library.h:119
char * psz_summary
Definition vlc_media_library.h:118
Definition vlc_media_library.h:698
char * deinterlace
Definition vlc_media_library.h:707
char * current_audio_track
Definition vlc_media_library.h:703
char * current_video_track
Definition vlc_media_library.h:702
float zoom
Definition vlc_media_library.h:700
int current_title
Definition vlc_media_library.h:701
char * aspect_ratio
Definition vlc_media_library.h:705
char * crop
Definition vlc_media_library.h:706
float rate
Definition vlc_media_library.h:699
char * current_subtitle_track
Definition vlc_media_library.h:704
char * video_filter
Definition vlc_media_library.h:708
Definition vlc_media_library.h:379
size_t i_nb_items
Definition vlc_media_library.h:380
vlc_ml_playlist_t p_items[]
Definition vlc_media_library.h:381
Definition vlc_media_library.h:275
unsigned int i_nb_media
Definition vlc_media_library.h:284
int64_t i_duration
Definition vlc_media_library.h:296
char * psz_artwork_mrl
Definition vlc_media_library.h:282
char * psz_mrl
Definition vlc_media_library.h:280
uint32_t i_nb_unknown
Definition vlc_media_library.h:287
bool b_is_favorite
Definition vlc_media_library.h:300
uint32_t i_nb_present_audio
Definition vlc_media_library.h:291
unsigned int i_nb_present_media
Definition vlc_media_library.h:289
char * psz_name
Definition vlc_media_library.h:278
uint32_t i_nb_present_video
Definition vlc_media_library.h:290
uint32_t i_nb_duration_unknown
Definition vlc_media_library.h:297
bool b_is_read_only
Definition vlc_media_library.h:299
uint32_t i_nb_audio
Definition vlc_media_library.h:286
uint32_t i_nb_present_unknown
Definition vlc_media_library.h:292
int64_t i_id
Definition vlc_media_library.h:276
uint32_t i_creation_date
Definition vlc_media_library.h:294
uint32_t i_nb_video
Definition vlc_media_library.h:285
Generic parameter set for medialibrary queries.
Definition vlc_media_library.h:452
bool b_favorite_only
Definition vlc_media_library.h:458
const char * psz_pattern
Definition vlc_media_library.h:453
bool b_desc
Definition vlc_media_library.h:457
vlc_ml_sorting_criteria_t i_sort
Definition vlc_media_library.h:456
uint32_t i_offset
Definition vlc_media_library.h:455
bool b_public_only
Definition vlc_media_library.h:459
uint32_t i_nbResults
Definition vlc_media_library.h:454
Definition vlc_media_library.h:123
char * psz_summary
Definition vlc_media_library.h:124
uint32_t i_season_number
Definition vlc_media_library.h:127
uint32_t i_episode_nb
Definition vlc_media_library.h:126
char * psz_tvdb_id
Definition vlc_media_library.h:125
Definition vlc_media_library.h:361
vlc_ml_show_t p_items[]
Definition vlc_media_library.h:363
size_t i_nb_items
Definition vlc_media_library.h:362
Definition vlc_media_library.h:131
unsigned int i_release_year
Definition vlc_media_library.h:137
char * psz_tvdb_id
Definition vlc_media_library.h:136
uint32_t i_nb_episodes
Definition vlc_media_library.h:138
char * psz_artwork_mrl
Definition vlc_media_library.h:135
uint32_t i_nb_seasons
Definition vlc_media_library.h:139
char * psz_name
Definition vlc_media_library.h:133
int64_t i_id
Definition vlc_media_library.h:132
char * psz_summary
Definition vlc_media_library.h:134
Definition vlc_media_library.h:107
char * psz_mrl
Definition vlc_media_library.h:108
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:113
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:1176
vlc_medialibrary_t * libvlc_MlCreate(libvlc_int_t *p_libvlc)
Definition medialibrary.c:102
static size_t vlc_ml_count_favorite_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2131
void vlc_ml_media_list_release(vlc_ml_media_list_t *p_list)
Definition medialibrary.c:325
void vlc_ml_show_list_release(vlc_ml_show_list_t *p_list)
Definition medialibrary.c:343
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:1748
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:1435
static int vlc_ml_clear_history(vlc_medialibrary_t *p_ml, vlc_ml_history_type_t type)
Definition vlc_media_library.h:1091
static int vlc_ml_playlist_rename(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, const char *name)
Definition vlc_media_library.h:1293
void * vlc_ml_get(vlc_medialibrary_t *p_ml, int i_query,...)
Definition medialibrary.c:422
static size_t vlc_ml_count_movies(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1676
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:1140
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:1943
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:1906
static vlc_ml_media_t * vlc_ml_get_media(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1300
static vlc_ml_media_t * vlc_ml_new_external_media(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1096
static vlc_ml_artist_list_t * vlc_ml_list_favorite_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2140
static int vlc_ml_playlist_set_favorite(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, bool b_favorite)
Definition vlc_media_library.h:2060
vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:74
@ VLC_ML_THUMBNAIL_SIZE_COUNT
Definition vlc_media_library.h:78
@ VLC_ML_THUMBNAIL_BANNER
Definition vlc_media_library.h:76
@ VLC_ML_THUMBNAIL_SMALL
Definition vlc_media_library.h:75
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:1525
void vlc_ml_album_list_release(vlc_ml_album_list_t *p_list)
Definition medialibrary.c:334
void vlc_ml_playlist_release(vlc_ml_playlist_t *p_playlist)
Definition medialibrary.c:264
static size_t vlc_ml_count_shows(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1685
vlc_ml_get_queries
Definition vlc_media_library.h:463
@ VLC_ML_GET_SHOW
arg1: Show ID; ret: vlc_ml_show_t*
Definition vlc_media_library.h:471
@ VLC_ML_GET_MEDIA_BY_MRL
arg1: Media MRL; ret: vlc_ml_media_t*
Definition vlc_media_library.h:465
@ VLC_ML_GET_GENRE
arg1: Genre ID; ret: vlc_ml_genre_t*
Definition vlc_media_library.h:470
@ VLC_ML_GET_INPUT_ITEM_BY_MRL
arg1: Media MRL; ret: input_item_t*
Definition vlc_media_library.h:467
@ VLC_ML_GET_GROUP
arg1: Group ID; ret: vlc_ml_group_t*
Definition vlc_media_library.h:473
@ VLC_ML_GET_PLAYLIST
arg1: Playlist ID; ret: vlc_ml_playlist_t*
Definition vlc_media_library.h:472
@ VLC_ML_GET_FOLDER
arg1: folder ID; ret: vlc_ml_folder_t*
Definition vlc_media_library.h:474
@ VLC_ML_GET_MEDIA
arg1: Media ID; ret: vlc_ml_media_t*
Definition vlc_media_library.h:464
@ VLC_ML_GET_ALBUM
arg1: Album ID; ret: vlc_ml_album_t*
Definition vlc_media_library.h:468
@ VLC_ML_GET_INPUT_ITEM
arg1: Media ID; ret: input_item_t*
Definition vlc_media_library.h:466
@ VLC_ML_GET_ARTIST
arg1: Artist ID; ret: vlc_ml_artist_t*
Definition vlc_media_library.h:469
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:1721
static vlc_ml_playlist_t * vlc_ml_playlist_create(vlc_medialibrary_t *p_ml, const char *name)
Definition vlc_media_library.h:1238
static int vlc_ml_remove_stream(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1112
static size_t vlc_ml_count_favorite_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2167
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:2026
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:1757
vlc_ml_control
Definition vlc_media_library.h:601
@ VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2: const vlc_ml_playback_states_all*
Definition vlc_media_library.h:636
@ VLC_ML_RESUME_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:620
@ VLC_ML_MEDIA_UPDATE_BOOKMARK
arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char*
Definition vlc_media_library.h:647
@ VLC_ML_MEDIA_REMOVE_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:645
@ VLC_ML_PLAYLIST_INSERT
arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; arg4: position; can fail
Definition vlc_media_library.h:653
@ VLC_ML_MEDIA_ADD_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:644
@ VLC_ML_NEW_EXTERNAL_MEDIA
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:626
@ VLC_ML_FOLDER_SET_FAVORITE
arg1: mrl (const char*); arg2: bool; res: can fail
Definition vlc_media_library.h:659
@ VLC_ML_RELOAD_FOLDER
Reload a specific folder, or all.
Definition vlc_media_library.h:613
@ VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*;
Definition vlc_media_library.h:634
@ VLC_ML_ADD_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:603
@ VLC_ML_MEDIA_SET_TYPE
arg1: media id; arg2: vlc_ml_media_type_t
Definition vlc_media_library.h:641
@ VLC_ML_PLAYLIST_APPEND
arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; can fail
Definition vlc_media_library.h:652
@ 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:639
@ VLC_ML_ARTIST_SET_FAVORITE
arg1: artist id; arg2: bool; can fail
Definition vlc_media_library.h:660
@ VLC_ML_REMOVE_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:604
@ VLC_ML_SET_FOLDER_PRIVATE
arg1: mrl (const char *); res: can't fail
Definition vlc_media_library.h:616
@ VLC_ML_GENRE_SET_FAVORITE
arg1: genre id; arg2: bool; can fail
Definition vlc_media_library.h:662
@ VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2(out): vlc_ml_playback_states_all*
Definition vlc_media_library.h:635
@ VLC_ML_BAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:605
@ VLC_ML_NEW_STREAM
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:627
@ VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: char**;
Definition vlc_media_library.h:633
@ VLC_ML_MEDIA_SET_FAVORITE
arg1: media id; arg2: bool
Definition vlc_media_library.h:643
@ VLC_ML_PLAYLIST_MOVE
arg1: playlist id; arg2: from; arg3: to; arg4: count; can fail
Definition vlc_media_library.h:654
@ VLC_ML_PLAYLIST_CREATE
arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail
Definition vlc_media_library.h:650
@ VLC_ML_SET_FOLDER_PUBLIC
arg1: mrl (const char *); res: can't fail
Definition vlc_media_library.h:615
@ VLC_ML_UNBAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:606
@ VLC_ML_PAUSE_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:619
@ VLC_ML_ALBUM_SET_FAVORITE
arg1: album id; arg2: bool; can fail
Definition vlc_media_library.h:661
@ VLC_ML_PLAYLIST_DELETE
arg1: playlist id; can fail
Definition vlc_media_library.h:651
@ VLC_ML_MEDIA_SET_GENRE_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:638
@ VLC_ML_PLAYLIST_SET_FAVORITE
arg1: playlist id; arg2: bool; can fail
Definition vlc_media_library.h:663
@ VLC_ML_CLEAR_HISTORY
arg1: vlc_ml_history_type_t; can't fail
Definition vlc_media_library.h:623
@ VLC_ML_MEDIA_SET_PLAYED
arg1: media id; arg2: bool
Definition vlc_media_library.h:642
@ VLC_ML_MEDIA_SET_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:637
@ VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS
arg1: media id
Definition vlc_media_library.h:646
@ VLC_ML_MEDIA_ADD_EXTERNAL_MRL
arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t)
Definition vlc_media_library.h:640
@ VLC_ML_REMOVE_STREAM
Definition vlc_media_library.h:629
@ VLC_ML_PLAYLIST_REMOVE
arg1: playlist id; arg2: position; arg3: count; can fail
Definition vlc_media_library.h:655
@ VLC_ML_MEDIA_UPDATE_PROGRESS
arg1: media id; arg2: playback position; can fail
Definition vlc_media_library.h:632
@ VLC_ML_IS_INDEXED
arg1: mrl (const char*) arg2 (out): bool*; res: can fail
Definition vlc_media_library.h:607
@ VLC_ML_PLAYLIST_RENAME
arg1: playlist id; arg2: const char*; can fail
Definition vlc_media_library.h:656
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:315
static int vlc_ml_artist_set_favorite(vlc_medialibrary_t *p_ml, int64_t i_artist_id, bool b_favorite)
Definition vlc_media_library.h:2045
void vlc_ml_label_list_release(vlc_ml_label_list_t *p_list)
Definition medialibrary.c:297
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_SUBTITLE
Definition vlc_media_library.h:70
@ VLC_ML_TRACK_TYPE_AUDIO
Definition vlc_media_library.h:69
@ VLC_ML_TRACK_TYPE_UNKNOWN
Definition vlc_media_library.h:67
static int vlc_ml_set_folder_public(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1071
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:1311
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:1888
static int vlc_ml_album_set_favorite(vlc_medialibrary_t *p_ml, int64_t i_album_id, bool b_favorite)
Definition vlc_media_library.h:2050
static int vlc_ml_reload_folder(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1066
static vlc_ml_media_list_t * vlc_ml_list_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_history_type_t type)
Definition vlc_media_library.h:1784
void vlc_ml_folder_release(vlc_ml_folder_t *p_folder)
Definition medialibrary.c:287
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:1133
vlc_ml_thumbnail_status_t
Definition vlc_media_library.h:82
@ VLC_ML_THUMBNAIL_STATUS_CRASH
Definition vlc_media_library.h:87
@ VLC_ML_THUMBNAIL_STATUS_MISSING
Definition vlc_media_library.h:83
@ VLC_ML_THUMBNAIL_STATUS_FAILURE
Definition vlc_media_library.h:85
@ VLC_ML_THUMBNAIL_STATUS_PERSISTENT_FAILURE
Definition vlc_media_library.h:86
@ VLC_ML_THUMBNAIL_STATUS_AVAILABLE
Definition vlc_media_library.h:84
static vlc_ml_album_t * vlc_ml_get_album(vlc_medialibrary_t *p_ml, int64_t i_album_id)
Definition vlc_media_library.h:1322
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:1357
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:1453
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:1775
static size_t vlc_ml_count_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1624
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:1640
void(* vlc_ml_callback_t)(void *p_data, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:924
static int vlc_ml_folder_set_favorite(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool b_favorite)
Definition vlc_media_library.h:2040
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:1534
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:1739
static int vlc_ml_remove_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1045
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:2012
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:1879
#define vlc_ml_instance_get(x)
Definition vlc_media_library.h:972
vlc_ml_event_type
Definition vlc_media_library.h:712
@ VLC_ML_EVENT_ARTIST_UPDATED
Definition vlc_media_library.h:726
@ VLC_ML_EVENT_BOOKMARKS_ADDED
Definition vlc_media_library.h:740
@ VLC_ML_EVENT_RESCAN_STARTED
Sent when an application requested rescan starts being processed.
Definition vlc_media_library.h:836
@ VLC_ML_EVENT_ALBUM_ADDED
Definition vlc_media_library.h:728
@ VLC_ML_EVENT_DISCOVERY_PROGRESS
Sent when a discovery or reload operation starts analyzing a new folder.
Definition vlc_media_library.h:762
@ VLC_ML_EVENT_BACKGROUND_IDLE_CHANGED
Sent when a discoverer or parser threads changes its idle state.
Definition vlc_media_library.h:810
@ VLC_ML_EVENT_BOOKMARKS_DELETED
Definition vlc_media_library.h:742
@ VLC_ML_EVENT_FOLDER_DELETED
Definition vlc_media_library.h:745
@ VLC_ML_EVENT_MEDIA_UPDATED
Definition vlc_media_library.h:723
@ VLC_ML_EVENT_ENTRY_POINT_ADDED
Sent when a new entry point gets added to the database.
Definition vlc_media_library.h:782
@ VLC_ML_EVENT_PLAYLIST_ADDED
Definition vlc_media_library.h:734
@ VLC_ML_EVENT_DISCOVERY_STARTED
A discovery started.
Definition vlc_media_library.h:756
@ VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED
Sent after a media thumbnail was generated, or if it's generation failed.
Definition vlc_media_library.h:825
@ VLC_ML_EVENT_GENRE_UPDATED
Definition vlc_media_library.h:738
@ VLC_ML_EVENT_ENTRY_POINT_REMOVED
Sent when an entry point removal request has been processed.
Definition vlc_media_library.h:789
@ VLC_ML_EVENT_HISTORY_CHANGED
Sent after the history gets changed.
Definition vlc_media_library.h:832
@ VLC_ML_EVENT_ENTRY_POINT_BANNED
Sent when an entry point ban request has been processed.
Definition vlc_media_library.h:796
@ VLC_ML_EVENT_GROUP_DELETED
Definition vlc_media_library.h:733
@ VLC_ML_EVENT_GROUP_ADDED
Definition vlc_media_library.h:731
@ VLC_ML_EVENT_GENRE_DELETED
Definition vlc_media_library.h:739
@ VLC_ML_EVENT_GENRE_ADDED
Definition vlc_media_library.h:737
@ VLC_ML_EVENT_ENTRY_POINT_UNBANNED
Sent when an entry point unban request has been processed.
Definition vlc_media_library.h:803
@ VLC_ML_EVENT_ALBUM_DELETED
Definition vlc_media_library.h:730
@ VLC_ML_EVENT_MEDIA_ADDED
Entity modification callbacks.
Definition vlc_media_library.h:722
@ VLC_ML_EVENT_DISCOVERY_FAILED
This event is sent when a discovery failed.
Definition vlc_media_library.h:772
@ VLC_ML_EVENT_ARTIST_DELETED
Definition vlc_media_library.h:727
@ VLC_ML_EVENT_BOOKMARKS_UPDATED
Definition vlc_media_library.h:741
@ VLC_ML_EVENT_PLAYLIST_DELETED
Definition vlc_media_library.h:736
@ VLC_ML_EVENT_FOLDER_ADDED
Definition vlc_media_library.h:743
@ VLC_ML_EVENT_PARSING_PROGRESS_UPDATED
Sent when the parsing progress percentage gets updated.
Definition vlc_media_library.h:818
@ VLC_ML_EVENT_ALBUM_UPDATED
Definition vlc_media_library.h:729
@ VLC_ML_EVENT_ARTIST_ADDED
Definition vlc_media_library.h:725
@ VLC_ML_EVENT_FOLDER_UPDATED
Definition vlc_media_library.h:744
@ VLC_ML_EVENT_FAVORITES_CHANGED
Sent when favorites list changes.
Definition vlc_media_library.h:842
@ VLC_ML_EVENT_PLAYLIST_UPDATED
Definition vlc_media_library.h:735
@ VLC_ML_EVENT_DISCOVERY_COMPLETED
Sent when all queued discovery operations are done being processed.
Definition vlc_media_library.h:766
@ VLC_ML_EVENT_GROUP_UPDATED
Definition vlc_media_library.h:732
@ VLC_ML_EVENT_MEDIA_DELETED
Definition vlc_media_library.h:724
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:1405
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:1712
static vlc_ml_media_list_t * vlc_ml_list_movies(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1667
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:1897
static vlc_ml_query_params_t vlc_ml_query_params_create(void)
Definition vlc_media_library.h:1029
static int vlc_ml_media_update_progress(vlc_medialibrary_t *p_ml, int64_t i_media_id, double progress)
Definition vlc_media_library.h:1117
static vlc_ml_artist_t * vlc_ml_get_artist(vlc_medialibrary_t *p_ml, int64_t i_artist_id)
Definition vlc_media_library.h:1327
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:1955
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:1480
static size_t vlc_ml_count_video_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1811
vlc_ml_history_type_t
Definition vlc_media_library.h:91
@ VLC_ML_HISTORY_TYPE_NETWORK
Definition vlc_media_library.h:94
@ VLC_ML_HISTORY_TYPE_LOCAL
Definition vlc_media_library.h:93
@ VLC_ML_HISTORY_TYPE_GLOBAL
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:1182
static size_t vlc_ml_count_favorite_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2077
static int vlc_ml_set_folder_private(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1076
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:1859
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:1390
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:1170
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:1766
static vlc_ml_playlist_list_t * vlc_ml_list_favorite_playlists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2176
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:1649
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:1128
static int vlc_ml_ban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1050
int vlc_ml_list(vlc_medialibrary_t *p_ml, int i_query, const vlc_ml_query_params_t *p_params,...)
Definition medialibrary.c:441
static size_t vlc_ml_count_favorite_videos(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2095
void vlc_ml_playlist_list_release(vlc_ml_playlist_list_t *p_list)
Definition medialibrary.c:370
vlc_ml_list_queries
Definition vlc_media_library.h:478
@ VLC_ML_LIST_FAVORITE_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:564
@ VLC_ML_LIST_FAVORITE_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:562
@ VLC_ML_LIST_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:483
@ VLC_ML_COUNT_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:512
@ VLC_ML_LIST_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:521
@ VLC_ML_LIST_FAVORITE_MEDIA
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:558
@ VLC_ML_LIST_SHOW_EPISODES
arg1: show id; arg2(out): vlc_ml_media_list_t**
Definition vlc_media_library.h:535
@ VLC_ML_LIST_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:489
@ VLC_ML_LIST_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:507
@ VLC_ML_LIST_GROUPS
arg1 (out): vlc_ml_group_list_t**
Definition vlc_media_library.h:497
@ VLC_ML_LIST_FOLDER_MEDIA
arg1: folder id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:554
@ VLC_ML_COUNT_FAVORITE_VIDEOS
arg1 (out): size_t*
Definition vlc_media_library.h:561
@ VLC_ML_COUNT_MOVIES
arg1 (out): size_t*
Definition vlc_media_library.h:486
@ VLC_ML_COUNT_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:549
@ VLC_ML_LIST_GENRE_ARTISTS
arg1: genre id; arg2 (out): vlc_ml_artist_list_t**
Definition vlc_media_library.h:527
@ VLC_ML_COUNT_GENRES
arg1 (out): size_t*
Definition vlc_media_library.h:492
@ VLC_ML_COUNT_SHOWS
arg1 (out): size_t*
Definition vlc_media_library.h:496
@ VLC_ML_LIST_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t**
Definition vlc_media_library.h:584
@ VLC_ML_LIST_MEDIA_BOOKMARKS
arg1: media id; arg2 (out): vlc_ml_bookmark_list_t**
Definition vlc_media_library.h:541
@ VLC_ML_LIST_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition vlc_media_library.h:499
@ VLC_ML_LIST_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t**
Definition vlc_media_library.h:582
@ VLC_ML_LIST_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:487
@ VLC_ML_COUNT_SHOW_EPISODES
arg1: show id; arg2(out): size_t*
Definition vlc_media_library.h:536
@ VLC_ML_LIST_FAVORITE_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:568
@ VLC_ML_COUNT_FAVORITE_MEDIA
arg1 (out): size_t*
Definition vlc_media_library.h:559
@ VLC_ML_LIST_SUBFOLDERS
arg1: parent id; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:552
@ VLC_ML_LIST_FAVORITE_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:572
@ VLC_ML_LIST_ARTISTS
arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:493
@ VLC_ML_COUNT_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:583
@ VLC_ML_COUNT_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:522
@ VLC_ML_LIST_AUDIO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:505
@ VLC_ML_COUNT_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:577
@ VLC_ML_COUNT_FAVORITE_GENRES
arg1 (out): size_t*
Definition vlc_media_library.h:569
@ VLC_ML_COUNT_GENRE_TRACKS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:530
@ VLC_ML_COUNT_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:524
@ VLC_ML_LIST_GENRE_TRACKS
arg1: genre id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:529
@ VLC_ML_COUNT_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:518
@ VLC_ML_LIST_MEDIA_LABELS
arg1: media id; arg2 (out): vlc_ml_label_list_t**
Definition vlc_media_library.h:539
@ VLC_ML_COUNT_AUDIOS
arg1 (out): size_t*
Definition vlc_media_library.h:488
@ VLC_ML_COUNT_SUBFOLDERS
arg1: parent id; arg2 (out): size_t*
Definition vlc_media_library.h:553
@ VLC_ML_LIST_HISTORY
arg1 vlc_ml_history_type_t; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:501
@ VLC_ML_COUNT_ARTISTS
arg1 bool: includeAll; arg2 (out): size_t*
Definition vlc_media_library.h:494
@ VLC_ML_LIST_GENRE_ALBUMS
arg1: genre id; arg2 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:531
@ VLC_ML_COUNT_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:585
@ VLC_ML_COUNT_GENRE_ALBUMS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:532
@ VLC_ML_COUNT_MEDIA_LABELS
arg1: media id; arg2 (out): size_t*
Definition vlc_media_library.h:540
@ VLC_ML_COUNT_FAVORITE_ARTISTS
arg1 (out): size_t*
Definition vlc_media_library.h:567
@ VLC_ML_LIST_GROUP_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:544
@ VLC_ML_COUNT_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:579
@ VLC_ML_LIST_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:578
@ VLC_ML_LIST_FAVORITE_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition vlc_media_library.h:570
@ VLC_ML_LIST_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:548
@ VLC_ML_LIST_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:509
@ VLC_ML_COUNT_GROUP_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:545
@ VLC_ML_COUNT_VIDEOS
arg1 (out): size_t*
Definition vlc_media_library.h:484
@ VLC_ML_COUNT_MEDIA
arg1 (out): size_t*
Definition vlc_media_library.h:482
@ VLC_ML_LIST_MOVIES
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:485
@ VLC_ML_COUNT_FAVORITE_ALBUMS
arg1 (out): size_t*
Definition vlc_media_library.h:565
@ VLC_ML_LIST_SHOWS
arg1 (out): vlc_ml_show_list_t**
Definition vlc_media_library.h:495
@ VLC_ML_LIST_FAVORITE_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:560
@ VLC_ML_COUNT_FOLDER_MEDIA
arg1: folder id; arg2 (out): size_t*
Definition vlc_media_library.h:555
@ VLC_ML_COUNT_AUDIO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:506
@ VLC_ML_COUNT_FOLDERS
arg1 (out): size_t*
Definition vlc_media_library.h:510
@ VLC_ML_LIST_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:580
@ VLC_ML_COUNT_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): size_t*
Definition vlc_media_library.h:508
@ VLC_ML_LIST_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:491
@ VLC_ML_LIST_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:515
@ VLC_ML_COUNT_ALBUMS
arg1 (out): size_t*
Definition vlc_media_library.h:490
@ VLC_ML_LIST_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:511
@ VLC_ML_COUNT_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:581
@ VLC_ML_LIST_FAVORITE_ARTISTS
arg1 (out): vlc_ml_artist_list_t**
Definition vlc_media_library.h:566
@ VLC_ML_COUNT_VIDEO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:504
@ VLC_ML_LIST_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:523
@ VLC_ML_COUNT_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:516
@ VLC_ML_COUNT_FAVORITE_FOLDERS
arg1 (out): size_t*
Definition vlc_media_library.h:573
@ VLC_ML_LIST_MEDIA
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:481
@ VLC_ML_COUNT_HISTORY
arg1 vlc_ml_history_type_t; arg2 (out): size_t*
Definition vlc_media_library.h:502
@ VLC_ML_LIST_VIDEO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:503
@ VLC_ML_COUNT_PLAYLISTS
arg1 (out): size_t*
Definition vlc_media_library.h:500
@ VLC_ML_COUNT_FAVORITE_PLAYLISTS
arg1 (out): size_t*
Definition vlc_media_library.h:571
@ VLC_ML_COUNT_GROUPS
arg1 (out): size_t*
Definition vlc_media_library.h:498
@ VLC_ML_LIST_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:517
@ VLC_ML_COUNT_GENRE_ARTISTS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:528
@ VLC_ML_LIST_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t**
Definition vlc_media_library.h:576
@ VLC_ML_COUNT_FAVORITE_AUDIOS
arg1 (out): size_t*
Definition vlc_media_library.h:563
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:1924
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:1221
#define vlc_ml_release(OBJ)
Definition vlc_media_library.h:2217
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:1420
static vlc_ml_genre_t * vlc_ml_get_genre(vlc_medialibrary_t *p_ml, int64_t i_genre_id)
Definition vlc_media_library.h:1332
static vlc_ml_media_list_t * vlc_ml_list_audio_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1820
static int vlc_ml_playlist_remove(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_position, uint32_t i_count)
Definition vlc_media_library.h:1285
vlc_ml_playback_state
User playback settings.
Definition vlc_media_library.h:677
@ VLC_ML_PLAYBACK_STATE_PROGRAM
Definition vlc_media_library.h:682
@ VLC_ML_PLAYBACK_STATE_TITLE
Definition vlc_media_library.h:680
@ VLC_ML_PLAYBACK_STATE_DEINTERLACE
Definition vlc_media_library.h:687
@ VLC_ML_PLAYBACK_STATE_SPEED
Definition vlc_media_library.h:679
@ VLC_ML_PLAYBACK_STATE_VIDEO_FILTER
Definition vlc_media_library.h:688
@ VLC_ML_PLAYBACK_STATE_AUDIO_DELAY
Definition vlc_media_library.h:691
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_DELAY
Definition vlc_media_library.h:693
@ VLC_ML_PLAYBACK_STATE_RATING
Definition vlc_media_library.h:678
@ VLC_ML_PLAYBACK_STATE_APP_SPECIFIC
Definition vlc_media_library.h:694
@ VLC_ML_PLAYBACK_STATE_ASPECT_RATIO
Definition vlc_media_library.h:684
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_TRACK
Definition vlc_media_library.h:692
@ VLC_ML_PLAYBACK_STATE_GAIN
Definition vlc_media_library.h:690
@ VLC_ML_PLAYBACK_STATE_AUDIO_TRACK
Definition vlc_media_library.h:689
@ VLC_ML_PLAYBACK_STATE_CROP
Definition vlc_media_library.h:686
@ VLC_ML_PLAYBACK_STATE_CHAPTER
Definition vlc_media_library.h:681
@ VLC_ML_PLAYBACK_STATE_VIDEO_TRACK
Definition vlc_media_library.h:683
@ VLC_ML_PLAYBACK_STATE_ZOOM
Definition vlc_media_library.h:685
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:1934
static int vlc_ml_resume_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1086
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:1915
void vlc_ml_album_release(vlc_ml_album_t *p_album)
Definition medialibrary.c:222
static vlc_ml_show_t * vlc_ml_get_show(vlc_medialibrary_t *p_ml, int64_t i_show_id)
Definition vlc_media_library.h:1337
static int vlc_ml_playlist_append(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, const int64_t *i_media_ids, size_t i_media_id_count)
Definition vlc_media_library.h:1259
void vlc_ml_folder_list_release(vlc_ml_folder_list_t *p_list)
Definition medialibrary.c:379
static int vlc_ml_playlist_insert(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, const int64_t *i_media_ids, size_t i_media_id_count, uint32_t i_position)
Definition vlc_media_library.h:1267
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:1195
void vlc_ml_artist_release(vlc_ml_artist_t *p_artist)
Definition medialibrary.c:206
static size_t vlc_ml_count_favorite_artists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2149
static vlc_ml_folder_t * vlc_ml_get_folder(vlc_medialibrary_t *p_ml, int64_t i_folder_id)
Definition vlc_media_library.h:1347
static size_t vlc_ml_count_audio_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1829
static size_t vlc_ml_count_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_history_type_t type)
Definition vlc_media_library.h:1793
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:1188
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:1471
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:1615
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:1982
void vlc_ml_bookmark_list_release(vlc_ml_bookmark_list_t *p_list)
Definition medialibrary.c:413
static size_t vlc_ml_count_favorite_audios(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2113
static vlc_ml_group_t * vlc_ml_get_group(vlc_medialibrary_t *p_ml, int64_t i_group_id)
Definition vlc_media_library.h:1342
static vlc_ml_media_list_t * vlc_ml_list_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1543
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:1214
void vlc_ml_genre_release(vlc_ml_genre_t *p_genre)
Definition medialibrary.c:230
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:1694
void vlc_ml_genre_list_release(vlc_ml_genre_list_t *p_list)
Definition medialibrary.c:352
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:1868
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:1147
static vlc_ml_media_t * vlc_ml_new_stream(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1104
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:1375
static vlc_ml_genre_list_t * vlc_ml_list_favorite_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2158
static int vlc_ml_genre_set_favorite(vlc_medialibrary_t *p_ml, int64_t i_genre_id, bool b_favorite)
Definition vlc_media_library.h:2055
static int vlc_ml_media_remove_all_bookmarks(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1231
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:1996
static int vlc_ml_is_indexed(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool *p_res)
Definition vlc_media_library.h:1060
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:1597
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:1498
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:1561
vlc_ml_playlist_type_t
Definition vlc_media_library.h:98
@ VLC_ML_PLAYLIST_TYPE_VIDEO_ONLY
Playlist containing video tracks only.
Definition vlc_media_library.h:103
@ VLC_ML_PLAYLIST_TYPE_ALL
Playlist containing any kind of tracks.
Definition vlc_media_library.h:99
@ VLC_ML_PLAYLIST_TYPE_AUDIO_ONLY
Playlist containing audio tracks only.
Definition vlc_media_library.h:102
@ VLC_ML_PLAYLIST_TYPE_AUDIO
Playlist containing at least one audio track.
Definition vlc_media_library.h:100
@ VLC_ML_PLAYLIST_TYPE_VIDEO
Playlist containing at least one video track.
Definition vlc_media_library.h:101
static vlc_ml_playlist_t * vlc_ml_get_playlist(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition vlc_media_library.h:1352
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:1703
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:1489
static int vlc_ml_playlist_move(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_from, uint32_t i_to, uint32_t i_count)
Definition vlc_media_library.h:1276
void vlc_ml_file_list_release(vlc_ml_file_list_t *p_list)
Definition medialibrary.c:306
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:1841
void vlc_ml_bookmark_release(vlc_ml_bookmark_t *p_bookmark)
Definition medialibrary.c:405
void vlc_ml_playback_states_all_release(vlc_ml_playback_states_all *prefs)
Definition medialibrary.c:388
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:1316
static size_t vlc_ml_count_favorite_playlists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2185
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:1123
static int vlc_ml_pause_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1081
static vlc_ml_media_list_t * vlc_ml_list_video_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1802
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:1160
static vlc_ml_media_list_t * vlc_ml_list_favorite_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2068
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:1658
static int vlc_ml_playlist_delete(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition vlc_media_library.h:1251
static int vlc_ml_unban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1055
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:1207
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:1462
void vlc_ml_show_release(vlc_ml_show_t *p_show)
Definition medialibrary.c:149
static vlc_ml_folder_list_t * vlc_ml_list_favorite_folders(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2194
static size_t vlc_ml_count_favorite_folders(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2203
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:1516
static size_t vlc_ml_count_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1606
vlc_ml_sorting_criteria_t
Definition vlc_media_library.h:426
@ VLC_ML_SORTING_LASTMODIFICATIONDATE
Definition vlc_media_library.h:436
@ VLC_ML_SORTING_INSERTIONDATE
Definition vlc_media_library.h:435
@ VLC_ML_SORTING_PLAYCOUNT
Definition vlc_media_library.h:440
@ VLC_ML_SORTING_ARTIST
Definition vlc_media_library.h:439
@ VLC_ML_SORTING_ALPHA
Definition vlc_media_library.h:433
@ VLC_ML_SORTING_TRACKNUMBER
Definition vlc_media_library.h:443
@ VLC_ML_SORTING_FILENAME
Definition vlc_media_library.h:442
@ VLC_ML_SORTING_ALBUM
Definition vlc_media_library.h:441
@ VLC_ML_SORTING_DEFAULT
Definition vlc_media_library.h:432
@ VLC_ML_SORTING_DURATION
Definition vlc_media_library.h:434
@ VLC_ML_SORTING_RELEASEDATE
Definition vlc_media_library.h:437
@ VLC_ML_SORTING_FILESIZE
Definition vlc_media_library.h:438
void vlc_ml_media_release(vlc_ml_media_t *p_media)
Definition medialibrary.c:273
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:1588
static int vlc_ml_add_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1040
static size_t vlc_ml_count_groups(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1850
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:1444
void vlc_ml_group_release(vlc_ml_group_t *p_group)
Definition medialibrary.c:247
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:1730
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:1153
static vlc_ml_album_list_t * vlc_ml_list_favorite_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2122
static vlc_ml_media_list_t * vlc_ml_list_favorite_videos(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2086
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:1366
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:1579
static vlc_ml_media_list_t * vlc_ml_list_favorite_audios(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:2104
static size_t vlc_ml_count_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1552
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:1507
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:1570
vlc_ml_parent_type
Definition vlc_media_library.h:589
@ VLC_ML_PARENT_ARTIST
Definition vlc_media_library.h:592
@ VLC_ML_PARENT_ALBUM
Definition vlc_media_library.h:591
@ VLC_ML_PARENT_GROUP
Definition vlc_media_library.h:595
@ VLC_ML_PARENT_FOLDER
Definition vlc_media_library.h:596
@ VLC_ML_PARENT_UNKNOWN
Definition vlc_media_library.h:590
@ VLC_ML_PARENT_PLAYLIST
Definition vlc_media_library.h:597
@ VLC_ML_PARENT_SHOW
Definition vlc_media_library.h:593
@ VLC_ML_PARENT_GENRE
Definition vlc_media_library.h:594
void vlc_ml_group_list_release(vlc_ml_group_list_t *p_list)
Definition medialibrary.c:361
static size_t vlc_ml_count_folders(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1968
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:1305
char psz_value[8]
Definition vout_intf.c:110