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
447/**
448 * Generic parameter set for medialibrary queries.
449 *
450 * \warning Should only be default instanciated with ::vlc_ml_query_params_create().
451 */
452typedef struct vlc_ml_query_params_t
465 VLC_ML_GET_MEDIA, /**< arg1: Media ID; ret: vlc_ml_media_t* */
466 VLC_ML_GET_MEDIA_BY_MRL, /**< arg1: Media MRL; ret: vlc_ml_media_t* */
467 VLC_ML_GET_INPUT_ITEM, /**< arg1: Media ID; ret: input_item_t* */
468 VLC_ML_GET_INPUT_ITEM_BY_MRL, /**< arg1: Media MRL; ret: input_item_t* */
469 VLC_ML_GET_ALBUM, /**< arg1: Album ID; ret: vlc_ml_album_t* */
470 VLC_ML_GET_ARTIST, /**< arg1: Artist ID; ret: vlc_ml_artist_t* */
471 VLC_ML_GET_GENRE, /**< arg1: Genre ID; ret: vlc_ml_genre_t* */
472 VLC_ML_GET_SHOW, /**< arg1: Show ID; ret: vlc_ml_show_t* */
473 VLC_ML_GET_PLAYLIST, /**< arg1: Playlist ID; ret: vlc_ml_playlist_t* */
474 VLC_ML_GET_GROUP, /**< arg1: Group ID; ret: vlc_ml_group_t* */
475 VLC_ML_GET_FOLDER, /**< arg1: folder ID; ret: vlc_ml_folder_t* */
477
480 /* General listing: */
481
482 VLC_ML_LIST_MEDIA, /**< arg1 (out): vlc_ml_media_list_t** */
483 VLC_ML_COUNT_MEDIA, /**< arg1 (out): size_t* */
484 VLC_ML_LIST_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
485 VLC_ML_COUNT_VIDEOS, /**< arg1 (out): size_t* */
486 VLC_ML_LIST_MOVIES, /**< arg1 (out): vlc_ml_media_list_t** */
487 VLC_ML_COUNT_MOVIES, /**< arg1 (out): size_t* */
488 VLC_ML_LIST_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
489 VLC_ML_COUNT_AUDIOS, /**< arg1 (out): size_t* */
490 VLC_ML_LIST_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
491 VLC_ML_COUNT_ALBUMS, /**< arg1 (out): size_t* */
492 VLC_ML_LIST_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
493 VLC_ML_COUNT_GENRES, /**< arg1 (out): size_t* */
494 VLC_ML_LIST_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t** */
495 VLC_ML_COUNT_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): size_t* */
496 VLC_ML_LIST_SHOWS, /**< arg1 (out): vlc_ml_show_list_t** */
497 VLC_ML_COUNT_SHOWS, /**< arg1 (out): size_t* */
498 VLC_ML_LIST_GROUPS, /**< arg1 (out): vlc_ml_group_list_t** */
499 VLC_ML_COUNT_GROUPS, /**< arg1 (out): size_t* */
500 VLC_ML_LIST_PLAYLISTS, /**< arg1 (out): vlc_ml_playlist_list_t** */
501 VLC_ML_COUNT_PLAYLISTS, /**< arg1 (out): size_t* */
502 VLC_ML_LIST_HISTORY, /**< arg1 vlc_ml_history_type_t; arg2 (out): vlc_ml_media_list_t** */
503 VLC_ML_COUNT_HISTORY, /**< arg1 vlc_ml_history_type_t; arg2 (out): size_t* */
504 VLC_ML_LIST_VIDEO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
505 VLC_ML_COUNT_VIDEO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
506 VLC_ML_LIST_AUDIO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
507 VLC_ML_COUNT_AUDIO_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
508 VLC_ML_LIST_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t** */
509 VLC_ML_COUNT_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): size_t* */
510 VLC_ML_LIST_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
511 VLC_ML_COUNT_FOLDERS, /**< arg1 (out): size_t* */
512 VLC_ML_LIST_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
513 VLC_ML_COUNT_FOLDERS_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
515 /* Album specific listings */
516 VLC_ML_LIST_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): vlc_ml_media_list_t** */
517 VLC_ML_COUNT_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): size_t* */
518 VLC_ML_LIST_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): vlc_ml_album_list_t** */
519 VLC_ML_COUNT_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): size_t* */
521 /* Artist specific listings */
522 VLC_ML_LIST_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): vlc_ml_album_list_t** */
523 VLC_ML_COUNT_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): size_t* */
524 VLC_ML_LIST_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): vlc_ml_media_list_t** */
525 VLC_ML_COUNT_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): size_t* */
527 /* Genre specific listings */
528 VLC_ML_LIST_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): vlc_ml_artist_list_t** */
529 VLC_ML_COUNT_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): size_t* */
530 VLC_ML_LIST_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): vlc_ml_media_list_t** */
531 VLC_ML_COUNT_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): size_t* */
532 VLC_ML_LIST_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): vlc_ml_album_list_t** */
533 VLC_ML_COUNT_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): size_t* */
535 /* Show specific listings */
536 VLC_ML_LIST_SHOW_EPISODES, /**< arg1: show id; arg2(out): vlc_ml_media_list_t** */
537 VLC_ML_COUNT_SHOW_EPISODES, /**< arg1: show id; arg2(out): size_t* */
539 /* Media specific listings */
540 VLC_ML_LIST_MEDIA_LABELS, /**< arg1: media id; arg2 (out): vlc_ml_label_list_t** */
541 VLC_ML_COUNT_MEDIA_LABELS, /**< arg1: media id; arg2 (out): size_t* */
542 VLC_ML_LIST_MEDIA_BOOKMARKS, /**< arg1: media id; arg2 (out): vlc_ml_bookmark_list_t** */
544 /* Groups specific listings */
545 VLC_ML_LIST_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
546 VLC_ML_COUNT_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
548 /* Playlist specific listings */
549 VLC_ML_LIST_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
550 VLC_ML_COUNT_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
552 /* Folder specific listings */
553 VLC_ML_LIST_SUBFOLDERS, /**< arg1: parent id; arg2 (out): vlc_ml_folder_list_t** */
554 VLC_ML_COUNT_SUBFOLDERS, /**< arg1: parent id; arg2 (out): size_t* */
555 VLC_ML_LIST_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): vlc_ml_media_list_t** */
556 VLC_ML_COUNT_FOLDER_MEDIA, /**< arg1: folder id; arg2 (out): size_t* */
558 /* Favorites listings */
559 VLC_ML_LIST_FAVORITE_MEDIA, /**< arg1 (out): vlc_ml_media_list_t** */
560 VLC_ML_COUNT_FAVORITE_MEDIA, /**< arg1 (out): size_t* */
561 VLC_ML_LIST_FAVORITE_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
562 VLC_ML_COUNT_FAVORITE_VIDEOS, /**< arg1 (out): size_t* */
563 VLC_ML_LIST_FAVORITE_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
564 VLC_ML_COUNT_FAVORITE_AUDIOS, /**< arg1 (out): size_t* */
565 VLC_ML_LIST_FAVORITE_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
566 VLC_ML_COUNT_FAVORITE_ALBUMS, /**< arg1 (out): size_t* */
567 VLC_ML_LIST_FAVORITE_ARTISTS, /**< arg1 (out): vlc_ml_artist_list_t** */
568 VLC_ML_COUNT_FAVORITE_ARTISTS,/**< arg1 (out): size_t* */
569 VLC_ML_LIST_FAVORITE_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
570 VLC_ML_COUNT_FAVORITE_GENRES, /**< arg1 (out): size_t* */
571 VLC_ML_LIST_FAVORITE_PLAYLISTS,/**< arg1 (out): vlc_ml_playlist_list_t** */
572 VLC_ML_COUNT_FAVORITE_PLAYLISTS,/**< arg1 (out): size_t* */
573 VLC_ML_LIST_FAVORITE_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
574 VLC_ML_COUNT_FAVORITE_FOLDERS,/**< arg1 (out): size_t* */
576 /* Children entities listing */
577 VLC_ML_LIST_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t** */
578 VLC_ML_COUNT_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
579 VLC_ML_LIST_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
580 VLC_ML_COUNT_VIDEO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
581 VLC_ML_LIST_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
582 VLC_ML_COUNT_AUDIO_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
583 VLC_ML_LIST_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t** */
584 VLC_ML_COUNT_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
585 VLC_ML_LIST_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t** */
586 VLC_ML_COUNT_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
588
603 /* Adds a folder to discover through the medialibrary */
604 VLC_ML_ADD_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
605 VLC_ML_REMOVE_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
606 VLC_ML_BAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
607 VLC_ML_UNBAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
608 VLC_ML_IS_INDEXED, /**< arg1: mrl (const char*) arg2 (out): bool*; res: can fail */
609 /**
610 * Reload a specific folder, or all.
611 * arg1: mrl (const char*), NULL to reload all folders
612 * res: can't fail
613 */
616 VLC_ML_SET_FOLDER_PUBLIC, /**< arg1: mrl (const char *); res: can't fail */
617 VLC_ML_SET_FOLDER_PRIVATE, /**< arg1: mrl (const char *); res: can't fail */
619 /* Pause/resume background operations, such as media discovery & media analysis */
620 VLC_ML_PAUSE_BACKGROUND, /**< no args; can't fail */
621 VLC_ML_RESUME_BACKGROUND, /**< no args; can't fail */
623 /* Misc operations */
624 VLC_ML_CLEAR_HISTORY, /**< arg1: vlc_ml_history_type_t; can't fail */
626 /* Create media */
627 VLC_ML_NEW_EXTERNAL_MEDIA, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
628 VLC_ML_NEW_STREAM, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
632 /* Media management */
633 VLC_ML_MEDIA_UPDATE_PROGRESS, /**< arg1: media id; arg2: playback position; can fail */
634 VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: char**; */
635 VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*; */
636 VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2(out): vlc_ml_playback_states_all* */
637 VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2: const vlc_ml_playback_states_all* */
638 VLC_ML_MEDIA_SET_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
639 VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
640 VLC_ML_MEDIA_GENERATE_THUMBNAIL, /**< arg1: media id; arg2: vlc_ml_thumbnail_size_t; arg3: width; arg4: height; arg5: position */
641 VLC_ML_MEDIA_ADD_EXTERNAL_MRL, /**< arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t) */
642 VLC_ML_MEDIA_SET_TYPE, /**< arg1: media id; arg2: vlc_ml_media_type_t */
643 VLC_ML_MEDIA_SET_PLAYED, /**< arg1: media id; arg2: bool */
644 VLC_ML_MEDIA_SET_FAVORITE, /**< arg1: media id; arg2: bool */
645 VLC_ML_MEDIA_ADD_LABEL, /**< arg1: media id; arg2: label name */
646 VLC_ML_MEDIA_REMOVE_LABEL, /**< arg1: media id; arg2: label name */
647 VLC_ML_MEDIA_ADD_BOOKMARK, /**< arg1: media id; arg2: int64_t */
648 VLC_ML_MEDIA_REMOVE_BOOKMARK, /**< arg1: media id; arg2: int64_t */
649 VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, /**< arg1: media id */
650 VLC_ML_MEDIA_UPDATE_BOOKMARK, /**< arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char* */
652 /* Playlist management */
653 VLC_ML_PLAYLIST_CREATE, /**< arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail */
654 VLC_ML_PLAYLIST_DELETE, /**< arg1: playlist id; can fail */
655 VLC_ML_PLAYLIST_APPEND, /**< arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; can fail */
656 VLC_ML_PLAYLIST_INSERT, /**< arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; arg4: position; can fail */
657 VLC_ML_PLAYLIST_MOVE, /**< arg1: playlist id; arg2: from; arg3: to; arg4: count; can fail */
658 VLC_ML_PLAYLIST_REMOVE, /**< arg1: playlist id; arg2: position; arg3: count; can fail */
659 VLC_ML_PLAYLIST_RENAME, /**< arg1: playlist id; arg2: const char*; can fail */
661 /* Set Favorites */
662 VLC_ML_FOLDER_SET_FAVORITE, /**< arg1: mrl (const char*); arg2: bool; res: can fail */
663 VLC_ML_ARTIST_SET_FAVORITE, /**< arg1: artist id; arg2: bool; can fail */
664 VLC_ML_ALBUM_SET_FAVORITE, /**< arg1: album id; arg2: bool; can fail */
665 VLC_ML_GENRE_SET_FAVORITE, /**< arg1: genre id; arg2: bool; can fail */
666 VLC_ML_PLAYLIST_SET_FAVORITE, /**< arg1: playlist id; arg2: bool; can fail */
668 VLC_ML_CLEAR_HISTORY_BY_MEDIA_TYPE, /**< arg1: vlc_ml_media_type_t (audio or video); can fail */
670
671/**
672 * User playback settings.
673 * All values/units are up to the caller and are not interpreted by the media
674 * library.
675 * All values are stored and returned as strings.
676 * When calling vlc_medialibrary_t::pf_control with vlc_ml_MEDIA_GET_MEDIA_PLAYBACK_STATE,
677 * the value will be returned stored in the provided char**. If the state was
678 * not set yet, NULL will be returned.
679 * When setting a state, NULL can be provided as a value to unset it.
680 */
702typedef struct vlc_ml_playback_states_all
718 /**
719 * Entity modification callbacks. The affected entity will be passed:
720 * - As a `vlc_ml_<type>_t`, depending on the type of the modified/inserted
721 * entity, in `vlc_ml_event_t::modification::p_<type>`
722 * for ADDED and UPDATED variants.
723 * - as an id, in ::vlc_ml_event_t::deletion::i_entity_id
724 * When _DELETED callbacks get invoked, the entity will already have been
725 * deleted from the database, and cannot be retrieved anymore
726 */
751 /**
752 * A discovery started.
753 *
754 * This event will be emitted when the media library starts discovering a
755 * scheduled entry point.
756 * If more than a single entry point are queued, this event won't be fired
757 * again until all operations are completed and a new operation is scheduled.
758 * Once all currently queued operations are done
759 * VLC_ML_EVENT_DISCOVERY_COMPLETED will be emitted.
760 */
762 /**
763 * Sent when a discovery or reload operation starts analyzing a new folder.
764 * The discovered entry point is stored in
765 * vlc_ml_event_t::discovery_progress::psz_entry_point.
766 */
768 /**
769 * Sent when all queued discovery operations are done being processed.
770 */
772 /**
773 * This event is sent when a discovery failed. The entry point that failed to
774 * be discovered is stored in
775 * vlc_ml_event_t::discovery_failed::psz_entry_point
776 */
778 /**
779 * Sent when a new entry point gets added to the database.
780 * The entry point that was added is stored in
781 * vlc::ml_event_t::entry_point_added::psz_entry_point, and the success or failure
782 * state is stored in vlc_ml_event_t::entry_point_added::b_success
783 * If successful, this event won't be emitted again for this entry point.
784 * In case of failure, this event will be fired again if the same entry point
785 * is queued for discovery again.
786 */
788 /**
789 * Sent when an entry point removal request has been processed.
790 * The removed entry point is stored in
791 * vlc_ml_event_t::entry_point_removed::psz_entry_point and the success or failure
792 * state is stored in vlc_ml_event_t::entry_point_removed::b_success
793 */
795 /**
796 * Sent when an entry point ban request has been processed.
797 * The banned entry point is stored in
798 * vlc_ml_event_t::entry_point_banned::psz_entry_point and the operation success
799 * state is stored in vlc_ml_event_t::entry_point_banned::b_success
800 */
802 /**
803 * Sent when an entry point unban request has been processed.
804 * The unbanned entry point is stored in
805 * vlc_ml_event_t::entry_point_unbanned::psz_entry_point and the operation success
806 * state is stored in vlc_ml_event_t::entry_point_unbanned::b_success
807 */
809 /**
810 * Sent when a discoverer or parser threads changes its idle state.
811 * The idle state is stored in vlc_ml_event_t::background_idle_changed.b_idle.
812 * False means at least one background thread is in running, true means
813 * both discoverer & parser threads are paused.
814 */
816 /**
817 * Sent when the parsing progress percentage gets updated.
818 * The percentage is stored as a [0;100] integer, in
819 * vlc_ml_event_t::parsing_progress::i_percent
820 * This value might decrease as more media get discovered, but it will only
821 * increase once all discovery operations are completed.
822 */
824 /**
825 * Sent after a media thumbnail was generated, or if it's generation failed.
826 * The media is stored in vlc_ml_event_t::media_thumbnail_generated::p_media
827 * and the success state is stored in
828 * vlc_ml_event_t::media_thumbnail_generated::b_success
829 */
831 /**
832 * Sent after the history gets changed. It can be either cleaned, or simply
833 * modified because a media was recently played/removed from the history.
834 * The history type (global/local/network) is stored in
835 * vlc_ml_event_t::history_changed::history_type
836 */
838 /**
839 * Sent when an application requested rescan starts being processed.
840 */
842 /**
843 * Sent when favorites list changes. This includes when entities are
844 * marked/unmarked as favorites.
845 * The entity type and id are stored in vlc_ml_event_t::favorites_changed
846 */
849
850typedef struct vlc_ml_event_t
852 int i_type;
853 union
854 {
855 struct
856 {
857 const char* psz_entry_point;
859 struct
860 {
861 const char* psz_entry_point;
863 struct
864 {
865 const char* psz_entry_point;
866 bool b_success;
868 struct
869 {
870 const char* psz_entry_point;
871 bool b_success;
873 struct
874 {
875 const char* psz_entry_point;
876 bool b_success;
878 struct
879 {
880 const char* psz_entry_point;
881 bool b_success;
883 struct
884 {
885 uint8_t i_percent;
887 union
888 {
889 const vlc_ml_media_t* p_media;
898 struct
899 {
900 int64_t i_entity_id;
902 struct
903 {
904 int64_t i_entity_id;
905 } deletion;
906 struct
907 {
908 bool b_idle;
910 struct
911 {
912 const vlc_ml_media_t* p_media;
916 struct
917 {
920 struct
921 {
922 int64_t i_entity_id;
923 int i_entity_type; /**< One of VLC_ML_PARENT_* values */
924 bool b_favorite; /**< true if marked as favorite, false if unmarked */
926 };
929typedef void (*vlc_ml_callback_t)( void* p_data, const vlc_ml_event_t* p_event );
931typedef struct vlc_medialibrary_callbacks_t
938 struct vlc_object_t obj;
942 void* p_sys;
944 int (*pf_control)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
945 /**
946 * List some entities from the medialibrary.
947 *
948 * \param p_ml The medialibrary module instance.
949 * \param i_query The type search to be performed. \see vlc_ml_list enumeration
950 * \param p_params A pointer to a vlc_ml_query_params_t structure, or NULL for
951 * the default parameters (alphabetical ascending sort, no pagination)
952 *
953 * \return VLC_SUCCESS or an error code
954 *
955 * Refer to the individual list of vlc_ml_list requests for the additional
956 * per-query input/output parameters values & types
957 */
958 int (*pf_list)( struct vlc_medialibrary_module_t* p_ml, int i_query,
959 const vlc_ml_query_params_t* p_params, va_list args );
960
961 /**
962 * Get a specific entity by its id or another unique value
963 *
964 * \return The required entity, or a NULL pointer if couldn't be found.
965 *
966 * Refer to the list of queries for the specific return type
967 */
968 void* (*pf_get)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
972
975
977#define vlc_ml_instance_get(x) vlc_ml_instance_get( VLC_OBJECT(x) )
979VLC_API void* vlc_ml_get( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
980VLC_API int vlc_ml_control( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
981VLC_API int vlc_ml_list( vlc_medialibrary_t* p_ml, int i_query,
982 const vlc_ml_query_params_t* p_params, ... );
983
984/**
985 * \brief Registers a medialibrary callback.
986 * \returns A handle to the callback, to be passed to vlc_ml_event_unregister_callback
987 */
990
991/**
992 * \brief Unregisters a medialibrary callback
993 * \param p_ml an initialized medialibrary instance
994 * \param p_callback The callback handle returned by vlc_ml_register_callback
995 */
997 vlc_ml_event_callback_t* p_callback );
998/**
999 * \brief Unregisters a medialibrary callback from the said callback.
1000 * \param p_ml an initialized medialibrary instance
1001 * \param p_callback The handle returned by vlc_ml_register_callback
1002 *
1003 * This must only be called synchronously from the callback function provided to
1004 * vlc_ml_event_register_callback
1005 * The p_callback handle must be considered invalid when this function returns
1006 */
1008 vlc_ml_event_callback_t* p_callback );
1009
1010
1019
1033
1036#ifdef __cplusplus
1037 vlc_ml_query_params_t ret = { };
1039#else
1041#endif
1042 return ret;
1043}
1044
1045static inline int vlc_ml_add_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1047 return vlc_ml_control( p_ml, VLC_ML_ADD_FOLDER, psz_folder );
1048}
1049
1050static inline int vlc_ml_remove_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1052 return vlc_ml_control( p_ml, VLC_ML_REMOVE_FOLDER, psz_folder );
1053}
1054
1055static inline int vlc_ml_ban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1057 return vlc_ml_control( p_ml, VLC_ML_BAN_FOLDER, psz_folder );
1058}
1059
1060static inline int vlc_ml_unban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
1062 return vlc_ml_control( p_ml, VLC_ML_UNBAN_FOLDER, psz_folder );
1063}
1064
1065static inline int vlc_ml_is_indexed( vlc_medialibrary_t* p_ml,
1066 const char* psz_mrl, bool* p_res )
1067{
1068 return vlc_ml_control( p_ml, VLC_ML_IS_INDEXED, psz_mrl, p_res );
1069}
1070
1071static inline int vlc_ml_reload_folder( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1073 return vlc_ml_control( p_ml, VLC_ML_RELOAD_FOLDER, psz_mrl );
1074}
1075
1076static inline int vlc_ml_set_folder_public( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1078 return vlc_ml_control( p_ml, VLC_ML_SET_FOLDER_PUBLIC, psz_mrl );
1079}
1080
1081static inline int vlc_ml_set_folder_private( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1083 return vlc_ml_control( p_ml, VLC_ML_SET_FOLDER_PRIVATE, psz_mrl );
1084}
1085
1086static inline int vlc_ml_pause_background( vlc_medialibrary_t* p_ml )
1089}
1090
1091static inline int vlc_ml_resume_background( vlc_medialibrary_t* p_ml )
1094}
1095
1096static inline int vlc_ml_clear_history( vlc_medialibrary_t* p_ml, vlc_ml_history_type_t type )
1098 return vlc_ml_control( p_ml, VLC_ML_CLEAR_HISTORY, type );
1099}
1100
1103{
1104 return vlc_ml_control( p_ml, VLC_ML_CLEAR_HISTORY_BY_MEDIA_TYPE, (int)type );
1105}
1106
1107static inline vlc_ml_media_t* vlc_ml_new_external_media( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1109 vlc_ml_media_t* res;
1110 if ( vlc_ml_control( p_ml, VLC_ML_NEW_EXTERNAL_MEDIA, psz_mrl, &res ) != VLC_SUCCESS )
1111 return NULL;
1112 return res;
1113}
1114
1115static inline vlc_ml_media_t* vlc_ml_new_stream( vlc_medialibrary_t* p_ml, const char* psz_mrl )
1117 vlc_ml_media_t* res;
1118 if ( vlc_ml_control( p_ml, VLC_ML_NEW_STREAM, psz_mrl, &res ) != VLC_SUCCESS )
1119 return NULL;
1120 return res;
1121}
1122
1123static inline int vlc_ml_remove_stream( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1125 return vlc_ml_control(p_ml, VLC_ML_REMOVE_STREAM, i_media_id);
1126}
1127
1128static inline int vlc_ml_media_add_label( vlc_medialibrary_t* p_ml,
1129 int64_t i_media_id,
1130 const char* psz_label )
1131{
1132 return vlc_ml_control(p_ml, VLC_ML_MEDIA_ADD_LABEL, i_media_id, psz_label);
1133}
1134
1135static inline int vlc_ml_media_remove_label( vlc_medialibrary_t* p_ml,
1136 int64_t i_media_id,
1137 const char* psz_label )
1138{
1139 return vlc_ml_control(p_ml, VLC_ML_MEDIA_REMOVE_LABEL, i_media_id, psz_label);
1140}
1141
1142static inline int vlc_ml_media_update_progress( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1143 double progress )
1144{
1145 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_PROGRESS, i_media_id, progress );
1146}
1147
1148static inline int vlc_ml_media_get_playback_state( vlc_medialibrary_t* p_ml, int64_t i_media_id, int i_state, char** ppsz_result )
1150 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, ppsz_result );
1151}
1152
1153static 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 )
1155 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, psz_value );
1156}
1157
1159 int64_t i_media_id,
1161{
1162 return vlc_ml_control( p_ml,VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1163}
1164
1166 int64_t i_media_id,
1167 const vlc_ml_playback_states_all* prefs )
1168{
1169 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1170}
1171
1172static inline int vlc_ml_media_set_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1173 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1174{
1175 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1176}
1177
1178static inline int vlc_ml_media_set_genre_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1179 const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1180{
1181 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_GENRE_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1182}
1183
1184
1185static inline int vlc_ml_media_generate_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1187 uint32_t i_desired_width,
1188 uint32_t i_desired_height,
1189 double position )
1190{
1191 return vlc_ml_control( p_ml, VLC_ML_MEDIA_GENERATE_THUMBNAIL, i_media_id,
1192 size_type, i_desired_width, i_desired_height, position );
1193}
1194
1195static inline int vlc_ml_media_add_external_mrl( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1196 const char* psz_mrl, int i_type )
1197{
1198 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_EXTERNAL_MRL, i_media_id, psz_mrl, i_type );
1199}
1200
1201static inline int vlc_ml_media_set_type( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1203{
1204 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_TYPE, i_media_id, (int)i_type );
1205}
1206
1207static inline int vlc_ml_media_set_played( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1208 bool b_played )
1209{
1210 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_PLAYED, i_media_id, (int) b_played );
1211}
1212
1213static inline int vlc_ml_media_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1214 bool b_favorite )
1215{
1216 return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_FAVORITE, i_media_id, (int) b_favorite );
1217}
1218
1219static inline vlc_ml_bookmark_list_t*
1221 int64_t i_media_id )
1222{
1223 assert( p_ml != NULL );
1225 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_BOOKMARKS, params, i_media_id,
1226 &res ) != VLC_SUCCESS )
1227 return NULL;
1228 return res;
1229}
1230
1231static inline int
1232vlc_ml_media_add_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1234 assert( p_ml != NULL );
1235 return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_BOOKMARK, i_media_id, i_time );
1236}
1237
1238static inline int
1239vlc_ml_media_remove_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1241 assert( p_ml != NULL );
1242 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_BOOKMARK, i_media_id, i_time );
1243}
1244
1245static inline int
1246vlc_ml_media_update_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1247 int64_t i_time, const char* psz_name,
1248 const char* psz_desc )
1249{
1250 assert( p_ml != NULL );
1251 return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_BOOKMARK, i_media_id,
1252 i_time, psz_name, psz_desc );
1253}
1254
1255static inline int
1256vlc_ml_media_remove_all_bookmarks( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1258 assert( p_ml != NULL );
1259 return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, i_media_id );
1260}
1261
1262static inline vlc_ml_playlist_t*
1263vlc_ml_playlist_create( vlc_medialibrary_t * p_ml, const char * name)
1265 assert( p_ml != NULL );
1266
1267 vlc_ml_playlist_t* result;
1268
1269 if (vlc_ml_control( p_ml, VLC_ML_PLAYLIST_CREATE, name, &result ) != VLC_SUCCESS )
1270 return NULL;
1271
1272 return result;
1273}
1274
1275static inline int
1276vlc_ml_playlist_delete( vlc_medialibrary_t * p_ml, int64_t i_playlist_id )
1278 assert( p_ml != NULL );
1279
1280 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_DELETE, i_playlist_id );
1281}
1282
1283static inline int
1284vlc_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 )
1286 assert( p_ml != NULL );
1287
1288 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_APPEND, i_playlist_id, i_media_ids, i_media_id_count );
1289}
1290
1291static inline int
1292vlc_ml_playlist_insert( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const int64_t *i_media_ids,
1293 size_t i_media_id_count, uint32_t i_position )
1294{
1295 assert( p_ml != NULL );
1296
1297 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_INSERT, i_playlist_id, i_media_ids, i_media_id_count, i_position );
1298}
1299
1300static inline int
1302 int64_t i_playlist_id, uint32_t i_from, uint32_t i_to, uint32_t i_count )
1303{
1304 assert( p_ml != NULL );
1305
1306 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_MOVE, i_playlist_id, i_from, i_to, i_count );
1307}
1308
1309static inline int
1310vlc_ml_playlist_remove( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, uint32_t i_position, uint32_t i_count )
1312 assert( p_ml != NULL );
1313
1314 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_REMOVE, i_playlist_id, i_position, i_count );
1315}
1316
1317static inline int
1318vlc_ml_playlist_rename( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, const char* name )
1320 assert( p_ml != NULL );
1321
1322 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_RENAME, i_playlist_id, name );
1323}
1324
1325static inline vlc_ml_media_t* vlc_ml_get_media( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1327 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA, i_media_id );
1328}
1329
1331 const char* psz_mrl )
1332{
1333 return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA_BY_MRL, psz_mrl );
1334}
1335
1336static inline input_item_t* vlc_ml_get_input_item( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1338 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM, i_media_id );
1339}
1340
1342 const char* psz_mrl )
1343{
1344 return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM_BY_MRL, psz_mrl );
1345}
1346
1347static inline vlc_ml_album_t* vlc_ml_get_album( vlc_medialibrary_t* p_ml, int64_t i_album_id )
1349 return (vlc_ml_album_t*)vlc_ml_get( p_ml, VLC_ML_GET_ALBUM, i_album_id );
1350}
1351
1352static inline vlc_ml_artist_t* vlc_ml_get_artist( vlc_medialibrary_t* p_ml, int64_t i_artist_id )
1354 return (vlc_ml_artist_t*)vlc_ml_get( p_ml, VLC_ML_GET_ARTIST, i_artist_id );
1355}
1356
1357static inline vlc_ml_genre_t* vlc_ml_get_genre( vlc_medialibrary_t* p_ml, int64_t i_genre_id )
1359 return (vlc_ml_genre_t*)vlc_ml_get( p_ml, VLC_ML_GET_GENRE, i_genre_id );
1360}
1361
1362static inline vlc_ml_show_t* vlc_ml_get_show( vlc_medialibrary_t* p_ml, int64_t i_show_id )
1364 return (vlc_ml_show_t*)vlc_ml_get( p_ml, VLC_ML_GET_SHOW, i_show_id );
1365}
1366
1367static inline vlc_ml_group_t* vlc_ml_get_group( vlc_medialibrary_t* p_ml, int64_t i_group_id )
1369 return (vlc_ml_group_t*)vlc_ml_get( p_ml, VLC_ML_GET_GROUP, i_group_id );
1370}
1371
1372static inline vlc_ml_folder_t* vlc_ml_get_folder( vlc_medialibrary_t* p_ml, int64_t i_folder_id )
1374 return (vlc_ml_folder_t*)vlc_ml_get( p_ml, VLC_ML_GET_FOLDER, i_folder_id);
1375}
1376
1377static inline vlc_ml_playlist_t* vlc_ml_get_playlist( vlc_medialibrary_t* p_ml, int64_t i_playlist_id )
1379 return (vlc_ml_playlist_t*)vlc_ml_get( p_ml, VLC_ML_GET_PLAYLIST, i_playlist_id );
1380}
1381
1382static 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 )
1384 vlc_assert( p_ml != NULL );
1386 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1387 return NULL;
1388 return res;
1389}
1390
1391static 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 )
1393 vlc_assert( p_ml != NULL );
1394 size_t res;
1395 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1396 return 0;
1397 return res;
1398}
1399
1402 int i_parent_type, int64_t i_parent_id )
1403{
1404 vlc_assert( p_ml != NULL );
1405
1407
1409 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1410 return NULL;
1411
1412 return res;
1413}
1414
1415static inline size_t vlc_ml_count_video_of( vlc_medialibrary_t* p_ml,
1417 int i_parent_type, int64_t i_parent_id )
1418{
1419 vlc_assert( p_ml != NULL );
1420
1421 size_t res;
1422
1424 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1425 return 0;
1426
1427 return res;
1428}
1429
1432 int i_parent_type, int64_t i_parent_id )
1433{
1434 vlc_assert( p_ml != NULL );
1435
1437
1439 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1440 return NULL;
1441
1442 return res;
1443}
1444
1445static inline size_t vlc_ml_count_audio_of( vlc_medialibrary_t* p_ml,
1447 int i_parent_type, int64_t i_parent_id )
1448{
1449 vlc_assert( p_ml != NULL );
1450
1451 size_t res;
1452
1454 params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1455 return 0;
1456
1457 return res;
1458}
1459
1460static 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 )
1462 vlc_assert( p_ml != NULL );
1464 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1465 return NULL;
1466 return res;
1467}
1468
1469static 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 )
1471 vlc_assert( p_ml != NULL );
1472 size_t res;
1473 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1474 return 0;
1475 return res;
1476}
1477
1478static 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 )
1480 vlc_assert( p_ml != NULL );
1482 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1483 return NULL;
1484 return res;
1485}
1486
1487static 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 )
1489 vlc_assert( p_ml != NULL );
1490 size_t res;
1491 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1492 return 0;
1493 return res;
1494}
1495
1496static 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 )
1498 vlc_assert( p_ml != NULL );
1500 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_TRACKS, params, i_album_id, &res ) != VLC_SUCCESS )
1501 return NULL;
1502 return res;
1503}
1504
1505static 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 )
1507 vlc_assert( p_ml != NULL );
1508 size_t count;
1509 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_TRACKS, params, i_album_id, &count ) != VLC_SUCCESS )
1510 return 0;
1511 return count;
1512}
1513
1514static 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 )
1516 vlc_assert( p_ml != NULL );
1518 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_ARTISTS, params, i_album_id, &res ) != VLC_SUCCESS )
1519 return NULL;
1520 return res;
1521}
1522
1523static 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 )
1525 vlc_assert( p_ml != NULL );
1526 size_t count;
1527 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_ARTISTS, params, i_album_id, &count ) != VLC_SUCCESS )
1528 return 0;
1529 return count;
1530}
1531
1532static 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 )
1534 vlc_assert( p_ml != NULL );
1536 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_ALBUMS, params, i_artist_id, &res ) != VLC_SUCCESS )
1537 return NULL;
1538 return res;
1539}
1540
1541static 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 )
1543 vlc_assert( p_ml != NULL );
1544 size_t count;
1545 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_ALBUMS, params, i_artist_id, &count ) != VLC_SUCCESS )
1546 return 0;
1547 return count;
1548}
1549
1550static 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 )
1552 vlc_assert( p_ml != NULL );
1554 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_TRACKS, params, i_artist_id, &res ) != VLC_SUCCESS )
1555 return NULL;
1556 return res;
1557}
1558
1559static 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 )
1561 vlc_assert( p_ml != NULL );
1562 size_t count;
1563 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_TRACKS, params, i_artist_id, &count ) != VLC_SUCCESS )
1564 return 0;
1565 return count;
1566}
1567
1570 vlc_assert( p_ml != NULL );
1572 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA, params, &res ) != VLC_SUCCESS )
1573 return NULL;
1574 return res;
1575}
1576
1577static inline size_t vlc_ml_count_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1579 vlc_assert( p_ml != NULL );
1580 size_t count;
1581 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA, params, &count ) != VLC_SUCCESS )
1582 return 0;
1583 return count;
1584}
1585
1588 vlc_assert( p_ml != NULL );
1590 if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEOS, params, &res ) != VLC_SUCCESS )
1591 return NULL;
1592 return res;
1593}
1594
1595static inline size_t vlc_ml_count_video_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1597 vlc_assert( p_ml != NULL );
1598 size_t count;
1599 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEOS, params, &count ) != VLC_SUCCESS )
1600 return 0;
1601 return count;
1602}
1603
1606 vlc_assert( p_ml != NULL );
1608 if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIOS, params, &res ) != VLC_SUCCESS )
1609 return NULL;
1610 return res;
1611}
1612
1613static inline size_t vlc_ml_count_audio_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1615 vlc_assert( p_ml != NULL );
1616 size_t count;
1617 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIOS, params, &count ) != VLC_SUCCESS )
1618 return 0;
1619 return count;
1620}
1621
1624 vlc_assert( p_ml != NULL );
1626 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS, params, &res ) != VLC_SUCCESS )
1627 return NULL;
1628 return res;
1629}
1630
1631static inline size_t vlc_ml_count_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1633 vlc_assert( p_ml != NULL );
1634 size_t count;
1635 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS, params, &count ) != VLC_SUCCESS )
1636 return 0;
1637 return count;
1638}
1639
1642 vlc_assert( p_ml != NULL );
1644 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRES, params, &res ) != VLC_SUCCESS )
1645 return NULL;
1646 return res;
1647}
1648
1649static inline size_t vlc_ml_count_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1651 vlc_assert( p_ml != NULL );
1652 size_t count;
1653 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRES, params, &count ) != VLC_SUCCESS )
1654 return 0;
1655 return count;
1656}
1657
1658/**
1659 * @brief vlc_ml_list_artists
1660 * @param p_ml an initialized medialibrary instance
1661 * @param params Query parameters, or NULL for the default
1662 * @param b_include_all True if you wish to fetch artists without at least one album.
1663 * @return
1664 */
1665static 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 )
1667 vlc_assert( p_ml != NULL );
1669 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS, params, (int)b_include_all, &res ) != VLC_SUCCESS )
1670 return NULL;
1671 return res;
1672}
1673
1674static inline size_t vlc_ml_count_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, bool includeAll )
1676 vlc_assert( p_ml != NULL );
1677 size_t count;
1678 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS, params, includeAll, &count ) != VLC_SUCCESS )
1679 return 0;
1680 return count;
1681}
1682
1685 vlc_assert( p_ml != NULL );
1686 vlc_ml_show_list_t* res;
1687 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOWS, params, &res ) != VLC_SUCCESS )
1688 return NULL;
1689 return res;
1690}
1691
1694 vlc_assert(p_ml != NULL);
1696 if (vlc_ml_list(p_ml, VLC_ML_LIST_MOVIES, params, &res) != VLC_SUCCESS)
1697 return NULL;
1698 return res;
1699}
1700
1701static inline size_t vlc_ml_count_movies(vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params)
1703 vlc_assert(p_ml != NULL);
1704 size_t count;
1705 if (vlc_ml_list(p_ml, VLC_ML_COUNT_MOVIES, params, &count) != VLC_SUCCESS)
1706 return 0;
1707 return count;
1708}
1709
1710static inline size_t vlc_ml_count_shows( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1712 vlc_assert( p_ml != NULL );
1713 size_t count;
1714 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_SHOWS, params, &count ) != VLC_SUCCESS )
1715 return 0;
1716 return count;
1717}
1718
1719static 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 )
1721 vlc_assert( p_ml != NULL );
1723 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ARTISTS, params, i_genre_id, &res ) != VLC_SUCCESS )
1724 return NULL;
1725 return res;
1726}
1727
1728static 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 )
1730 vlc_assert( p_ml != NULL );
1731 size_t count;
1732 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ARTISTS, params, i_genre_id, &count ) != VLC_SUCCESS )
1733 return 0;
1734 return count;
1735}
1736
1737static 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 )
1739 vlc_assert( p_ml != NULL );
1741 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_TRACKS, params, i_genre_id, &res ) != VLC_SUCCESS )
1742 return NULL;
1743 return res;
1744}
1745
1746static 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 )
1748 vlc_assert( p_ml != NULL );
1749 size_t count;
1750 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_TRACKS, params, i_genre_id, &count ) != VLC_SUCCESS )
1751 return 0;
1752 return count;
1753}
1754
1755static 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 )
1757 vlc_assert( p_ml != NULL );
1759 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ALBUMS, params, i_genre_id, &res ) != VLC_SUCCESS )
1760 return NULL;
1761 return res;
1762}
1763
1764static 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 )
1766 vlc_assert( p_ml != NULL );
1767 size_t count;
1768 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_genre_id, &count ) != VLC_SUCCESS )
1769 return 0;
1770 return count;
1771}
1772
1773static 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 )
1775 vlc_assert( p_ml != NULL );
1777 if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOW_EPISODES, params, i_show_id, &res ) != VLC_SUCCESS )
1778 return NULL;
1779 return res;
1780}
1781
1782static 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 )
1784 vlc_assert( p_ml != NULL );
1785 size_t count;
1786 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_show_id, &count ) != VLC_SUCCESS )
1787 return 0;
1788 return count;
1789}
1790
1791static 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 )
1793 vlc_assert( p_ml != NULL );
1795 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &res ) != VLC_SUCCESS )
1796 return NULL;
1797 return res;
1798}
1799
1800static 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 )
1802 vlc_assert( p_ml != NULL );
1803 size_t count;
1804 if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &count ) != VLC_SUCCESS )
1805 return 0;
1806 return count;
1807}
1808
1811 vlc_assert( p_ml != NULL );
1813 if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY, params, (int)type, &res ) != VLC_SUCCESS )
1814 return NULL;
1815 return res;
1816}
1817
1818static 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 )
1820 vlc_assert( p_ml != NULL );
1821 size_t count;
1822 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY, params, (int)type, &count ) != VLC_SUCCESS )
1823 return 0;
1824 return count;
1825}
1826
1829 vlc_assert( p_ml != NULL );
1831 if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEO_HISTORY, params, &res ) != VLC_SUCCESS )
1832 return NULL;
1833 return res;
1834}
1835
1836static inline size_t vlc_ml_count_video_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1838 vlc_assert( p_ml != NULL );
1839 size_t count;
1840 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEO_HISTORY, params, &count ) != VLC_SUCCESS )
1841 return 0;
1842 return count;
1843}
1844
1847 vlc_assert( p_ml != NULL );
1849 if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIO_HISTORY, params, &res ) != VLC_SUCCESS )
1850 return NULL;
1851 return res;
1852}
1853
1854static inline size_t vlc_ml_count_audio_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1856 vlc_assert( p_ml != NULL );
1857 size_t count;
1858 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIO_HISTORY, params, &count ) != VLC_SUCCESS )
1859 return 0;
1860 return count;
1861}
1862
1863//-------------------------------------------------------------------------------------------------
1864// Groups
1865
1868 vlc_assert( p_ml != NULL );
1870 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUPS, params, &res ) != VLC_SUCCESS )
1871 return NULL;
1872 return res;
1873}
1874
1875static inline size_t vlc_ml_count_groups( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1877 vlc_assert( p_ml != NULL );
1878 size_t count;
1879 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUPS, params, &count ) != VLC_SUCCESS )
1880 return 0;
1881 return count;
1882}
1883
1884static 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 )
1886 vlc_assert( p_ml != NULL );
1888 if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUP_MEDIA, params, i_group_id, &res ) != VLC_SUCCESS )
1889 return NULL;
1890 return res;
1891}
1892
1893static 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 )
1895 vlc_assert( p_ml != NULL );
1896 size_t count;
1897 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUP_MEDIA, params, i_group_id, &count ) != VLC_SUCCESS )
1898 return 0;
1899 return count;
1900}
1901
1902//-------------------------------------------------------------------------------------------------
1903
1906 vlc_assert( p_ml != NULL );
1908 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, (int) playlist_type, &res ) != VLC_SUCCESS )
1909 return NULL;
1910 return res;
1911}
1912
1913static 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)
1915 vlc_assert( p_ml != NULL );
1916 size_t count;
1917 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, (int) playlist_type, &count ) != VLC_SUCCESS )
1918 return 0;
1919 return count;
1920}
1921
1922static 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 )
1924 vlc_assert( p_ml != NULL );
1926 if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLIST_MEDIA, params, i_playlist_id, &res ) != VLC_SUCCESS )
1927 return NULL;
1928 return res;
1929}
1930
1931static 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 )
1933 vlc_assert( p_ml != NULL );
1934 size_t count;
1935 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLIST_MEDIA, params, i_playlist_id, &count ) != VLC_SUCCESS )
1936 return 0;
1937 return count;
1938}
1939
1942 vlc_assert( p_ml != NULL );
1944 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1945 return NULL;
1946 return res;
1947}
1948
1949static inline size_t vlc_ml_count_entry_points( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1951 vlc_assert( p_ml != NULL );
1952 size_t res;
1953 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1954 return 0;
1955 return res;
1956}
1957
1958static inline vlc_ml_folder_list_t*
1961 vlc_assert( p_ml != NULL );
1963 if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1964 return NULL;
1965 return res;
1966}
1967
1968static inline size_t vlc_ml_count_banned_entry_points( vlc_medialibrary_t* p_ml,
1970{
1971 vlc_assert( p_ml != NULL );
1972 size_t res;
1973 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1974 return 0;
1975 return res;
1976}
1977
1978// Folders
1979
1982{
1983 vlc_assert(p_ml != NULL);
1984
1986
1987 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS, params, &res) != VLC_SUCCESS)
1988 return NULL;
1989
1990 return res;
1991}
1992
1993static inline size_t vlc_ml_count_folders(vlc_medialibrary_t * p_ml,
1995{
1996 vlc_assert(p_ml != NULL);
1997
1998 size_t count;
1999
2000 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS, params, &count) != VLC_SUCCESS)
2001 return 0;
2002
2003 return count;
2004}
2005
2006static inline
2010{
2011 vlc_assert(p_ml != NULL);
2012
2014
2015 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDERS_BY_TYPE, params, (int) type, &res) != VLC_SUCCESS)
2016 return NULL;
2017
2018 return res;
2019}
2020
2021static inline size_t vlc_ml_count_folders_by_type(vlc_medialibrary_t * p_ml,
2024{
2025 vlc_assert(p_ml != NULL);
2026
2027 size_t count;
2028
2029 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDERS_BY_TYPE, params, (int) type, &count) != VLC_SUCCESS)
2030 return 0;
2031
2032 return count;
2033}
2034
2035// Folder Media
2036
2039 int64_t i_folder_id)
2040{
2041 vlc_assert(p_ml != NULL);
2042
2043 vlc_ml_media_list_t * res;
2044
2045 if (vlc_ml_list(p_ml, VLC_ML_LIST_FOLDER_MEDIA, params, i_folder_id, &res) != VLC_SUCCESS)
2046 return NULL;
2047
2048 return res;
2049}
2050
2051static inline size_t vlc_ml_count_folder_media(vlc_medialibrary_t * p_ml,
2053 int64_t i_folder_id)
2054{
2055 vlc_assert(p_ml != NULL);
2056
2057 size_t count;
2058
2059 if (vlc_ml_list(p_ml, VLC_ML_COUNT_FOLDER_MEDIA, params, i_folder_id, &count) != VLC_SUCCESS)
2060 return 0;
2061
2062 return count;
2063}
2064
2065static inline int vlc_ml_folder_set_favorite( vlc_medialibrary_t* p_ml, const char* psz_mrl, bool b_favorite )
2067 return vlc_ml_control( p_ml, VLC_ML_FOLDER_SET_FAVORITE, psz_mrl, (int)b_favorite );
2068}
2069
2070static inline int vlc_ml_artist_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_artist_id, bool b_favorite )
2072 return vlc_ml_control( p_ml, VLC_ML_ARTIST_SET_FAVORITE, i_artist_id, (int)b_favorite );
2073}
2074
2075static inline int vlc_ml_album_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_album_id, bool b_favorite )
2077 return vlc_ml_control( p_ml, VLC_ML_ALBUM_SET_FAVORITE, i_album_id, (int)b_favorite );
2078}
2079
2080static inline int vlc_ml_genre_set_favorite( vlc_medialibrary_t* p_ml, int64_t i_genre_id, bool b_favorite )
2082 return vlc_ml_control( p_ml, VLC_ML_GENRE_SET_FAVORITE, i_genre_id, (int)b_favorite );
2083}
2084
2085static inline int vlc_ml_playlist_set_favorite( vlc_medialibrary_t *p_ml, int64_t i_playlist_id, bool b_favorite )
2087 return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_SET_FAVORITE, i_playlist_id, (int)b_favorite );
2088}
2089
2090//-------------------------------------------------------------------------------------------------
2091// Favorites
2092
2095 vlc_assert( p_ml != NULL );
2097 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_MEDIA, params, &res ) != VLC_SUCCESS )
2098 return NULL;
2099 return res;
2100}
2101
2102static inline size_t vlc_ml_count_favorite_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2104 vlc_assert( p_ml != NULL );
2105 size_t count;
2106 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_MEDIA, params, &count ) != VLC_SUCCESS )
2107 return 0;
2108 return count;
2109}
2110
2113 vlc_assert( p_ml != NULL );
2115 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_VIDEOS, params, &res ) != VLC_SUCCESS )
2116 return NULL;
2117 return res;
2118}
2119
2120static inline size_t vlc_ml_count_favorite_videos( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2122 vlc_assert( p_ml != NULL );
2123 size_t count;
2124 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_VIDEOS, params, &count ) != VLC_SUCCESS )
2125 return 0;
2126 return count;
2127}
2128
2131 vlc_assert( p_ml != NULL );
2133 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_AUDIOS, params, &res ) != VLC_SUCCESS )
2134 return NULL;
2135 return res;
2136}
2137
2138static inline size_t vlc_ml_count_favorite_audios( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2140 vlc_assert( p_ml != NULL );
2141 size_t count;
2142 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_AUDIOS, params, &count ) != VLC_SUCCESS )
2143 return 0;
2144 return count;
2145}
2146
2149 vlc_assert( p_ml != NULL );
2151 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_ALBUMS, params, &res ) != VLC_SUCCESS )
2152 return NULL;
2153 return res;
2154}
2155
2156static inline size_t vlc_ml_count_favorite_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2158 vlc_assert( p_ml != NULL );
2159 size_t count;
2160 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_ALBUMS, params, &count ) != VLC_SUCCESS )
2161 return 0;
2162 return count;
2163}
2164
2167 vlc_assert( p_ml != NULL );
2169 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_ARTISTS, params, &res ) != VLC_SUCCESS )
2170 return NULL;
2171 return res;
2172}
2173
2174static inline size_t vlc_ml_count_favorite_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2176 vlc_assert( p_ml != NULL );
2177 size_t count;
2178 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_ARTISTS, params, &count ) != VLC_SUCCESS )
2179 return 0;
2180 return count;
2181}
2182
2185 vlc_assert( p_ml != NULL );
2187 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_GENRES, params, &res ) != VLC_SUCCESS )
2188 return NULL;
2189 return res;
2190}
2191
2192static inline size_t vlc_ml_count_favorite_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2194 vlc_assert( p_ml != NULL );
2195 size_t count;
2196 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_GENRES, params, &count ) != VLC_SUCCESS )
2197 return 0;
2198 return count;
2199}
2200
2203 vlc_assert( p_ml != NULL );
2205 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_PLAYLISTS, params, &res ) != VLC_SUCCESS )
2206 return NULL;
2207 return res;
2208}
2209
2210static inline size_t vlc_ml_count_favorite_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2212 vlc_assert( p_ml != NULL );
2213 size_t count;
2215 return 0;
2216 return count;
2217}
2218
2221 vlc_assert( p_ml != NULL );
2223 if ( vlc_ml_list( p_ml, VLC_ML_LIST_FAVORITE_FOLDERS, params, &res ) != VLC_SUCCESS )
2224 return NULL;
2225 return res;
2226}
2227
2228static inline size_t vlc_ml_count_favorite_folders( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
2230 vlc_assert( p_ml != NULL );
2231 size_t count;
2232 if ( vlc_ml_list( p_ml, VLC_ML_COUNT_FAVORITE_FOLDERS, params, &count ) != VLC_SUCCESS )
2233 return 0;
2234 return count;
2235}
2236
2237#ifdef __cplusplus
2238}
2239#endif /* C++ */
2240
2241#ifndef __cplusplus
2242# define vlc_ml_release( OBJ ) _Generic( ( OBJ ), \
2243 vlc_ml_show_t*: vlc_ml_show_release, \
2244 vlc_ml_artist_t*: vlc_ml_artist_release, \
2245 vlc_ml_album_t*: vlc_ml_album_release, \
2246 vlc_ml_genre_t*: vlc_ml_genre_release, \
2247 vlc_ml_media_t*: vlc_ml_media_release, \
2248 vlc_ml_group_t*: vlc_ml_group_release, \
2249 vlc_ml_folder_t*: vlc_ml_folder_release, \
2250 vlc_ml_playlist_t*: vlc_ml_playlist_release, \
2251 vlc_ml_label_list_t*: vlc_ml_label_list_release, \
2252 vlc_ml_file_list_t*: vlc_ml_file_list_release, \
2253 vlc_ml_artist_list_t*: vlc_ml_artist_list_release, \
2254 vlc_ml_media_list_t*: vlc_ml_media_list_release, \
2255 vlc_ml_album_list_t*: vlc_ml_album_list_release, \
2256 vlc_ml_show_list_t*: vlc_ml_show_list_release, \
2257 vlc_ml_genre_list_t*: vlc_ml_genre_list_release, \
2258 vlc_ml_group_list_t*: vlc_ml_group_list_release, \
2259 vlc_ml_playlist_list_t*: vlc_ml_playlist_list_release, \
2260 vlc_ml_folder_list_t*: vlc_ml_folder_list_release, \
2261 vlc_ml_playback_states_all*: vlc_ml_playback_states_all_release, \
2262 vlc_ml_bookmark_t*: vlc_ml_bookmark_release, \
2263 vlc_ml_bookmark_list_t*: vlc_ml_bookmark_list_release \
2264 )( OBJ )
2265#else
2266static inline void vlc_ml_release( vlc_ml_show_t* show ) { vlc_ml_show_release( show ); }
2267static inline void vlc_ml_release( vlc_ml_artist_t* artist ) { vlc_ml_artist_release( artist ); }
2268static inline void vlc_ml_release( vlc_ml_album_t* album ) { vlc_ml_album_release( album ); }
2269static inline void vlc_ml_release( vlc_ml_genre_t* genre ) { vlc_ml_genre_release( genre ); }
2270static inline void vlc_ml_release( vlc_ml_media_t* media ) { vlc_ml_media_release( media ); }
2271static inline void vlc_ml_release( vlc_ml_group_t* group ) { vlc_ml_group_release( group ); }
2272static inline void vlc_ml_release( vlc_ml_folder_t* folder ) { vlc_ml_folder_release( folder ); }
2273static inline void vlc_ml_release( vlc_ml_playlist_t* playlist ) { vlc_ml_playlist_release( playlist ); }
2284static inline void vlc_ml_release( vlc_ml_playback_states_all* prefs ) { vlc_ml_playback_states_all_release( prefs ); }
2285static inline void vlc_ml_release( vlc_ml_bookmark_t* bookmark ) { vlc_ml_bookmark_release( bookmark ); }
2287#endif
2288
2289#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:1299
int i_type
Definition httpd.c:1300
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
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
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
void vlc_ml_label_list_release(vlc_ml_label_list_t *p_list)
Definition medialibrary.c:297
void vlc_ml_folder_release(vlc_ml_folder_t *p_folder)
Definition medialibrary.c:287
void vlc_ml_bookmark_list_release(vlc_ml_bookmark_list_t *list)
Definition medialibrary.c:413
void vlc_ml_event_unregister_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_cb)
Unregisters a medialibrary callback.
Definition medialibrary.c:81
int vlc_ml_list(vlc_medialibrary_t *p_ml, int i_query, const vlc_ml_query_params_t *p_params,...)
Definition medialibrary.c:441
void vlc_ml_playlist_list_release(vlc_ml_playlist_list_t *p_list)
Definition medialibrary.c:370
void vlc_ml_bookmark_release(vlc_ml_bookmark_t *bookmark)
Definition medialibrary.c:405
void vlc_ml_album_release(vlc_ml_album_t *p_album)
Definition medialibrary.c:222
void vlc_ml_folder_list_release(vlc_ml_folder_list_t *p_list)
Definition medialibrary.c:379
void vlc_ml_artist_release(vlc_ml_artist_t *p_artist)
Definition medialibrary.c:206
void vlc_ml_genre_release(vlc_ml_genre_t *p_genre)
Definition medialibrary.c:230
void vlc_ml_genre_list_release(vlc_ml_genre_list_t *p_list)
Definition medialibrary.c:352
void vlc_ml_file_list_release(vlc_ml_file_list_t *p_list)
Definition medialibrary.c:306
void vlc_ml_playback_states_all_release(vlc_ml_playback_states_all *prefs)
Definition medialibrary.c:388
void vlc_ml_show_release(vlc_ml_show_t *p_show)
Definition medialibrary.c:149
void vlc_ml_media_release(vlc_ml_media_t *p_media)
Definition medialibrary.c:273
void vlc_ml_group_release(vlc_ml_group_t *p_group)
Definition medialibrary.c:247
void vlc_ml_event_unregister_from_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_cb)
Unregisters a medialibrary callback from the said callback.
Definition medialibrary.c:90
void vlc_ml_group_list_release(vlc_ml_group_list_t *p_list)
Definition medialibrary.c:361
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:933
void(* pf_send_event)(vlc_medialibrary_module_t *p_ml, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:934
Definition vlc_media_library.h:938
void * p_sys
Definition vlc_media_library.h:943
struct vlc_object_t obj
Definition vlc_media_library.h:939
int(* pf_control)(struct vlc_medialibrary_module_t *p_ml, int i_query, va_list args)
Definition vlc_media_library.h:945
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:959
const vlc_medialibrary_callbacks_t * cbs
Definition vlc_media_library.h:971
module_t * p_module
Definition vlc_media_library.h:941
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:852
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@100175376127141160340173157165150253025323140073 media_thumbnail_generated
int i_entity_type
One of VLC_ML_PARENT_* values.
Definition vlc_media_library.h:924
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@021004204135231215140000173112007314127354065023 favorites_changed
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@217065062346363235212267374141070225173335117130 parsing_progress
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@264052320206327241365022247214322271331152174142 entry_point_removed
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@147073252051101120151053067224311231353157143030 entry_point_added
bool b_favorite
true if marked as favorite, false if unmarked
Definition vlc_media_library.h:925
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@363067307340246054313132257355226222375117161004 entry_point_unbanned
uint8_t i_percent
Definition vlc_media_library.h:886
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@130114164132321035250016211131040312226156076367 modification
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@225050374156127356274370151172163211243311062303 discovery_progress
int64_t i_entity_id
Definition vlc_media_library.h:901
union vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@313211241134151145372027320102113223046311015364 creation
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@355001171220073316174235133203126001145252163237 entry_point_banned
bool b_success
Definition vlc_media_library.h:867
const vlc_ml_artist_t * p_artist
Definition vlc_media_library.h:891
vlc_ml_history_type_t history_type
Definition vlc_media_library.h:919
const char * psz_entry_point
Definition vlc_media_library.h:858
int i_type
Definition vlc_media_library.h:853
const vlc_ml_album_t * p_album
Definition vlc_media_library.h:892
const vlc_ml_playlist_t * p_playlist
Definition vlc_media_library.h:894
const vlc_ml_folder_t * p_folder
Definition vlc_media_library.h:897
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@017023224344132155271366316175230366143307024251 history_changed
const vlc_ml_genre_t * p_genre
Definition vlc_media_library.h:895
const vlc_ml_media_t * p_media
Definition vlc_media_library.h:890
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@071064352376216071003326156101133121272207311167 deletion
vlc_ml_thumbnail_size_t i_size
Definition vlc_media_library.h:914
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@253044311227016151235357041376033064251021200024 background_idle_changed
bool b_idle
Definition vlc_media_library.h:909
struct vlc_ml_event_t::@262225132235220100104172034025323022137117241363::@047274311144034374177006072217055301103224053014 discovery_failed
const vlc_ml_group_t * p_group
Definition vlc_media_library.h:893
const vlc_ml_bookmark_t * p_bookmark
Definition vlc_media_library.h:896
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
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
struct vlc_ml_media_t::@223150061033020375341076327163323214055264237025::@375336206277203341300173244245245001112300176140 album_track
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
uint32_t i_sampleRate
Definition vlc_media_library.h:184
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
struct vlc_ml_media_track_t::@125130102114102261322020345325035072255331216350::@367025101030321355353176030131366053027253175072 a
char * psz_encoding
Definition vlc_media_library.h:199
struct vlc_ml_media_track_t::@125130102114102261322020345325035072255331216350::@132165267102126257156105002345366146052174363255 s
char * psz_description
Definition vlc_media_library.h:175
struct vlc_ml_media_track_t::@125130102114102261322020345325035072255331216350::@354162276346021031266350110371143205224047276165 v
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:704
char * deinterlace
Definition vlc_media_library.h:713
char * current_audio_track
Definition vlc_media_library.h:709
char * current_video_track
Definition vlc_media_library.h:708
float zoom
Definition vlc_media_library.h:706
int current_title
Definition vlc_media_library.h:707
char * aspect_ratio
Definition vlc_media_library.h:711
char * crop
Definition vlc_media_library.h:712
float rate
Definition vlc_media_library.h:705
char * current_subtitle_track
Definition vlc_media_library.h:710
char * video_filter
Definition vlc_media_library.h:714
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:454
bool b_favorite_only
Definition vlc_media_library.h:460
const char * psz_pattern
Definition vlc_media_library.h:455
bool b_desc
Definition vlc_media_library.h:459
vlc_ml_sorting_criteria_t i_sort
Definition vlc_media_library.h:458
uint32_t i_offset
Definition vlc_media_library.h:457
bool b_public_only
Definition vlc_media_library.h:461
uint32_t i_nbResults
Definition vlc_media_library.h:456
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:1202
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:2157
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:1774
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:1461
static int vlc_ml_clear_history(vlc_medialibrary_t *p_ml, vlc_ml_history_type_t type)
Definition vlc_media_library.h:1097
static int vlc_ml_playlist_rename(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, const char *name)
Definition vlc_media_library.h:1319
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:1702
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:1166
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:1969
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:1932
static vlc_ml_media_t * vlc_ml_get_media(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1326
static vlc_ml_media_t * vlc_ml_new_external_media(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1108
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:2166
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:2086
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:1551
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:1711
vlc_ml_get_queries
Definition vlc_media_library.h:465
@ VLC_ML_GET_SHOW
arg1: Show ID; ret: vlc_ml_show_t*
Definition vlc_media_library.h:473
@ VLC_ML_GET_MEDIA_BY_MRL
arg1: Media MRL; ret: vlc_ml_media_t*
Definition vlc_media_library.h:467
@ VLC_ML_GET_GENRE
arg1: Genre ID; ret: vlc_ml_genre_t*
Definition vlc_media_library.h:472
@ VLC_ML_GET_INPUT_ITEM_BY_MRL
arg1: Media MRL; ret: input_item_t*
Definition vlc_media_library.h:469
@ VLC_ML_GET_GROUP
arg1: Group ID; ret: vlc_ml_group_t*
Definition vlc_media_library.h:475
@ VLC_ML_GET_PLAYLIST
arg1: Playlist ID; ret: vlc_ml_playlist_t*
Definition vlc_media_library.h:474
@ VLC_ML_GET_FOLDER
arg1: folder ID; ret: vlc_ml_folder_t*
Definition vlc_media_library.h:476
@ VLC_ML_GET_MEDIA
arg1: Media ID; ret: vlc_ml_media_t*
Definition vlc_media_library.h:466
@ VLC_ML_GET_ALBUM
arg1: Album ID; ret: vlc_ml_album_t*
Definition vlc_media_library.h:470
@ VLC_ML_GET_INPUT_ITEM
arg1: Media ID; ret: input_item_t*
Definition vlc_media_library.h:468
@ VLC_ML_GET_ARTIST
arg1: Artist ID; ret: vlc_ml_artist_t*
Definition vlc_media_library.h:471
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:1747
static vlc_ml_playlist_t * vlc_ml_playlist_create(vlc_medialibrary_t *p_ml, const char *name)
Definition vlc_media_library.h:1264
static int vlc_ml_remove_stream(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1124
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:2193
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:2052
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:1783
vlc_ml_control
Definition vlc_media_library.h:603
@ VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2: const vlc_ml_playback_states_all*
Definition vlc_media_library.h:638
@ VLC_ML_RESUME_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:622
@ VLC_ML_MEDIA_UPDATE_BOOKMARK
arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char*
Definition vlc_media_library.h:651
@ VLC_ML_MEDIA_REMOVE_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:649
@ 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:657
@ VLC_ML_MEDIA_ADD_BOOKMARK
arg1: media id; arg2: int64_t
Definition vlc_media_library.h:648
@ VLC_ML_NEW_EXTERNAL_MEDIA
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:628
@ VLC_ML_FOLDER_SET_FAVORITE
arg1: mrl (const char*); arg2: bool; res: can fail
Definition vlc_media_library.h:663
@ VLC_ML_RELOAD_FOLDER
Reload a specific folder, or all.
Definition vlc_media_library.h:615
@ VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*;
Definition vlc_media_library.h:636
@ VLC_ML_ADD_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:605
@ VLC_ML_MEDIA_SET_TYPE
arg1: media id; arg2: vlc_ml_media_type_t
Definition vlc_media_library.h:643
@ VLC_ML_MEDIA_REMOVE_LABEL
arg1: media id; arg2: label name
Definition vlc_media_library.h:647
@ VLC_ML_PLAYLIST_APPEND
arg1: playlist id; arg2: pointer on media ids; arg3: media ids count; can fail
Definition vlc_media_library.h:656
@ 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:641
@ VLC_ML_ARTIST_SET_FAVORITE
arg1: artist id; arg2: bool; can fail
Definition vlc_media_library.h:664
@ VLC_ML_REMOVE_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:606
@ VLC_ML_SET_FOLDER_PRIVATE
arg1: mrl (const char *); res: can't fail
Definition vlc_media_library.h:618
@ VLC_ML_GENRE_SET_FAVORITE
arg1: genre id; arg2: bool; can fail
Definition vlc_media_library.h:666
@ VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2(out): vlc_ml_playback_states_all*
Definition vlc_media_library.h:637
@ VLC_ML_BAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:607
@ VLC_ML_NEW_STREAM
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition vlc_media_library.h:629
@ VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: char**;
Definition vlc_media_library.h:635
@ VLC_ML_MEDIA_SET_FAVORITE
arg1: media id; arg2: bool
Definition vlc_media_library.h:645
@ VLC_ML_PLAYLIST_MOVE
arg1: playlist id; arg2: from; arg3: to; arg4: count; can fail
Definition vlc_media_library.h:658
@ VLC_ML_PLAYLIST_CREATE
arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail
Definition vlc_media_library.h:654
@ VLC_ML_MEDIA_ADD_LABEL
arg1: media id; arg2: label name
Definition vlc_media_library.h:646
@ VLC_ML_SET_FOLDER_PUBLIC
arg1: mrl (const char *); res: can't fail
Definition vlc_media_library.h:617
@ VLC_ML_UNBAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition vlc_media_library.h:608
@ VLC_ML_PAUSE_BACKGROUND
no args; can't fail
Definition vlc_media_library.h:621
@ VLC_ML_ALBUM_SET_FAVORITE
arg1: album id; arg2: bool; can fail
Definition vlc_media_library.h:665
@ VLC_ML_PLAYLIST_DELETE
arg1: playlist id; can fail
Definition vlc_media_library.h:655
@ VLC_ML_MEDIA_SET_GENRE_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:640
@ VLC_ML_PLAYLIST_SET_FAVORITE
arg1: playlist id; arg2: bool; can fail
Definition vlc_media_library.h:667
@ VLC_ML_CLEAR_HISTORY
arg1: vlc_ml_history_type_t; can't fail
Definition vlc_media_library.h:625
@ VLC_ML_MEDIA_SET_PLAYED
arg1: media id; arg2: bool
Definition vlc_media_library.h:644
@ VLC_ML_MEDIA_SET_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition vlc_media_library.h:639
@ VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS
arg1: media id
Definition vlc_media_library.h:650
@ VLC_ML_MEDIA_ADD_EXTERNAL_MRL
arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t)
Definition vlc_media_library.h:642
@ VLC_ML_REMOVE_STREAM
Definition vlc_media_library.h:631
@ VLC_ML_PLAYLIST_REMOVE
arg1: playlist id; arg2: position; arg3: count; can fail
Definition vlc_media_library.h:659
@ VLC_ML_MEDIA_UPDATE_PROGRESS
arg1: media id; arg2: playback position; can fail
Definition vlc_media_library.h:634
@ VLC_ML_IS_INDEXED
arg1: mrl (const char*) arg2 (out): bool*; res: can fail
Definition vlc_media_library.h:609
@ VLC_ML_PLAYLIST_RENAME
arg1: playlist id; arg2: const char*; can fail
Definition vlc_media_library.h:660
@ VLC_ML_CLEAR_HISTORY_BY_MEDIA_TYPE
arg1: vlc_ml_media_type_t (audio or video); can fail
Definition vlc_media_library.h:669
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:2071
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:1077
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:1337
static int vlc_ml_media_add_label(vlc_medialibrary_t *p_ml, int64_t i_media_id, const char *psz_label)
Definition vlc_media_library.h:1129
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:1914
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:2076
static int vlc_ml_reload_folder(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1072
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:1810
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:1159
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:1348
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:1383
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:1479
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:1801
static size_t vlc_ml_count_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1650
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:1666
void(* vlc_ml_callback_t)(void *p_data, const vlc_ml_event_t *p_event)
Definition vlc_media_library.h:930
static int vlc_ml_folder_set_favorite(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool b_favorite)
Definition vlc_media_library.h:2066
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:1560
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:1765
static int vlc_ml_remove_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1051
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:2038
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:1905
#define vlc_ml_instance_get(x)
Definition vlc_media_library.h:978
vlc_ml_event_type
Definition vlc_media_library.h:718
@ VLC_ML_EVENT_ARTIST_UPDATED
Definition vlc_media_library.h:732
@ VLC_ML_EVENT_BOOKMARKS_ADDED
Definition vlc_media_library.h:746
@ VLC_ML_EVENT_RESCAN_STARTED
Sent when an application requested rescan starts being processed.
Definition vlc_media_library.h:842
@ VLC_ML_EVENT_ALBUM_ADDED
Definition vlc_media_library.h:734
@ VLC_ML_EVENT_DISCOVERY_PROGRESS
Sent when a discovery or reload operation starts analyzing a new folder.
Definition vlc_media_library.h:768
@ VLC_ML_EVENT_BACKGROUND_IDLE_CHANGED
Sent when a discoverer or parser threads changes its idle state.
Definition vlc_media_library.h:816
@ VLC_ML_EVENT_BOOKMARKS_DELETED
Definition vlc_media_library.h:748
@ VLC_ML_EVENT_FOLDER_DELETED
Definition vlc_media_library.h:751
@ VLC_ML_EVENT_MEDIA_UPDATED
Definition vlc_media_library.h:729
@ VLC_ML_EVENT_ENTRY_POINT_ADDED
Sent when a new entry point gets added to the database.
Definition vlc_media_library.h:788
@ VLC_ML_EVENT_PLAYLIST_ADDED
Definition vlc_media_library.h:740
@ VLC_ML_EVENT_DISCOVERY_STARTED
A discovery started.
Definition vlc_media_library.h:762
@ VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED
Sent after a media thumbnail was generated, or if it's generation failed.
Definition vlc_media_library.h:831
@ VLC_ML_EVENT_GENRE_UPDATED
Definition vlc_media_library.h:744
@ VLC_ML_EVENT_ENTRY_POINT_REMOVED
Sent when an entry point removal request has been processed.
Definition vlc_media_library.h:795
@ VLC_ML_EVENT_HISTORY_CHANGED
Sent after the history gets changed.
Definition vlc_media_library.h:838
@ VLC_ML_EVENT_ENTRY_POINT_BANNED
Sent when an entry point ban request has been processed.
Definition vlc_media_library.h:802
@ VLC_ML_EVENT_GROUP_DELETED
Definition vlc_media_library.h:739
@ VLC_ML_EVENT_GROUP_ADDED
Definition vlc_media_library.h:737
@ VLC_ML_EVENT_GENRE_DELETED
Definition vlc_media_library.h:745
@ VLC_ML_EVENT_GENRE_ADDED
Definition vlc_media_library.h:743
@ VLC_ML_EVENT_ENTRY_POINT_UNBANNED
Sent when an entry point unban request has been processed.
Definition vlc_media_library.h:809
@ VLC_ML_EVENT_ALBUM_DELETED
Definition vlc_media_library.h:736
@ VLC_ML_EVENT_MEDIA_ADDED
Entity modification callbacks.
Definition vlc_media_library.h:728
@ VLC_ML_EVENT_DISCOVERY_FAILED
This event is sent when a discovery failed.
Definition vlc_media_library.h:778
@ VLC_ML_EVENT_ARTIST_DELETED
Definition vlc_media_library.h:733
@ VLC_ML_EVENT_BOOKMARKS_UPDATED
Definition vlc_media_library.h:747
@ VLC_ML_EVENT_PLAYLIST_DELETED
Definition vlc_media_library.h:742
@ VLC_ML_EVENT_FOLDER_ADDED
Definition vlc_media_library.h:749
@ VLC_ML_EVENT_PARSING_PROGRESS_UPDATED
Sent when the parsing progress percentage gets updated.
Definition vlc_media_library.h:824
@ VLC_ML_EVENT_ALBUM_UPDATED
Definition vlc_media_library.h:735
@ VLC_ML_EVENT_ARTIST_ADDED
Definition vlc_media_library.h:731
@ VLC_ML_EVENT_FOLDER_UPDATED
Definition vlc_media_library.h:750
@ VLC_ML_EVENT_FAVORITES_CHANGED
Sent when favorites list changes.
Definition vlc_media_library.h:848
@ VLC_ML_EVENT_PLAYLIST_UPDATED
Definition vlc_media_library.h:741
@ VLC_ML_EVENT_DISCOVERY_COMPLETED
Sent when all queued discovery operations are done being processed.
Definition vlc_media_library.h:772
@ VLC_ML_EVENT_GROUP_UPDATED
Definition vlc_media_library.h:738
@ VLC_ML_EVENT_MEDIA_DELETED
Definition vlc_media_library.h:730
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:1431
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:1738
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:1693
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:1923
static vlc_ml_query_params_t vlc_ml_query_params_create(void)
Definition vlc_media_library.h:1035
static int vlc_ml_media_update_progress(vlc_medialibrary_t *p_ml, int64_t i_media_id, double progress)
Definition vlc_media_library.h:1143
static vlc_ml_artist_t * vlc_ml_get_artist(vlc_medialibrary_t *p_ml, int64_t i_artist_id)
Definition vlc_media_library.h:1353
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:1981
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:1506
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:1837
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:1208
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:2103
static int vlc_ml_set_folder_private(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1082
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:1885
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:1416
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:1196
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:1792
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:2202
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:1675
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:1154
static int vlc_ml_ban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1056
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:2121
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:480
@ VLC_ML_LIST_FAVORITE_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:566
@ VLC_ML_LIST_FAVORITE_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:564
@ VLC_ML_LIST_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:485
@ VLC_ML_COUNT_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:514
@ VLC_ML_LIST_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:523
@ VLC_ML_LIST_FAVORITE_MEDIA
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:560
@ VLC_ML_LIST_SHOW_EPISODES
arg1: show id; arg2(out): vlc_ml_media_list_t**
Definition vlc_media_library.h:537
@ VLC_ML_LIST_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:491
@ VLC_ML_LIST_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:509
@ VLC_ML_LIST_GROUPS
arg1 (out): vlc_ml_group_list_t**
Definition vlc_media_library.h:499
@ VLC_ML_LIST_FOLDER_MEDIA
arg1: folder id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:556
@ VLC_ML_COUNT_FAVORITE_VIDEOS
arg1 (out): size_t*
Definition vlc_media_library.h:563
@ VLC_ML_COUNT_MOVIES
arg1 (out): size_t*
Definition vlc_media_library.h:488
@ VLC_ML_COUNT_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:551
@ VLC_ML_LIST_GENRE_ARTISTS
arg1: genre id; arg2 (out): vlc_ml_artist_list_t**
Definition vlc_media_library.h:529
@ VLC_ML_COUNT_GENRES
arg1 (out): size_t*
Definition vlc_media_library.h:494
@ VLC_ML_COUNT_SHOWS
arg1 (out): size_t*
Definition vlc_media_library.h:498
@ VLC_ML_LIST_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t**
Definition vlc_media_library.h:586
@ VLC_ML_LIST_MEDIA_BOOKMARKS
arg1: media id; arg2 (out): vlc_ml_bookmark_list_t**
Definition vlc_media_library.h:543
@ VLC_ML_LIST_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition vlc_media_library.h:501
@ VLC_ML_LIST_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t**
Definition vlc_media_library.h:584
@ VLC_ML_LIST_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:489
@ VLC_ML_COUNT_SHOW_EPISODES
arg1: show id; arg2(out): size_t*
Definition vlc_media_library.h:538
@ VLC_ML_LIST_FAVORITE_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:570
@ VLC_ML_COUNT_FAVORITE_MEDIA
arg1 (out): size_t*
Definition vlc_media_library.h:561
@ VLC_ML_LIST_SUBFOLDERS
arg1: parent id; arg2 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:554
@ VLC_ML_LIST_FAVORITE_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:574
@ VLC_ML_LIST_ARTISTS
arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:495
@ VLC_ML_COUNT_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:585
@ VLC_ML_COUNT_ARTIST_ALBUMS
arg1: The artist id.
Definition vlc_media_library.h:524
@ VLC_ML_LIST_AUDIO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:507
@ VLC_ML_COUNT_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:579
@ VLC_ML_COUNT_FAVORITE_GENRES
arg1 (out): size_t*
Definition vlc_media_library.h:571
@ VLC_ML_COUNT_GENRE_TRACKS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:532
@ VLC_ML_COUNT_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:526
@ VLC_ML_LIST_GENRE_TRACKS
arg1: genre id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:531
@ VLC_ML_COUNT_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:520
@ VLC_ML_LIST_MEDIA_LABELS
arg1: media id; arg2 (out): vlc_ml_label_list_t**
Definition vlc_media_library.h:541
@ VLC_ML_COUNT_AUDIOS
arg1 (out): size_t*
Definition vlc_media_library.h:490
@ VLC_ML_COUNT_SUBFOLDERS
arg1: parent id; arg2 (out): size_t*
Definition vlc_media_library.h:555
@ VLC_ML_LIST_HISTORY
arg1 vlc_ml_history_type_t; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:503
@ VLC_ML_COUNT_ARTISTS
arg1 bool: includeAll; arg2 (out): size_t*
Definition vlc_media_library.h:496
@ VLC_ML_LIST_GENRE_ALBUMS
arg1: genre id; arg2 (out): vlc_ml_album_list_t**
Definition vlc_media_library.h:533
@ VLC_ML_COUNT_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:587
@ VLC_ML_COUNT_GENRE_ALBUMS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:534
@ VLC_ML_COUNT_MEDIA_LABELS
arg1: media id; arg2 (out): size_t*
Definition vlc_media_library.h:542
@ VLC_ML_COUNT_FAVORITE_ARTISTS
arg1 (out): size_t*
Definition vlc_media_library.h:569
@ VLC_ML_LIST_GROUP_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:546
@ VLC_ML_COUNT_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:581
@ VLC_ML_LIST_VIDEO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:580
@ VLC_ML_LIST_FAVORITE_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition vlc_media_library.h:572
@ VLC_ML_LIST_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:550
@ VLC_ML_LIST_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition vlc_media_library.h:511
@ VLC_ML_COUNT_GROUP_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition vlc_media_library.h:547
@ VLC_ML_COUNT_VIDEOS
arg1 (out): size_t*
Definition vlc_media_library.h:486
@ VLC_ML_COUNT_MEDIA
arg1 (out): size_t*
Definition vlc_media_library.h:484
@ VLC_ML_LIST_MOVIES
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:487
@ VLC_ML_COUNT_FAVORITE_ALBUMS
arg1 (out): size_t*
Definition vlc_media_library.h:567
@ VLC_ML_LIST_SHOWS
arg1 (out): vlc_ml_show_list_t**
Definition vlc_media_library.h:497
@ VLC_ML_LIST_FAVORITE_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:562
@ VLC_ML_COUNT_FOLDER_MEDIA
arg1: folder id; arg2 (out): size_t*
Definition vlc_media_library.h:557
@ VLC_ML_COUNT_AUDIO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:508
@ VLC_ML_COUNT_FOLDERS
arg1 (out): size_t*
Definition vlc_media_library.h:512
@ VLC_ML_LIST_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:582
@ VLC_ML_COUNT_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): size_t*
Definition vlc_media_library.h:510
@ VLC_ML_LIST_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition vlc_media_library.h:493
@ VLC_ML_LIST_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:517
@ VLC_ML_COUNT_ALBUMS
arg1 (out): size_t*
Definition vlc_media_library.h:492
@ VLC_ML_LIST_FOLDERS_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition vlc_media_library.h:513
@ VLC_ML_COUNT_AUDIO_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition vlc_media_library.h:583
@ VLC_ML_LIST_FAVORITE_ARTISTS
arg1 (out): vlc_ml_artist_list_t**
Definition vlc_media_library.h:568
@ VLC_ML_COUNT_VIDEO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:506
@ VLC_ML_LIST_ARTIST_TRACKS
arg1: The artist id.
Definition vlc_media_library.h:525
@ VLC_ML_COUNT_ALBUM_TRACKS
arg1: The album id.
Definition vlc_media_library.h:518
@ VLC_ML_COUNT_FAVORITE_FOLDERS
arg1 (out): size_t*
Definition vlc_media_library.h:575
@ VLC_ML_LIST_MEDIA
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:483
@ VLC_ML_COUNT_HISTORY
arg1 vlc_ml_history_type_t; arg2 (out): size_t*
Definition vlc_media_library.h:504
@ VLC_ML_LIST_VIDEO_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition vlc_media_library.h:505
@ VLC_ML_COUNT_PLAYLISTS
arg1 (out): size_t*
Definition vlc_media_library.h:502
@ VLC_ML_COUNT_FAVORITE_PLAYLISTS
arg1 (out): size_t*
Definition vlc_media_library.h:573
@ VLC_ML_COUNT_GROUPS
arg1 (out): size_t*
Definition vlc_media_library.h:500
@ VLC_ML_LIST_ALBUM_ARTISTS
arg1: The album id.
Definition vlc_media_library.h:519
@ VLC_ML_COUNT_GENRE_ARTISTS
arg1: genre id; arg2 (out): size_t*
Definition vlc_media_library.h:530
@ VLC_ML_LIST_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t**
Definition vlc_media_library.h:578
@ VLC_ML_COUNT_FAVORITE_AUDIOS
arg1 (out): size_t*
Definition vlc_media_library.h:565
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:1950
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:1247
#define vlc_ml_release(OBJ)
Definition vlc_media_library.h:2243
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:1446
static vlc_ml_genre_t * vlc_ml_get_genre(vlc_medialibrary_t *p_ml, int64_t i_genre_id)
Definition vlc_media_library.h:1358
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:1846
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:1311
vlc_ml_playback_state
User playback settings.
Definition vlc_media_library.h:683
@ VLC_ML_PLAYBACK_STATE_PROGRAM
Definition vlc_media_library.h:688
@ VLC_ML_PLAYBACK_STATE_TITLE
Definition vlc_media_library.h:686
@ VLC_ML_PLAYBACK_STATE_DEINTERLACE
Definition vlc_media_library.h:693
@ VLC_ML_PLAYBACK_STATE_SPEED
Definition vlc_media_library.h:685
@ VLC_ML_PLAYBACK_STATE_VIDEO_FILTER
Definition vlc_media_library.h:694
@ VLC_ML_PLAYBACK_STATE_AUDIO_DELAY
Definition vlc_media_library.h:697
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_DELAY
Definition vlc_media_library.h:699
@ VLC_ML_PLAYBACK_STATE_RATING
Definition vlc_media_library.h:684
@ VLC_ML_PLAYBACK_STATE_APP_SPECIFIC
Definition vlc_media_library.h:700
@ VLC_ML_PLAYBACK_STATE_ASPECT_RATIO
Definition vlc_media_library.h:690
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_TRACK
Definition vlc_media_library.h:698
@ VLC_ML_PLAYBACK_STATE_GAIN
Definition vlc_media_library.h:696
@ VLC_ML_PLAYBACK_STATE_AUDIO_TRACK
Definition vlc_media_library.h:695
@ VLC_ML_PLAYBACK_STATE_CROP
Definition vlc_media_library.h:692
@ VLC_ML_PLAYBACK_STATE_CHAPTER
Definition vlc_media_library.h:687
@ VLC_ML_PLAYBACK_STATE_VIDEO_TRACK
Definition vlc_media_library.h:689
@ VLC_ML_PLAYBACK_STATE_ZOOM
Definition vlc_media_library.h:691
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:1960
static int vlc_ml_resume_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1092
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:1941
void vlc_ml_album_release(vlc_ml_album_t *p_album)
Definition medialibrary.c:222
static int vlc_ml_media_remove_label(vlc_medialibrary_t *p_ml, int64_t i_media_id, const char *psz_label)
Definition vlc_media_library.h:1136
static vlc_ml_show_t * vlc_ml_get_show(vlc_medialibrary_t *p_ml, int64_t i_show_id)
Definition vlc_media_library.h:1363
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:1285
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:1293
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:1221
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:2175
static vlc_ml_folder_t * vlc_ml_get_folder(vlc_medialibrary_t *p_ml, int64_t i_folder_id)
Definition vlc_media_library.h:1373
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:1855
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:1819
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:1214
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:1497
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:1641
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:2008
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:2139
static vlc_ml_group_t * vlc_ml_get_group(vlc_medialibrary_t *p_ml, int64_t i_group_id)
Definition vlc_media_library.h:1368
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:1569
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:1240
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:1720
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:1894
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:1173
static vlc_ml_media_t * vlc_ml_new_stream(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition vlc_media_library.h:1116
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:1401
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:2184
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:2081
static int vlc_ml_media_remove_all_bookmarks(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition vlc_media_library.h:1257
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:2022
static int vlc_ml_is_indexed(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool *p_res)
Definition vlc_media_library.h:1066
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:1623
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:1524
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:1587
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:1378
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:1729
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:1515
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:1302
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:1867
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:1342
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:2211
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:1149
static int vlc_ml_pause_background(vlc_medialibrary_t *p_ml)
Definition vlc_media_library.h:1087
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:1828
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:1186
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:2094
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:1684
static int vlc_ml_playlist_delete(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition vlc_media_library.h:1277
static int vlc_ml_unban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1061
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:1233
static int vlc_ml_clear_history_by_media_type(vlc_medialibrary_t *p_ml, vlc_ml_media_type_t type)
Definition vlc_media_library.h:1102
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:1488
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:2220
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:2229
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:1542
static size_t vlc_ml_count_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1632
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_RATING
Definition vlc_media_library.h:444
@ 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_TRACKNUMBER_ALBUM_RELEASE_YEAR
Definition vlc_media_library.h:445
@ 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:1614
static int vlc_ml_add_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition vlc_media_library.h:1046
static size_t vlc_ml_count_groups(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1876
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:1470
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:1756
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:1179
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:2148
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:2112
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:1392
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:1605
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:2130
static size_t vlc_ml_count_media(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition vlc_media_library.h:1578
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:1533
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:1596
vlc_ml_parent_type
Definition vlc_media_library.h:591
@ VLC_ML_PARENT_ARTIST
Definition vlc_media_library.h:594
@ VLC_ML_PARENT_ALBUM
Definition vlc_media_library.h:593
@ VLC_ML_PARENT_GROUP
Definition vlc_media_library.h:597
@ VLC_ML_PARENT_FOLDER
Definition vlc_media_library.h:598
@ VLC_ML_PARENT_UNKNOWN
Definition vlc_media_library.h:592
@ VLC_ML_PARENT_PLAYLIST
Definition vlc_media_library.h:599
@ VLC_ML_PARENT_SHOW
Definition vlc_media_library.h:595
@ VLC_ML_PARENT_GENRE
Definition vlc_media_library.h:596
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:1994
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:1331
char psz_label[13]
Definition vout_intf.c:100
char psz_value[8]
Definition vout_intf.c:110