VLC  4.0.0-dev
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 # ifdef __cplusplus
34 extern "C" {
35 # endif
36 
37 typedef enum vlc_ml_media_type_t
38 {
43 
44 typedef enum vlc_ml_media_subtype_t
45 {
51 
52 typedef enum vlc_ml_file_type_t
53 {
61 
62 typedef enum vlc_ml_track_type_t
63 {
68 
69 typedef enum vlc_ml_thumbnail_size_t
70 {
73 
76 
77 typedef enum vlc_ml_thumbnail_status_t
78 {
85 
86 typedef enum vlc_ml_history_type_t
87 {
91 
92 typedef struct vlc_ml_thumbnail_t
93 {
94  char* psz_mrl;
95  /**
96  * True if a thumbnail is available, or if thumbnail generation was
97  * attempted but failed
98  */
101 
102 typedef struct vlc_ml_movie_t
103 {
104  char* psz_summary;
105  char* psz_imdb_id;
107 
108 typedef struct vlc_ml_show_episode_t
109 {
110  char* psz_summary;
111  char* psz_tvdb_id;
112  uint32_t i_episode_nb;
113  uint32_t i_season_number;
115 
116 typedef struct vlc_ml_show_t
117 {
118  int64_t i_id;
119  char* psz_name;
120  char* psz_summary;
122  char* psz_tvdb_id;
123  unsigned int i_release_year;
124  uint32_t i_nb_episodes;
125  uint32_t i_nb_seasons;
127 
128 typedef struct vlc_ml_album_track_t
129 {
130  int64_t i_artist_id;
131  int64_t i_album_id;
132  int64_t i_genre_id;
133 
134  int i_track_nb;
137 
138 typedef struct vlc_ml_label_t
139 {
140  int64_t i_id;
141  char* psz_name;
143 
144 typedef struct vlc_ml_label_list_t
145 {
146  size_t i_nb_items;
149 
150 typedef struct vlc_ml_file_t
151 {
152  char* psz_mrl;
153  int64_t i_size;
158  bool b_present;
160 
161 typedef struct vlc_ml_file_list_t
162 {
163  size_t i_nb_items;
166 
167 typedef struct vlc_ml_media_track_t
168 {
169  char* psz_codec;
173  uint32_t i_bitrate;
174  union
175  {
176  struct
177  {
178  // Audio
179  uint32_t i_nbChannels;
180  uint32_t i_sampleRate;
181  } a;
182  struct
183  {
184  // Video
185  uint32_t i_height;
186  uint32_t i_width;
187  uint32_t i_sarNum;
188  uint32_t i_sarDen;
189  uint32_t i_fpsNum;
190  uint32_t i_fpsDen;
191  } v;
192  };
194 
195 typedef struct vlc_ml_media_track_list_t
196 {
197  size_t i_nb_items;
200 
201 typedef struct vlc_ml_media_t
202 {
203  int64_t i_id;
204 
207 
210 
211  int32_t i_year;
212  /* Duration in milliseconds */
213  int64_t i_duration;
214  uint32_t i_playcount;
215  float f_progress;
217  char* psz_title;
218 
220 
221  bool b_is_favorite;
222 
223  union
224  {
228  };
230 
231 typedef struct vlc_ml_group_t
232 {
233  int64_t i_id;
234 
235  char* psz_name;
236 
237  unsigned int i_nb_total_media;
238 
239  unsigned int i_duration;
240 
241  uint32_t i_creation_date;
243 
244 typedef struct vlc_ml_playlist_t
245 {
246  int64_t i_id;
247 
248  char* psz_name;
249 
250  char* psz_mrl;
251 
252  char* psz_artwork_mrl;
253 
254  uint32_t i_creation_date;
255 
256  bool b_is_read_only;
258 
259 typedef struct vlc_ml_artist_t
260 {
261  int64_t i_id;
262  char* psz_name;
265  char* psz_mb_id;
266 
267  unsigned int i_nb_album;
268  unsigned int i_nb_tracks;
270 
271 typedef struct vlc_ml_artist_list_t
272 {
273  size_t i_nb_items;
276 
277 typedef struct vlc_ml_album_t {
278  int64_t i_id;
279  char* psz_title;
280  char* psz_summary;
282  char* psz_artist;
283  int64_t i_artist_id;
284 
285  size_t i_nb_tracks;
286  unsigned int i_duration;
287  unsigned int i_year;
289 
290 typedef struct vlc_ml_genre_t
291 {
292  int64_t i_id;
293  char* psz_name;
294  size_t i_nb_tracks;
296 
297 typedef struct vlc_ml_media_list_t
298 {
299  size_t i_nb_items;
302 
303 typedef struct vlc_ml_album_list_t
304 {
305  size_t i_nb_items;
308 
309 typedef struct vlc_ml_show_list_t
310 {
311  size_t i_nb_items;
314 
315 typedef struct vlc_ml_genre_list_t
316 {
317  size_t i_nb_items;
320 
321 typedef struct vlc_ml_group_list_t
322 {
323  size_t i_nb_items;
326 
327 typedef struct vlc_ml_playlist_list_t
328 {
329  size_t i_nb_items;
332 
333 typedef struct vlc_ml_folder_t
334 {
335  int64_t i_id; /**< This folder's MRL. Will be NULL if b_present is false */
336  char* psz_mrl; /**< This folder's MRL. Will be NULL if b_present is false */
337  bool b_present; /**< The presence state for this folder. */
338  bool b_banned; /**< Will be true if the user required this folder to be excluded */
340 
341 typedef struct vlc_ml_folder_list_t
342 {
343  size_t i_nb_items;
346 
347 typedef struct vlc_ml_bookmark_t
348 {
349  int64_t i_media_id; /**< The associated media ID */
350  int64_t i_time; /**< The bookmark time. The unit is arbitrary */
351  char* psz_name; /**< The bookmark name */
352  char* psz_description; /**< The bookmark description */
354 
355 typedef struct vlc_ml_boomkmark_list_t
356 {
357  size_t i_nb_items;
360 
361 /* Opaque medialibrary pointer, to be used by any non-medialibrary module */
363 /* "Private" medialibrary pointer, to be used by the core & medialibrary modules */
365 /* Opaque event callback type */
367 
368 typedef enum vlc_ml_sorting_criteria_t
369 {
370  /*
371  * Default depends on the entity type:
372  * - By track number (and disc number) for album tracks
373  * - Alphabetical order for others
374  */
388 
391 {
392  const char* psz_pattern;
393  uint32_t i_nbResults;
394  uint32_t i_offset;
396  bool b_desc;
397 };
398 
400 {
401  VLC_ML_GET_MEDIA, /**< arg1: Media ID; ret: vlc_ml_media_t* */
402  VLC_ML_GET_MEDIA_BY_MRL, /**< arg1: Media MRL; ret: vlc_ml_media_t* */
403  VLC_ML_GET_INPUT_ITEM, /**< arg1: Media ID; ret: input_item_t* */
404  VLC_ML_GET_INPUT_ITEM_BY_MRL, /**< arg1: Media MRL; ret: input_item_t* */
405  VLC_ML_GET_ALBUM, /**< arg1: Album ID; ret: vlc_ml_album_t* */
406  VLC_ML_GET_ARTIST, /**< arg1: Artist ID; ret: vlc_ml_artist_t* */
407  VLC_ML_GET_GENRE, /**< arg1: Genre ID; ret: vlc_ml_genre_t* */
408  VLC_ML_GET_SHOW, /**< arg1: Show ID; ret: vlc_ml_show_t* */
409  VLC_ML_GET_PLAYLIST, /**< arg1: Playlist ID; ret: vlc_ml_playlist_t* */
410  VLC_ML_GET_GROUP, /**< arg1: Group ID; ret: vlc_ml_group_t* */
411  VLC_ML_GET_FOLDER, /**< arg1: folder ID; ret: vlc_ml_folder_t* */
412 };
413 
415 {
416  /* General listing: */
417 
418  VLC_ML_LIST_VIDEOS, /**< arg1 (out): vlc_ml_media_list_t** */
419  VLC_ML_COUNT_VIDEOS, /**< arg1 (out): size_t* */
420  VLC_ML_LIST_AUDIOS, /**< arg1 (out): vlc_ml_media_list_t** */
421  VLC_ML_COUNT_AUDIOS, /**< arg1 (out): size_t* */
422  VLC_ML_LIST_ALBUMS, /**< arg1 (out): vlc_ml_album_list_t** */
423  VLC_ML_COUNT_ALBUMS, /**< arg1 (out): size_t* */
424  VLC_ML_LIST_GENRES, /**< arg1 (out): vlc_ml_genre_list_t** */
425  VLC_ML_COUNT_GENRES, /**< arg1 (out): size_t* */
426  VLC_ML_LIST_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t** */
427  VLC_ML_COUNT_ARTISTS, /**< arg1 bool: includeAll; arg2 (out): size_t* */
428  VLC_ML_LIST_SHOWS, /**< arg1 (out): vlc_ml_show_list_t** */
429  VLC_ML_COUNT_SHOWS, /**< arg1 (out): size_t* */
430  VLC_ML_LIST_GROUPS, /**< arg1 (out): vlc_ml_group_list_t** */
431  VLC_ML_COUNT_GROUPS, /**< arg1 (out): size_t* */
432  VLC_ML_LIST_PLAYLISTS, /**< arg1 (out): vlc_ml_playlist_list_t** */
433  VLC_ML_COUNT_PLAYLISTS, /**< arg1 (out): size_t* */
434  VLC_ML_LIST_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
435  VLC_ML_COUNT_HISTORY, /**< arg1 (out): size_t* */
436  VLC_ML_LIST_HISTORY_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
437  VLC_ML_COUNT_HISTORY_BY_TYPE, /**< arg1 vlc_ml_media_type_t: the media type. arg2 (out): vlc_ml_media_list_t** */
438  VLC_ML_LIST_STREAM_HISTORY, /**< arg1 (out): vlc_ml_media_list_t** */
439  VLC_ML_COUNT_STREAM_HISTORY, /**< arg1 (out): size_t* */
440  VLC_ML_LIST_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t** */
441  VLC_ML_COUNT_ENTRY_POINTS, /**< arg1 bool: list_banned; arg2 (out): size_t* */
442  VLC_ML_LIST_FOLDERS, /**< arg1 (out): vlc_ml_folder_list_t** */
443  VLC_ML_COUNT_FOLDERS, /**< arg1 (out): size_t* */
444 
445  /* Album specific listings */
446  VLC_ML_LIST_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): vlc_ml_media_list_t** */
447  VLC_ML_COUNT_ALBUM_TRACKS, /**< arg1: The album id. arg2 (out): size_t* */
448  VLC_ML_LIST_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): vlc_ml_album_list_t** */
449  VLC_ML_COUNT_ALBUM_ARTISTS, /**< arg1: The album id. arg2 (out): size_t* */
450 
451  /* Artist specific listings */
452  VLC_ML_LIST_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): vlc_ml_album_list_t** */
453  VLC_ML_COUNT_ARTIST_ALBUMS, /**< arg1: The artist id. arg2(out): size_t* */
454  VLC_ML_LIST_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): vlc_ml_media_list_t** */
455  VLC_ML_COUNT_ARTIST_TRACKS, /**< arg1: The artist id. arg2(out): size_t* */
456 
457  /* Genre specific listings */
458  VLC_ML_LIST_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): vlc_ml_artist_list_t** */
459  VLC_ML_COUNT_GENRE_ARTISTS, /**< arg1: genre id; arg2 (out): size_t* */
460  VLC_ML_LIST_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): vlc_ml_media_list_t** */
461  VLC_ML_COUNT_GENRE_TRACKS, /**< arg1: genre id; arg2 (out): size_t* */
462  VLC_ML_LIST_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): vlc_ml_album_list_t** */
463  VLC_ML_COUNT_GENRE_ALBUMS, /**< arg1: genre id; arg2 (out): size_t* */
464 
465  /* Show specific listings */
466  VLC_ML_LIST_SHOW_EPISODES, /**< arg1: show id; arg2(out): vlc_ml_media_list_t** */
467  VLC_ML_COUNT_SHOW_EPISODES, /**< arg1: show id; arg2(out): size_t* */
468 
469  /* Media specific listings */
470  VLC_ML_LIST_MEDIA_LABELS, /**< arg1: media id; arg2 (out): vlc_ml_label_list_t** */
471  VLC_ML_COUNT_MEDIA_LABELS, /**< arg1: media id; arg2 (out): size_t* */
472  VLC_ML_LIST_MEDIA_BOOKMARKS, /**< arg1: media id; arg2 (out): vlc_ml_bookmark_list_t** */
473 
474  /* Groups specific listings */
475  VLC_ML_LIST_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
476  VLC_ML_COUNT_GROUP_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
477 
478  /* Playlist specific listings */
479  VLC_ML_LIST_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): vlc_ml_media_list_t** */
480  VLC_ML_COUNT_PLAYLIST_MEDIA, /**< arg1: playlist id; arg2 (out): size_t* */
481 
482  /* Folder specific listings */
483  VLC_ML_LIST_SUBFOLDERS, /**< arg1: parent id; arg2 (out): vlc_ml_folder_list_t** */
484  VLC_ML_COUNT_SUBFOLDERS, /**< arg1: parent id; arg2 (out): size_t* */
485  VLC_ML_LIST_FOLDER_MEDIAS, /**< arg1: folder id; arg2 (out): vlc_ml_media_list_t** */
486  VLC_ML_COUNT_FOLDER_MEDIAS, /**< arg1: folder id; arg2 (out): size_t* */
487 
488  /* Children entities listing */
489  VLC_ML_LIST_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t** */
490  VLC_ML_COUNT_MEDIA_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
491  VLC_ML_LIST_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t** */
492  VLC_ML_COUNT_ARTISTS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
493  VLC_ML_LIST_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t** */
494  VLC_ML_COUNT_ALBUMS_OF, /**< arg1: parent entity type; arg2: parent entity id; arg3(out): size_t* */
495 };
496 
498 {
506 };
507 
508 enum vlc_ml_control
509 {
510  /* Adds a folder to discover through the medialibrary */
511  VLC_ML_ADD_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
512  VLC_ML_REMOVE_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
513  VLC_ML_BAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
514  VLC_ML_UNBAN_FOLDER, /**< arg1: mrl (const char*) res: can't fail */
515  VLC_ML_IS_INDEXED, /**< arg1: mrl (const char*) arg2 (out): bool*; res: can fail */
516  /**
517  * Reload a specific folder, or all.
518  * arg1: mrl (const char*), NULL to reload all folders
519  * res: can't fail
520  */
522 
523  /* Pause/resume background operations, such as media discovery & media analysis */
524  VLC_ML_PAUSE_BACKGROUND, /**< no args; can't fail */
525  VLC_ML_RESUME_BACKGROUND, /**< no args; can't fail */
526 
527  /* Misc operations */
528  VLC_ML_CLEAR_HISTORY, /**< no args; can't fail */
529 
530  /* Create media */
531  VLC_ML_NEW_EXTERNAL_MEDIA, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
532  VLC_ML_NEW_STREAM, /**< arg1: const char*; arg2(out): vlc_ml_media_t** */
533 
534  /* Media management */
535  VLC_ML_MEDIA_UPDATE_PROGRESS, /**< arg1: media id; arg2: playback position; can fail */
536  VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: char**; */
537  VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, /**< arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*; */
538  VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2(out): vlc_ml_playback_states_all* */
539  VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, /**< arg1: media id; arg2: const vlc_ml_playback_states_all* */
540  VLC_ML_MEDIA_SET_THUMBNAIL, /**< arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t */
541  VLC_ML_MEDIA_GENERATE_THUMBNAIL, /**< arg1: media id; arg2: vlc_ml_thumbnail_size_t; arg3: width; arg4: height; arg5: position */
542  VLC_ML_MEDIA_ADD_EXTERNAL_MRL, /**< arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t) */
543  VLC_ML_MEDIA_SET_TYPE, /**< arg1: media id; arg2: vlc_ml_media_type_t */
544  VLC_ML_MEDIA_ADD_BOOKMARK, /**< arg1: media id; arg2: int64_t */
545  VLC_ML_MEDIA_REMOVE_BOOKMARK, /**< arg1: media id; arg2: int64_t */
546  VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, /**< arg1: media id */
547  VLC_ML_MEDIA_UPDATE_BOOKMARK, /**< arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char* */
548 
549  /* Playlist management */
550  VLC_ML_PLAYLIST_CREATE, /**< arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail */
551  VLC_ML_PLAYLIST_DELETE, /**< arg1: playlist id; can fail */
552  VLC_ML_PLAYLIST_APPEND, /**< arg1: playlist id; arg2: media id; can fail */
553  VLC_ML_PLAYLIST_INSERT, /**< arg1: playlist id; arg2: media id; arg3: position; can fail */
554  VLC_ML_PLAYLIST_MOVE, /**< arg1: playlist id; arg2: from; arg3: to; can fail */
555  VLC_ML_PLAYLIST_REMOVE /**< arg1: playlist id; arg2: position; can fail */
556 };
557 
558 /**
559  * User playback settings.
560  * All values/units are up to the caller and are not interpreted by the media
561  * library.
562  * All values are stored and returned as strings.
563  * When calling vlc_medialibrary_t::pf_control with vlc_ml_MEDIA_GET_MEDIA_PLAYBACK_STATE,
564  * the value will be returned stored in the provided char**. If the state was
565  * not set yet, NULL will be returned.
566  * When setting a state, NULL can be provided as a value to unset it.
567  */
569 {
588 };
589 
590 typedef struct vlc_ml_playback_states_all
591 {
592  float rate;
593  float zoom;
599  char* crop;
600  char* deinterlace;
603 
605 {
606  /**
607  * Entity modification callbacks. The affected entity will be passed:
608  * - As a vlc_ml_<type>_t, depending on the type of the modified/inserted
609  * entity, in vlc_ml_event_t::modification::p_<type>
610  * for ADDED and UPDATED variants.
611  * - as an id, in vlc_ml_event_t::deletion::i_entity_id
612  * When _DELETED callbacks get invoked, the entity will already have been
613  * deleted from the database, and cannot be retrieved anymore
614  */
636  /**
637  * A discovery started.
638  * For each VLC_ML_EVENT_DISCOVERY_STARTED event, there will be
639  * 1 VLC_ML_EVENT_DISCOVERY_COMPLETED event, and N
640  * VLC_ML_EVENT_DISCOVERY_PROGRESS events.
641  * The entry point being discovered is stored in
642  * vlc_ml_event_t::discovery_started::psz_entry_point.
643  */
645  /**
646  * Sent when a discovery or reload operation starts analyzing a new folder.
647  * The discovered entry point is stored in
648  * vlc_ml_event_t::discovery_progress::psz_entry_point.
649  */
651  /**
652  * Sent when an entry point discovery is completed.
653  * The entry point that was being discovered is stored in
654  * vlc_ml_event_t::discovery_completed::psz_entry_point.
655  * The success or failure state is stored in
656  * vlc_ml_event_t::discovery_completed::b_success
657  */
659  /**
660  * Sent when a new entry point gets added to the database.
661  * The entry point that was added is stored in
662  * vlc::ml_event_t::entry_point_added::psz_entry_point, and the success or failure
663  * state is stored in vlc_ml_event_t::entry_point_added::b_success
664  * If successful, this event won't be emited again for this entry point.
665  * In case of failure, this event will be fired again if the same entry point
666  * is queued for discovery again.
667  */
669  /**
670  * Sent when an entry point removal request has been processed.
671  * The removed entry point is stored in
672  * vlc_ml_event_t::entry_point_removed::psz_entry_point and the success or failure
673  * state is stored in vlc_ml_event_t::entry_point_removed::b_success
674  */
676  /**
677  * Sent when an entry point ban request has been processed.
678  * The banned entry point is stored in
679  * vlc_ml_event_t::entry_point_banned::psz_entry_point and the operation success
680  * state is stored in vlc_ml_event_t::entry_point_banned::b_success
681  */
683  /**
684  * Sent when an entry point unban request has been processed.
685  * The unbanned entry point is stored in
686  * vlc_ml_event_t::entry_point_unbanned::psz_entry_point and the operation success
687  * state is stored in vlc_ml_event_t::entry_point_unbanned::b_success
688  */
690  /**
691  * Sent when a discoverer or parser threads changes its idle state.
692  * The idle state is stored in vlc_ml_event_t::background_idle_changed.b_idle.
693  * False means at least one background thread is in running, true means
694  * both discoverer & parser threads are paused.
695  */
697  /**
698  * Sent when the parsing progress percentage gets updated.
699  * The percentage is stored as a [0;100] integer, in
700  * vlc_ml_event_t::parsing_progress::i_percent
701  * This value might decrease as more media get discovered, but it will only
702  * increase once all discovery operations are completed.
703  */
705  /**
706  * Sent after a media thumbnail was generated, or if it's generation failed.
707  * The media is stored in vlc_ml_event_t::media_thumbnail_generated::p_media
708  * and the success state is stored in
709  * vlc_ml_event_t::media_thumbnail_generated::b_success
710  */
712  /**
713  * Sent after the history gets changed. It can be either cleaned, or simply
714  * modified because a media was recently played/removed from the history.
715  * The history type (media/network) is stored in
716  * vlc_ml_event_t::history_changed::history_type
717  */
719  /**
720  * Sent when an application requested rescan starts being processed.
721  */
723 };
724 
725 typedef struct vlc_ml_event_t
726 {
727  int i_type;
728  union
729  {
730  struct
731  {
732  const char* psz_entry_point;
734  struct
735  {
736  const char* psz_entry_point;
738  struct
739  {
740  const char* psz_entry_point;
741  bool b_success;
743  struct
744  {
745  const char* psz_entry_point;
746  bool b_success;
748  struct
749  {
750  const char* psz_entry_point;
751  bool b_success;
753  struct
754  {
755  const char* psz_entry_point;
756  bool b_success;
758  struct
759  {
760  const char* psz_entry_point;
761  bool b_success;
763  struct
764  {
765  uint8_t i_percent;
767  union
768  {
769  const vlc_ml_media_t* p_media;
777  struct
778  {
779  int64_t i_entity_id;
781  struct
782  {
783  int64_t i_entity_id;
784  } deletion;
785  struct
786  {
787  bool b_idle;
789  struct
790  {
791  const vlc_ml_media_t* p_media;
793  bool b_success;
795  struct
796  {
799  };
801 
802 typedef void (*vlc_ml_callback_t)( void* p_data, const vlc_ml_event_t* p_event );
803 
804 typedef struct vlc_medialibrary_callbacks_t
805 {
806  void (*pf_send_event)( vlc_medialibrary_module_t* p_ml, const vlc_ml_event_t* p_event );
808 
810 {
811  struct vlc_object_t obj;
812 
814 
815  void* p_sys;
816 
817  int (*pf_control)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
818  /**
819  * List some entities from the medialibrary.
820  *
821  * \param p_ml The medialibrary module instance.
822  * \param i_query The type search to be performed. \see vlc_ml_list enumeration
823  * \param p_params A pointer to a vlc_ml_query_params_t structure, or NULL for
824  * the default parameters (alphabetical ascending sort, no pagination)
825  *
826  * \return VLC_SUCCESS or an error code
827  *
828  * Refer to the individual list of vlc_ml_list requests for the additional
829  * per-query input/ouput parameters values & types
830  */
831  int (*pf_list)( struct vlc_medialibrary_module_t* p_ml, int i_query,
832  const vlc_ml_query_params_t* p_params, va_list args );
833 
834  /**
835  * Get a specific entity by its id or another unique value
836  *
837  * \return The required entity, or a NULL pointer if couldn't be found.
838  *
839  * Refer to the list of queries for the specific return type
840  */
841  void* (*pf_get)( struct vlc_medialibrary_module_t* p_ml, int i_query, va_list args );
842 
844 };
845 
848 
850 #define vlc_ml_instance_get(x) vlc_ml_instance_get( VLC_OBJECT(x) )
851 
852 VLC_API void* vlc_ml_get( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
853 VLC_API int vlc_ml_control( vlc_medialibrary_t* p_ml, int i_query, ... ) VLC_USED;
854 VLC_API int vlc_ml_list( vlc_medialibrary_t* p_ml, int i_query,
855  const vlc_ml_query_params_t* p_params, ... );
856 
857 /**
858  * \brief Registers a medialibrary callback.
859  * \returns A handle to the callback, to be passed to vlc_ml_event_unregister_callback
860  */
863 
864 /**
865  * \brief Unregisters a medialibrary callback
866  * \param p_handle The handled returned by vlc_ml_register_callback
867  */
869  vlc_ml_event_callback_t* p_callback );
870 /**
871  * \brief Unregisters a medialibrary callback from the said callback.
872  * \param p_callback The handle returned by vlc_ml_register_callback
873  *
874  * This must only be called synchronously from the callback function provided to
875  * vlc_ml_event_register_callback
876  * The p_callback handle must be considered invalid when this function returns
877  */
879  vlc_ml_event_callback_t* p_callback );
880 
881 
890 
904 
906 {
907  return (vlc_ml_query_params_t) {
908  .psz_pattern = NULL,
909  .i_nbResults = 0,
910  .i_offset = 0,
911  .i_sort = VLC_ML_SORTING_DEFAULT,
912  .b_desc = false
913  };
914 }
915 
916 static inline int vlc_ml_add_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
917 {
918  return vlc_ml_control( p_ml, VLC_ML_ADD_FOLDER, psz_folder );
919 }
920 
921 static inline int vlc_ml_remove_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
922 {
923  return vlc_ml_control( p_ml, VLC_ML_REMOVE_FOLDER, psz_folder );
924 }
925 
926 static inline int vlc_ml_ban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
927 {
928  return vlc_ml_control( p_ml, VLC_ML_BAN_FOLDER, psz_folder );
929 }
930 
931 static inline int vlc_ml_unban_folder( vlc_medialibrary_t* p_ml, const char* psz_folder )
932 {
933  return vlc_ml_control( p_ml, VLC_ML_UNBAN_FOLDER, psz_folder );
934 }
935 
936 static inline int vlc_ml_is_indexed( vlc_medialibrary_t* p_ml,
937  const char* psz_mrl, bool* p_res )
938 {
939  return vlc_ml_control( p_ml, VLC_ML_IS_INDEXED, psz_mrl, p_res );
940 }
941 
942 static inline int vlc_ml_reload_folder( vlc_medialibrary_t* p_ml, const char* psz_mrl )
943 {
944  return vlc_ml_control( p_ml, VLC_ML_RELOAD_FOLDER, psz_mrl );
945 }
946 
947 static inline int vlc_ml_pause_background( vlc_medialibrary_t* p_ml )
948 {
949  return vlc_ml_control( p_ml, VLC_ML_PAUSE_BACKGROUND );
950 }
951 
952 static inline int vlc_ml_resume_background( vlc_medialibrary_t* p_ml )
953 {
955 }
956 
957 static inline int vlc_ml_clear_history( vlc_medialibrary_t* p_ml )
958 {
959  return vlc_ml_control( p_ml, VLC_ML_CLEAR_HISTORY );
960 }
961 
962 static inline vlc_ml_media_t* vlc_ml_new_external_media( vlc_medialibrary_t* p_ml, const char* psz_mrl )
963 {
964  vlc_ml_media_t* res;
965  if ( vlc_ml_control( p_ml, VLC_ML_NEW_EXTERNAL_MEDIA, psz_mrl, &res ) != VLC_SUCCESS )
966  return NULL;
967  return res;
968 }
969 
970 static inline vlc_ml_media_t* vlc_ml_new_stream( vlc_medialibrary_t* p_ml, const char* psz_mrl )
971 {
972  vlc_ml_media_t* res;
973  if ( vlc_ml_control( p_ml, VLC_ML_NEW_STREAM, psz_mrl, &res ) != VLC_SUCCESS )
974  return NULL;
975  return res;
976 }
977 
978 static inline int vlc_ml_media_update_progress( vlc_medialibrary_t* p_ml, int64_t i_media_id,
979  double progress )
980 {
981  return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_PROGRESS, i_media_id, progress );
982 }
983 
984 static inline int vlc_ml_media_get_playback_state( vlc_medialibrary_t* p_ml, int64_t i_media_id, int i_state, char** ppsz_result )
985 {
986  return vlc_ml_control( p_ml, VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, ppsz_result );
987 }
988 
989 static 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 )
990 {
991  return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE, i_media_id, i_state, psz_value );
992 }
993 
995  int64_t i_media_id,
997 {
998  return vlc_ml_control( p_ml,VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
999 }
1000 
1002  int64_t i_media_id,
1003  const vlc_ml_playback_states_all* prefs )
1004 {
1005  return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES, i_media_id, prefs );
1006 }
1007 
1008 static inline int vlc_ml_media_set_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1009  const char* psz_mrl, vlc_ml_thumbnail_size_t sizeType )
1010 {
1011  return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_THUMBNAIL, i_media_id, psz_mrl, sizeType );
1012 }
1013 
1014 static inline int vlc_ml_media_generate_thumbnail( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1016  uint32_t i_desired_width,
1017  uint32_t i_desired_height,
1018  float position )
1019 {
1020  return vlc_ml_control( p_ml, VLC_ML_MEDIA_GENERATE_THUMBNAIL, i_media_id,
1021  size_type, i_desired_width, i_desired_height, position );
1022 }
1023 
1024 static inline int vlc_ml_media_add_external_mrl( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1025  const char* psz_mrl, int i_type )
1026 {
1027  return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_EXTERNAL_MRL, i_media_id, psz_mrl, i_type );
1028 }
1029 
1030 static inline int vlc_ml_media_set_type( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1032 {
1033  return vlc_ml_control( p_ml, VLC_ML_MEDIA_SET_TYPE, i_media_id, (int)i_type );
1034 }
1035 
1036 static inline vlc_ml_bookmark_list_t*
1038  int64_t i_media_id )
1039 {
1040  assert( p_ml != NULL );
1042  if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_BOOKMARKS, params, i_media_id,
1043  &res ) != VLC_SUCCESS )
1044  return NULL;
1045  return res;
1046 }
1047 
1048 static inline int
1049 vlc_ml_media_add_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1051  assert( p_ml != NULL );
1052  return vlc_ml_control( p_ml, VLC_ML_MEDIA_ADD_BOOKMARK, i_media_id, i_time );
1053 }
1054 
1055 static inline int
1056 vlc_ml_media_remove_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id, int64_t i_time )
1058  assert( p_ml != NULL );
1059  return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_BOOKMARK, i_media_id, i_time );
1060 }
1061 
1062 static inline int
1063 vlc_ml_media_update_bookmark( vlc_medialibrary_t* p_ml, int64_t i_media_id,
1064  int64_t i_time, const char* psz_name,
1065  const char* psz_desc )
1066 {
1067  assert( p_ml != NULL );
1068  return vlc_ml_control( p_ml, VLC_ML_MEDIA_UPDATE_BOOKMARK, i_media_id,
1069  i_time, psz_name, psz_desc );
1070 }
1071 
1072 static inline int
1073 vlc_ml_media_remove_all_bookmarks( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1075  assert( p_ml != NULL );
1076  return vlc_ml_control( p_ml, VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS, i_media_id );
1077 }
1078 
1079 static inline vlc_ml_playlist_t*
1080 vlc_ml_playlist_create( vlc_medialibrary_t * p_ml, const char * name)
1082  assert( p_ml != NULL );
1083 
1084  vlc_ml_playlist_t* result;
1085 
1086  if (vlc_ml_control( p_ml, VLC_ML_PLAYLIST_CREATE, name, &result ) != VLC_SUCCESS )
1087  return NULL;
1088 
1089  return result;
1090 }
1091 
1092 static inline int
1093 vlc_ml_playlist_delete( vlc_medialibrary_t * p_ml, int64_t i_playlist_id )
1095  assert( p_ml != NULL );
1096 
1097  return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_DELETE, i_playlist_id );
1098 }
1099 
1100 static inline int
1101 vlc_ml_playlist_append( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, int64_t i_media_id )
1103  assert( p_ml != NULL );
1104 
1105  return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_APPEND, i_playlist_id, i_media_id );
1106 }
1107 
1108 static inline int
1109 vlc_ml_playlist_insert( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, int64_t i_media_id,
1110  uint32_t i_position )
1111 {
1112  assert( p_ml != NULL );
1113 
1114  return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_INSERT, i_playlist_id, i_media_id, i_position );
1115 }
1116 
1117 static inline int
1119  int64_t i_playlist_id, uint32_t i_from, uint32_t i_to )
1120 {
1121  assert( p_ml != NULL );
1122 
1123  return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_MOVE, i_playlist_id, i_from, i_to );
1124 }
1125 
1126 static inline int
1127 vlc_ml_playlist_remove( vlc_medialibrary_t * p_ml, int64_t i_playlist_id, uint32_t i_position )
1129  assert( p_ml != NULL );
1130 
1131  return vlc_ml_control( p_ml, VLC_ML_PLAYLIST_REMOVE, i_playlist_id, i_position );
1132 }
1133 
1134 static inline vlc_ml_media_t* vlc_ml_get_media( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1136  return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA, i_media_id );
1137 }
1138 
1140  const char* psz_mrl )
1141 {
1142  return (vlc_ml_media_t*)vlc_ml_get( p_ml, VLC_ML_GET_MEDIA_BY_MRL, psz_mrl );
1143 }
1144 
1145 static inline input_item_t* vlc_ml_get_input_item( vlc_medialibrary_t* p_ml, int64_t i_media_id )
1147  return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM, i_media_id );
1148 }
1149 
1151  const char* psz_mrl )
1152 {
1153  return (input_item_t*)vlc_ml_get( p_ml, VLC_ML_GET_INPUT_ITEM_BY_MRL, psz_mrl );
1154 }
1155 
1156 static inline vlc_ml_album_t* vlc_ml_get_album( vlc_medialibrary_t* p_ml, int64_t i_album_id )
1158  return (vlc_ml_album_t*)vlc_ml_get( p_ml, VLC_ML_GET_ALBUM, i_album_id );
1159 }
1160 
1161 static inline vlc_ml_artist_t* vlc_ml_get_artist( vlc_medialibrary_t* p_ml, int64_t i_artist_id )
1163  return (vlc_ml_artist_t*)vlc_ml_get( p_ml, VLC_ML_GET_ARTIST, i_artist_id );
1164 }
1165 
1166 static inline vlc_ml_genre_t* vlc_ml_get_genre( vlc_medialibrary_t* p_ml, int64_t i_genre_id )
1168  return (vlc_ml_genre_t*)vlc_ml_get( p_ml, VLC_ML_GET_GENRE, i_genre_id );
1169 }
1170 
1171 static inline vlc_ml_show_t* vlc_ml_get_show( vlc_medialibrary_t* p_ml, int64_t i_show_id )
1173  return (vlc_ml_show_t*)vlc_ml_get( p_ml, VLC_ML_GET_SHOW, i_show_id );
1174 }
1175 
1176 static inline vlc_ml_group_t* vlc_ml_get_group( vlc_medialibrary_t* p_ml, int64_t i_group_id )
1178  return (vlc_ml_group_t*)vlc_ml_get( p_ml, VLC_ML_GET_GROUP, i_group_id );
1179 }
1180 
1181 static inline vlc_ml_playlist_t* vlc_ml_get_playlist( vlc_medialibrary_t* p_ml, int64_t i_playlist_id )
1183  return (vlc_ml_playlist_t*)vlc_ml_get( p_ml, VLC_ML_GET_PLAYLIST, i_playlist_id );
1184 }
1185 
1186 static 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 )
1188  vlc_assert( p_ml != NULL );
1189  vlc_ml_media_list_t* res;
1190  if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1191  return NULL;
1192  return res;
1193 }
1194 
1195 static 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 )
1197  vlc_assert( p_ml != NULL );
1198  size_t res;
1199  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_MEDIA_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1200  return 0;
1201  return res;
1202 }
1203 
1204 static 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 )
1206  vlc_assert( p_ml != NULL );
1207  vlc_ml_artist_list_t* res;
1208  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1209  return NULL;
1210  return res;
1211 }
1212 
1213 static 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 )
1215  vlc_assert( p_ml != NULL );
1216  size_t res;
1217  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1218  return 0;
1219  return res;
1220 }
1221 
1222 static 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 )
1224  vlc_assert( p_ml != NULL );
1225  vlc_ml_album_list_t* res;
1226  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1227  return NULL;
1228  return res;
1229 }
1230 
1231 static 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 )
1233  vlc_assert( p_ml != NULL );
1234  size_t res;
1235  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS_OF, params, i_parent_type, i_parent_id, &res ) != VLC_SUCCESS )
1236  return 0;
1237  return res;
1238 }
1239 
1240 static 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 )
1242  vlc_assert( p_ml != NULL );
1243  vlc_ml_media_list_t* res;
1244  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_TRACKS, params, i_album_id, &res ) != VLC_SUCCESS )
1245  return NULL;
1246  return res;
1247 }
1248 
1249 static 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 )
1251  vlc_assert( p_ml != NULL );
1252  size_t count;
1253  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_TRACKS, params, i_album_id, &count ) != VLC_SUCCESS )
1254  return 0;
1255  return count;
1256 }
1257 
1258 static 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 )
1260  vlc_assert( p_ml != NULL );
1261  vlc_ml_media_list_t* res;
1262  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUM_ARTISTS, params, i_album_id, &res ) != VLC_SUCCESS )
1263  return NULL;
1264  return res;
1265 }
1266 
1267 static 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 )
1269  vlc_assert( p_ml != NULL );
1270  size_t count;
1271  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUM_ARTISTS, params, i_album_id, &count ) != VLC_SUCCESS )
1272  return 0;
1273  return count;
1274 }
1275 
1276 static 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 )
1278  vlc_assert( p_ml != NULL );
1279  vlc_ml_album_list_t* res;
1280  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_ALBUMS, params, i_artist_id, &res ) != VLC_SUCCESS )
1281  return NULL;
1282  return res;
1283 }
1284 
1285 static 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 )
1287  vlc_assert( p_ml != NULL );
1288  size_t count;
1289  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_ALBUMS, params, i_artist_id, &count ) != VLC_SUCCESS )
1290  return 0;
1291  return count;
1292 }
1293 
1294 static 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 )
1296  vlc_assert( p_ml != NULL );
1297  vlc_ml_media_list_t* res;
1298  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTIST_TRACKS, params, i_artist_id, &res ) != VLC_SUCCESS )
1299  return NULL;
1300  return res;
1301 }
1302 
1303 static 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 )
1305  vlc_assert( p_ml != NULL );
1306  size_t count;
1307  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTIST_TRACKS, params, i_artist_id, &count ) != VLC_SUCCESS )
1308  return 0;
1309  return count;
1310 }
1311 
1314  vlc_assert( p_ml != NULL );
1315  vlc_ml_media_list_t* res;
1316  if ( vlc_ml_list( p_ml, VLC_ML_LIST_VIDEOS, params, &res ) != VLC_SUCCESS )
1317  return NULL;
1318  return res;
1319 }
1320 
1321 static inline size_t vlc_ml_count_video_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1323  vlc_assert( p_ml != NULL );
1324  size_t count;
1325  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_VIDEOS, params, &count ) != VLC_SUCCESS )
1326  return 0;
1327  return count;
1328 }
1329 
1332  vlc_assert( p_ml != NULL );
1333  vlc_ml_media_list_t* res;
1334  if ( vlc_ml_list( p_ml, VLC_ML_LIST_AUDIOS, params, &res ) != VLC_SUCCESS )
1335  return NULL;
1336  return res;
1337 }
1338 
1339 static inline size_t vlc_ml_count_audio_media( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1341  vlc_assert( p_ml != NULL );
1342  size_t count;
1343  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_AUDIOS, params, &count ) != VLC_SUCCESS )
1344  return 0;
1345  return count;
1346 }
1347 
1350  vlc_assert( p_ml != NULL );
1351  vlc_ml_album_list_t* res;
1352  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ALBUMS, params, &res ) != VLC_SUCCESS )
1353  return NULL;
1354  return res;
1355 }
1356 
1357 static inline size_t vlc_ml_count_albums( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1359  vlc_assert( p_ml != NULL );
1360  size_t count;
1361  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ALBUMS, params, &count ) != VLC_SUCCESS )
1362  return 0;
1363  return count;
1364 }
1365 
1368  vlc_assert( p_ml != NULL );
1369  vlc_ml_genre_list_t* res;
1370  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRES, params, &res ) != VLC_SUCCESS )
1371  return NULL;
1372  return res;
1373 }
1374 
1375 static inline size_t vlc_ml_count_genres( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1377  vlc_assert( p_ml != NULL );
1378  size_t count;
1379  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRES, params, &count ) != VLC_SUCCESS )
1380  return 0;
1381  return count;
1382 }
1383 
1384 /**
1385  * @brief vlc_ml_list_artists
1386  * @param params Query parameters, or NULL for the default
1387  * @param b_include_all True if you wish to fetch artists without at least one album.
1388  * @return
1389  */
1390 static 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 )
1392  vlc_assert( p_ml != NULL );
1393  vlc_ml_artist_list_t* res;
1394  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ARTISTS, params, (int)b_include_all, &res ) != VLC_SUCCESS )
1395  return NULL;
1396  return res;
1397 }
1398 
1399 static inline size_t vlc_ml_count_artists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, bool includeAll )
1401  vlc_assert( p_ml != NULL );
1402  size_t count;
1403  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ARTISTS, params, includeAll, &count ) != VLC_SUCCESS )
1404  return 0;
1405  return count;
1406 }
1407 
1410  vlc_assert( p_ml != NULL );
1411  vlc_ml_show_list_t* res;
1412  if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOWS, params, &res ) != VLC_SUCCESS )
1413  return NULL;
1414  return res;
1415 }
1416 
1417 static inline size_t vlc_ml_count_shows( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1419  vlc_assert( p_ml != NULL );
1420  size_t count;
1421  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_SHOWS, params, &count ) != VLC_SUCCESS )
1422  return 0;
1423  return count;
1424 }
1425 
1426 static 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 )
1428  vlc_assert( p_ml != NULL );
1429  vlc_ml_artist_list_t* res;
1430  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ARTISTS, params, i_genre_id, &res ) != VLC_SUCCESS )
1431  return NULL;
1432  return res;
1433 }
1434 
1435 static 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 )
1437  vlc_assert( p_ml != NULL );
1438  size_t count;
1439  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ARTISTS, params, i_genre_id, &count ) != VLC_SUCCESS )
1440  return 0;
1441  return count;
1442 }
1443 
1444 static 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 )
1446  vlc_assert( p_ml != NULL );
1447  vlc_ml_media_list_t* res;
1448  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_TRACKS, params, i_genre_id, &res ) != VLC_SUCCESS )
1449  return NULL;
1450  return res;
1451 }
1452 
1453 static 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 )
1455  vlc_assert( p_ml != NULL );
1456  size_t count;
1457  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_TRACKS, params, i_genre_id, &count ) != VLC_SUCCESS )
1458  return 0;
1459  return count;
1460 }
1461 
1462 static 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 )
1464  vlc_assert( p_ml != NULL );
1465  vlc_ml_album_list_t* res;
1466  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GENRE_ALBUMS, params, i_genre_id, &res ) != VLC_SUCCESS )
1467  return NULL;
1468  return res;
1469 }
1470 
1471 static 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 )
1473  vlc_assert( p_ml != NULL );
1474  size_t count;
1475  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_genre_id, &count ) != VLC_SUCCESS )
1476  return 0;
1477  return count;
1478 }
1479 
1480 static 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 )
1482  vlc_assert( p_ml != NULL );
1483  vlc_ml_media_list_t* res;
1484  if ( vlc_ml_list( p_ml, VLC_ML_LIST_SHOW_EPISODES, params, i_show_id, &res ) != VLC_SUCCESS )
1485  return NULL;
1486  return res;
1487 }
1488 
1489 static 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 )
1491  vlc_assert( p_ml != NULL );
1492  size_t count;
1493  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GENRE_ALBUMS, params, i_show_id, &count ) != VLC_SUCCESS )
1494  return 0;
1495  return count;
1496 }
1497 
1498 static 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 )
1500  vlc_assert( p_ml != NULL );
1501  vlc_ml_label_list_t* res;
1502  if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &res ) != VLC_SUCCESS )
1503  return NULL;
1504  return res;
1505 }
1506 
1507 static 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 )
1509  vlc_assert( p_ml != NULL );
1510  size_t count;
1511  if ( vlc_ml_list( p_ml, VLC_ML_LIST_MEDIA_LABELS, params, i_media_id, &count ) != VLC_SUCCESS )
1512  return 0;
1513  return count;
1514 }
1515 
1518  vlc_assert( p_ml != NULL );
1519  vlc_ml_media_list_t* res;
1520  if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY, params, &res ) != VLC_SUCCESS )
1521  return NULL;
1522  return res;
1523 }
1524 
1525 static inline size_t vlc_ml_count_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1527  vlc_assert( p_ml != NULL );
1528  size_t count;
1529  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY, params, &count ) != VLC_SUCCESS )
1530  return 0;
1531  return count;
1532 }
1533 
1534 
1537  vlc_assert( p_ml != NULL );
1538  vlc_ml_media_list_t* res;
1539  if ( vlc_ml_list( p_ml, VLC_ML_LIST_HISTORY_BY_TYPE, params, (int)type, &res ) != VLC_SUCCESS )
1540  return NULL;
1541  return res;
1542 }
1543 
1544 static inline size_t vlc_ml_count_history_by_type( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params, vlc_ml_media_type_t type )
1546  vlc_assert( p_ml != NULL );
1547  size_t count;
1548  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_HISTORY_BY_TYPE, params, (int)type, &count ) != VLC_SUCCESS )
1549  return 0;
1550  return count;
1551 }
1552 
1553 
1554 
1557  vlc_assert( p_ml != NULL );
1558  vlc_ml_media_list_t* res;
1559  if ( vlc_ml_list( p_ml, VLC_ML_LIST_STREAM_HISTORY, params, &res ) != VLC_SUCCESS )
1560  return NULL;
1561  return res;
1562 }
1563 
1564 static inline size_t vlc_ml_count_stream_history( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1566  vlc_assert( p_ml != NULL );
1567  size_t count;
1568  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_STREAM_HISTORY, params, &count ) != VLC_SUCCESS )
1569  return 0;
1570  return count;
1571 }
1572 
1573 //-------------------------------------------------------------------------------------------------
1574 // Groups
1575 
1578  vlc_assert( p_ml != NULL );
1579  vlc_ml_group_list_t* res;
1580  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUPS, params, &res ) != VLC_SUCCESS )
1581  return NULL;
1582  return res;
1583 }
1584 
1585 static inline size_t vlc_ml_count_groups( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1587  vlc_assert( p_ml != NULL );
1588  size_t count;
1589  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUPS, params, &count ) != VLC_SUCCESS )
1590  return 0;
1591  return count;
1592 }
1593 
1594 static 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 )
1596  vlc_assert( p_ml != NULL );
1597  vlc_ml_media_list_t* res;
1598  if ( vlc_ml_list( p_ml, VLC_ML_LIST_GROUP_MEDIA, params, i_group_id, &res ) != VLC_SUCCESS )
1599  return NULL;
1600  return res;
1601 }
1602 
1603 static 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 )
1605  vlc_assert( p_ml != NULL );
1606  size_t count;
1607  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_GROUP_MEDIA, params, i_group_id, &count ) != VLC_SUCCESS )
1608  return 0;
1609  return count;
1610 }
1611 
1612 //-------------------------------------------------------------------------------------------------
1613 
1616  vlc_assert( p_ml != NULL );
1618  if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLISTS, params, &res ) != VLC_SUCCESS )
1619  return NULL;
1620  return res;
1621 }
1622 
1623 static inline size_t vlc_ml_count_playlists( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1625  vlc_assert( p_ml != NULL );
1626  size_t count;
1627  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLISTS, params, &count ) != VLC_SUCCESS )
1628  return 0;
1629  return count;
1630 }
1631 
1632 static 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 )
1634  vlc_assert( p_ml != NULL );
1635  vlc_ml_media_list_t* res;
1636  if ( vlc_ml_list( p_ml, VLC_ML_LIST_PLAYLIST_MEDIA, params, i_playlist_id, &res ) != VLC_SUCCESS )
1637  return NULL;
1638  return res;
1639 }
1640 
1641 static 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 )
1643  vlc_assert( p_ml != NULL );
1644  size_t count;
1645  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_PLAYLIST_MEDIA, params, i_playlist_id, &count ) != VLC_SUCCESS )
1646  return 0;
1647  return count;
1648 }
1649 
1652  vlc_assert( p_ml != NULL );
1653  vlc_ml_folder_list_t *res;
1654  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1655  return NULL;
1656  return res;
1657 }
1658 
1659 static inline size_t vlc_ml_count_entry_points( vlc_medialibrary_t* p_ml, const vlc_ml_query_params_t* params )
1661  vlc_assert( p_ml != NULL );
1662  size_t res;
1663  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)false, &res ) != VLC_SUCCESS )
1664  return 0;
1665  return res;
1666 }
1667 
1668 static inline vlc_ml_folder_list_t*
1671  vlc_assert( p_ml != NULL );
1672  vlc_ml_folder_list_t* res;
1673  if ( vlc_ml_list( p_ml, VLC_ML_LIST_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1674  return NULL;
1675  return res;
1676 }
1677 
1678 static inline size_t vlc_ml_count_banned_entry_points( vlc_medialibrary_t* p_ml,
1679  const vlc_ml_query_params_t* params )
1680 {
1681  vlc_assert( p_ml != NULL );
1682  size_t res;
1683  if ( vlc_ml_list( p_ml, VLC_ML_COUNT_ENTRY_POINTS, params, (int)true, &res ) != VLC_SUCCESS )
1684  return 0;
1685  return res;
1686 }
1687 
1688 #ifdef __cplusplus
1689 }
1690 #endif /* C++ */
1691 
1692 #ifndef __cplusplus
1693 # define vlc_ml_release( OBJ ) _Generic( ( OBJ ), \
1694  vlc_ml_show_t*: vlc_ml_show_release, \
1695  vlc_ml_artist_t*: vlc_ml_artist_release, \
1696  vlc_ml_album_t*: vlc_ml_album_release, \
1697  vlc_ml_genre_t*: vlc_ml_genre_release, \
1698  vlc_ml_media_t*: vlc_ml_media_release, \
1699  vlc_ml_group_t*: vlc_ml_group_release, \
1700  vlc_ml_folder_t*: vlc_ml_folder_release, \
1701  vlc_ml_playlist_t*: vlc_ml_playlist_release, \
1702  vlc_ml_label_list_t*: vlc_ml_label_list_release, \
1703  vlc_ml_file_list_t*: vlc_ml_file_list_release, \
1704  vlc_ml_artist_list_t*: vlc_ml_artist_list_release, \
1705  vlc_ml_media_list_t*: vlc_ml_media_list_release, \
1706  vlc_ml_album_list_t*: vlc_ml_album_list_release, \
1707  vlc_ml_show_list_t*: vlc_ml_show_list_release, \
1708  vlc_ml_genre_list_t*: vlc_ml_genre_list_release, \
1709  vlc_ml_group_list_t*: vlc_ml_group_list_release, \
1710  vlc_ml_playlist_list_t*: vlc_ml_playlist_list_release, \
1711  vlc_ml_folder_list_t*: vlc_ml_folder_list_release, \
1712  vlc_ml_playback_states_all*: vlc_ml_playback_states_all_release, \
1713  vlc_ml_bookmark_t*: vlc_ml_bookmark_release, \
1714  vlc_ml_bookmark_list_t*: vlc_ml_bookmark_list_release \
1715  )( OBJ )
1716 #else
1717 static inline void vlc_ml_release( vlc_ml_show_t* show ) { vlc_ml_show_release( show ); }
1718 static inline void vlc_ml_release( vlc_ml_artist_t* artist ) { vlc_ml_artist_release( artist ); }
1719 static inline void vlc_ml_release( vlc_ml_album_t* album ) { vlc_ml_album_release( album ); }
1720 static inline void vlc_ml_release( vlc_ml_genre_t* genre ) { vlc_ml_genre_release( genre ); }
1721 static inline void vlc_ml_release( vlc_ml_media_t* media ) { vlc_ml_media_release( media ); }
1722 static inline void vlc_ml_release( vlc_ml_group_t* group ) { vlc_ml_group_release( group ); }
1723 static inline void vlc_ml_release( vlc_ml_folder_t* folder ) { vlc_ml_folder_release( folder ); }
1724 static inline void vlc_ml_release( vlc_ml_playlist_t* playlist ) { vlc_ml_playlist_release( playlist ); }
1735 static inline void vlc_ml_release( vlc_ml_playback_states_all* prefs ) { vlc_ml_playback_states_all_release( prefs ); }
1736 static inline void vlc_ml_release( vlc_ml_bookmark_t* bookmark ) { vlc_ml_bookmark_release( bookmark ); }
1738 #endif
1739 
1740 #endif /* VLC_MEDIA_LIBRARY_H */
VLC_ML_COUNT_HISTORY_BY_TYPE
@ VLC_ML_COUNT_HISTORY_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition: vlc_media_library.h:438
vlc_ml_event_t
struct vlc_ml_event_t vlc_ml_event_t
VLC_ML_PAUSE_BACKGROUND
@ VLC_ML_PAUSE_BACKGROUND
no args; can't fail
Definition: vlc_media_library.h:525
VLC_ML_COUNT_GENRE_TRACKS
@ VLC_ML_COUNT_GENRE_TRACKS
arg1: genre id; arg2 (out): size_t*
Definition: vlc_media_library.h:462
VLC_ML_LIST_HISTORY_BY_TYPE
@ VLC_ML_LIST_HISTORY_BY_TYPE
arg1 vlc_ml_media_type_t: the media type.
Definition: vlc_media_library.h:437
vlc_medialibrary_module_t::cbs
const vlc_medialibrary_callbacks_t * cbs
Definition: vlc_media_library.h:844
VLC_ML_PARENT_SHOW
@ VLC_ML_PARENT_SHOW
Definition: vlc_media_library.h:503
vlc_ml_media_t::i_playcount
uint32_t i_playcount
Definition: vlc_media_library.h:215
vlc_ml_playback_states_all::deinterlace
char * deinterlace
Definition: vlc_media_library.h:601
vlc_ml_event_type
vlc_ml_event_type
Definition: vlc_media_library.h:605
vlc_ml_artist_t::psz_name
char * psz_name
Definition: vlc_media_library.h:263
VLC_ML_PARENT_ARTIST
@ VLC_ML_PARENT_ARTIST
Definition: vlc_media_library.h:502
count
size_t count
Definition: core.c:401
vlc_ml_list
VLC_EXPORT int vlc_ml_list(vlc_medialibrary_t *p_ml, int i_query, const vlc_ml_query_params_t *p_params,...)
Definition: medialibrary.c:430
VLC_ML_GET_ALBUM
@ VLC_ML_GET_ALBUM
arg1: Album ID; ret: vlc_ml_album_t*
Definition: vlc_media_library.h:406
VLC_ML_THUMBNAIL_STATUS_CRASH
@ VLC_ML_THUMBNAIL_STATUS_CRASH
Definition: vlc_media_library.h:84
VLC_ML_PLAYBACK_STATE_PROGRAM
@ VLC_ML_PLAYBACK_STATE_PROGRAM
Definition: vlc_media_library.h:575
VLC_ML_LIST_STREAM_HISTORY
@ VLC_ML_LIST_STREAM_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:439
vlc_ml_group_t
struct vlc_ml_group_t vlc_ml_group_t
VLC_API
#define VLC_API
Definition: fourcc_gen.c:31
vlc_ml_media_list_t
struct vlc_ml_media_list_t vlc_ml_media_list_t
vlc_ml_event_t::entry_point_banned
struct vlc_ml_event_t::@232::@239 entry_point_banned
vlc_ml_show_t
struct vlc_ml_show_t vlc_ml_show_t
vlc_ml_playlist_delete
static int vlc_ml_playlist_delete(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition: vlc_media_library.h:1094
VLC_ML_LIST_GROUP_MEDIA
@ VLC_ML_LIST_GROUP_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:476
vlc_ml_label_list_release
VLC_EXPORT void vlc_ml_label_list_release(vlc_ml_label_list_t *p_list)
Definition: medialibrary.c:286
VLC_ML_EVENT_ALBUM_UPDATED
@ VLC_ML_EVENT_ALBUM_UPDATED
Definition: vlc_media_library.h:623
vlc_ml_media_t
struct vlc_ml_media_t vlc_ml_media_t
VLC_ML_THUMBNAIL_STATUS_AVAILABLE
@ VLC_ML_THUMBNAIL_STATUS_AVAILABLE
Definition: vlc_media_library.h:81
vlc_ml_label_t::i_id
int64_t i_id
Definition: vlc_media_library.h:141
vlc_ml_media_track_list_t
Definition: vlc_media_library.h:196
vlc_ml_count_groups
static size_t vlc_ml_count_groups(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1586
VLC_ML_PARENT_ALBUM
@ VLC_ML_PARENT_ALBUM
Definition: vlc_media_library.h:501
vlc_ml_event_t::history_type
vlc_ml_history_type_t history_type
Definition: vlc_media_library.h:798
vlc_ml_event_t::p_media
const vlc_ml_media_t * p_media
Definition: vlc_media_library.h:770
vlc_ml_media_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:300
vlc_ml_album_list_t::p_items
vlc_ml_album_t p_items[]
Definition: vlc_media_library.h:307
vlc_ml_show_episode_t
Definition: vlc_media_library.h:109
vlc_ml_bookmark_t::psz_description
char * psz_description
The bookmark description.
Definition: vlc_media_library.h:353
vlc_ml_playback_states_all::crop
char * crop
Definition: vlc_media_library.h:600
vlc_ml_show_t::psz_name
char * psz_name
Definition: vlc_media_library.h:120
VLC_ML_COUNT_FOLDERS
@ VLC_ML_COUNT_FOLDERS
arg1 (out): size_t*
Definition: vlc_media_library.h:444
vlc_ml_playlist_create
static vlc_ml_playlist_t * vlc_ml_playlist_create(vlc_medialibrary_t *p_ml, const char *name)
Definition: vlc_media_library.h:1081
vlc_ml_playback_states_all::video_filter
char * video_filter
Definition: vlc_media_library.h:602
VLC_ML_LIST_ALBUM_TRACKS
@ VLC_ML_LIST_ALBUM_TRACKS
arg1: The album id.
Definition: vlc_media_library.h:447
vlc_ml_group_list_t
Definition: vlc_media_library.h:322
VLC_ML_FILE_TYPE_PART
@ VLC_ML_FILE_TYPE_PART
Definition: vlc_media_library.h:57
vlc_ml_playlist_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:330
VLC_ML_EVENT_ARTIST_DELETED
@ VLC_ML_EVENT_ARTIST_DELETED
Definition: vlc_media_library.h:621
VLC_ML_MEDIA_ADD_EXTERNAL_MRL
@ VLC_ML_MEDIA_ADD_EXTERNAL_MRL
arg1: media id; arg2: const char*; arg3: type(vlc_ml_file_type_t)
Definition: vlc_media_library.h:543
vlc_ml_count_genre_artists
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:1436
psz_name
const char * psz_name
Definition: text_style.c:53
VLC_ML_LIST_ALBUMS_OF
@ VLC_ML_LIST_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_album_list_t**
Definition: vlc_media_library.h:494
vlc_ml_count_shows
static size_t vlc_ml_count_shows(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1418
vlc_ml_query_params_create
static vlc_ml_query_params_t vlc_ml_query_params_create()
Definition: vlc_media_library.h:906
vlc_ml_list_history
static vlc_ml_media_list_t * vlc_ml_list_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1517
vlc_ml_event_t::creation
union vlc_ml_event_t::@232::@242 creation
VLC_ML_EVENT_ENTRY_POINT_BANNED
@ VLC_ML_EVENT_ENTRY_POINT_BANNED
Sent when an entry point ban request has been processed.
Definition: vlc_media_library.h:683
vlc_ml_media_add_bookmark
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:1050
VLC_ML_LIST_MEDIA_BOOKMARKS
@ VLC_ML_LIST_MEDIA_BOOKMARKS
arg1: media id; arg2 (out): vlc_ml_bookmark_list_t**
Definition: vlc_media_library.h:473
vlc_ml_file_list_release
VLC_EXPORT void vlc_ml_file_list_release(vlc_ml_file_list_t *p_list)
Definition: medialibrary.c:295
VLC_ML_EVENT_RESCAN_STARTED
@ VLC_ML_EVENT_RESCAN_STARTED
Sent when an application requested rescan starts being processed.
Definition: vlc_media_library.h:723
vlc_ml_show_list_t
struct vlc_ml_show_list_t vlc_ml_show_list_t
vlc_ml_media_t::f_progress
float f_progress
Definition: vlc_media_library.h:216
vlc_ml_media_track_t::v
struct vlc_ml_media_track_t::@226::@229 v
vlc_medialibrary_module_t::pf_list
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:832
libvlc_int_t
Definition: vlc_objects.h:114
vlc_ml_count_history_by_type
static size_t vlc_ml_count_history_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition: vlc_media_library.h:1545
vlc_ml_show_release
VLC_EXPORT void vlc_ml_show_release(vlc_ml_show_t *p_show)
Definition: medialibrary.c:149
vlc_ml_list_genre_artists
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:1427
vlc_ml_event_t::i_type
int i_type
Definition: vlc_media_library.h:728
vlc_ml_media_track_list_t::p_items
vlc_ml_media_track_t p_items[]
Definition: vlc_media_library.h:199
vlc_ml_bookmark_list_t
struct vlc_ml_boomkmark_list_t vlc_ml_bookmark_list_t
vlc_ml_count_media_labels
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:1508
vlc_ml_show_episode_t::i_episode_nb
uint32_t i_episode_nb
Definition: vlc_media_library.h:113
VLC_ML_PARENT_GENRE
@ VLC_ML_PARENT_GENRE
Definition: vlc_media_library.h:504
vlc_ml_is_indexed
static int vlc_ml_is_indexed(vlc_medialibrary_t *p_ml, const char *psz_mrl, bool *p_res)
Definition: vlc_media_library.h:937
vlc_ml_parent_type
vlc_ml_parent_type
Definition: vlc_media_library.h:498
vlc_ml_show_episode_t::i_season_number
uint32_t i_season_number
Definition: vlc_media_library.h:114
vlc_ml_event_t
Definition: vlc_media_library.h:726
vlc_common.h
VLC_ML_GET_INPUT_ITEM
@ VLC_ML_GET_INPUT_ITEM
arg1: Media ID; ret: input_item_t*
Definition: vlc_media_library.h:404
vlc_ml_event_t::entry_point_added
struct vlc_ml_event_t::@232::@237 entry_point_added
VLC_ML_LIST_MEDIA_OF
@ VLC_ML_LIST_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_media_list_t**
Definition: vlc_media_library.h:490
VLC_ML_COUNT_ALBUM_TRACKS
@ VLC_ML_COUNT_ALBUM_TRACKS
arg1: The album id.
Definition: vlc_media_library.h:448
vlc_ml_event_t::p_bookmark
const vlc_ml_bookmark_t * p_bookmark
Definition: vlc_media_library.h:776
vlc_ml_album_track_t::i_album_id
int64_t i_album_id
Definition: vlc_media_library.h:132
vlc_ml_resume_background
static int vlc_ml_resume_background(vlc_medialibrary_t *p_ml)
Definition: vlc_media_library.h:953
vlc_ml_show_t::psz_artwork_mrl
char * psz_artwork_mrl
Definition: vlc_media_library.h:122
vlc_ml_instance_get
#define vlc_ml_instance_get(x)
Definition: vlc_media_library.h:851
VLC_ML_PLAYBACK_STATE_RATING
@ VLC_ML_PLAYBACK_STATE_RATING
Definition: vlc_media_library.h:571
vlc_ml_get
VLC_EXPORT void * vlc_ml_get(vlc_medialibrary_t *p_ml, int i_query,...)
Definition: medialibrary.c:411
vlc_ml_list_entry_points
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:1651
vlc_ml_history_type_t
vlc_ml_history_type_t
Definition: vlc_media_library.h:87
vlc_ml_movie_t::psz_summary
char * psz_summary
Definition: vlc_media_library.h:105
vlc_ml_media_track_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:198
vlc_ml_group_t::i_nb_total_media
unsigned int i_nb_total_media
Definition: vlc_media_library.h:238
vlc_ml_file_t::b_present
bool b_present
Definition: vlc_media_library.h:159
vlc_ml_media_t::psz_title
char * psz_title
Definition: vlc_media_library.h:218
VLC_ML_MEDIA_GENERATE_THUMBNAIL
@ 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:542
vlc_ml_group_release
VLC_EXPORT void vlc_ml_group_release(vlc_ml_group_t *p_group)
Definition: medialibrary.c:242
vlc_ml_genre_list_t
Definition: vlc_media_library.h:316
VLC_ML_SORTING_ALBUM
@ VLC_ML_SORTING_ALBUM
Definition: vlc_media_library.h:385
VLC_ML_NEW_EXTERNAL_MEDIA
@ VLC_ML_NEW_EXTERNAL_MEDIA
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition: vlc_media_library.h:532
vlc_ml_media_t::i_year
int32_t i_year
Definition: vlc_media_library.h:212
VLC_ML_LIST_MEDIA_LABELS
@ VLC_ML_LIST_MEDIA_LABELS
arg1: media id; arg2 (out): vlc_ml_label_list_t**
Definition: vlc_media_library.h:471
vlc_ml_playlist_list_t
struct vlc_ml_playlist_list_t vlc_ml_playlist_list_t
vlc_ml_file_t::i_size
int64_t i_size
Definition: vlc_media_library.h:154
input_item_t
Describes an input and is used to spawn input_thread_t objects.
Definition: vlc_input_item.h:77
vlc_ml_list_banned_entry_points
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:1670
vlc_ml_count_album_tracks
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:1250
vlc_ml_get_show
static vlc_ml_show_t * vlc_ml_get_show(vlc_medialibrary_t *p_ml, int64_t i_show_id)
Definition: vlc_media_library.h:1172
vlc_ml_count_artists_of
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:1214
VLC_ML_HISTORY_TYPE_MEDIA
@ VLC_ML_HISTORY_TYPE_MEDIA
Definition: vlc_media_library.h:89
vlc_ml_event_t::deletion
struct vlc_ml_event_t::@232::@244 deletion
VLC_ML_LIST_GENRE_ARTISTS
@ VLC_ML_LIST_GENRE_ARTISTS
arg1: genre id; arg2 (out): vlc_ml_artist_list_t**
Definition: vlc_media_library.h:459
vlc_ml_event_t::entry_point_removed
struct vlc_ml_event_t::@232::@238 entry_point_removed
vlc_ml_artist_list_t
Definition: vlc_media_library.h:272
vlc_ml_new_stream
static vlc_ml_media_t * vlc_ml_new_stream(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition: vlc_media_library.h:971
vlc_ml_label_list_t
Definition: vlc_media_library.h:145
vlc_ml_get_album
static vlc_ml_album_t * vlc_ml_get_album(vlc_medialibrary_t *p_ml, int64_t i_album_id)
Definition: vlc_media_library.h:1157
vlc_ml_count_group_media
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:1604
VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES
@ VLC_ML_MEDIA_SET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2: const vlc_ml_playback_states_all*
Definition: vlc_media_library.h:540
vlc_ml_event_t::parsing_progress
struct vlc_ml_event_t::@232::@241 parsing_progress
vlc_ml_folder_list_release
VLC_EXPORT void vlc_ml_folder_list_release(vlc_ml_folder_list_t *p_list)
Definition: medialibrary.c:368
VLC_ML_COUNT_AUDIOS
@ VLC_ML_COUNT_AUDIOS
arg1 (out): size_t*
Definition: vlc_media_library.h:422
VLC_ML_RELOAD_FOLDER
@ VLC_ML_RELOAD_FOLDER
Reload a specific folder, or all.
Definition: vlc_media_library.h:522
vlc_ml_media_remove_all_bookmarks
static int vlc_ml_media_remove_all_bookmarks(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition: vlc_media_library.h:1074
vlc_ml_file_t::b_removable
bool b_removable
Definition: vlc_media_library.h:158
vlc_ml_event_register_callback
VLC_EXPORT 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
VLC_ML_SORTING_ALPHA
@ VLC_ML_SORTING_ALPHA
Definition: vlc_media_library.h:377
vlc_ml_genre_list_t
struct vlc_ml_genre_list_t vlc_ml_genre_list_t
VLC_ML_EVENT_BOOKMARKS_ADDED
@ VLC_ML_EVENT_BOOKMARKS_ADDED
Definition: vlc_media_library.h:634
vlc_ml_playlist_t
Definition: vlc_media_library.h:245
vlc_ml_list_playlist_media
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:1633
VLC_ML_MEDIA_SET_THUMBNAIL
@ VLC_ML_MEDIA_SET_THUMBNAIL
arg1: media id; arg2: const char*; arg3: vlc_ml_thumbnail_size_t
Definition: vlc_media_library.h:541
vlc_ml_boomkmark_list_t
Definition: vlc_media_library.h:356
VLC_ML_LIST_ARTIST_TRACKS
@ VLC_ML_LIST_ARTIST_TRACKS
arg1: The artist id.
Definition: vlc_media_library.h:455
vlc_ml_media_t::show_episode
vlc_ml_show_episode_t show_episode
Definition: vlc_media_library.h:226
vlc_ml_count_genre_albums
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:1472
vlc_ml_album_track_t::i_artist_id
int64_t i_artist_id
Definition: vlc_media_library.h:131
VLC_ML_PLAYBACK_STATE_APP_SPECIFIC
@ VLC_ML_PLAYBACK_STATE_APP_SPECIFIC
Definition: vlc_media_library.h:588
vlc_ml_group_list_release
VLC_EXPORT void vlc_ml_group_list_release(vlc_ml_group_list_t *p_list)
Definition: medialibrary.c:350
vlc_ml_media_release
VLC_EXPORT void vlc_ml_media_release(vlc_ml_media_t *p_media)
Definition: medialibrary.c:268
VLC_ML_PLAYLIST_REMOVE
@ VLC_ML_PLAYLIST_REMOVE
arg1: playlist id; arg2: position; can fail
Definition: vlc_media_library.h:556
vlc_ml_event_unregister_from_callback
VLC_EXPORT void vlc_ml_event_unregister_from_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback)
Unregisters a medialibrary callback from the said callback.
Definition: medialibrary.c:90
vlc_ml_event_t::modification
struct vlc_ml_event_t::@232::@243 modification
vlc_ml_bookmark_t::i_media_id
int64_t i_media_id
The associated media ID.
Definition: vlc_media_library.h:350
VLC_ML_SORTING_ARTIST
@ VLC_ML_SORTING_ARTIST
Definition: vlc_media_library.h:383
vlc_ml_list_media_bookmarks
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:1038
VLC_ML_EVENT_ARTIST_UPDATED
@ VLC_ML_EVENT_ARTIST_UPDATED
Definition: vlc_media_library.h:620
vlc_ml_album_t::i_duration
unsigned int i_duration
Definition: vlc_media_library.h:287
VLC_ML_GET_MEDIA
@ VLC_ML_GET_MEDIA
arg1: Media ID; ret: vlc_ml_media_t*
Definition: vlc_media_library.h:402
VLC_ML_PLAYBACK_STATE_VIDEO_FILTER
@ VLC_ML_PLAYBACK_STATE_VIDEO_FILTER
Definition: vlc_media_library.h:582
vlc_ml_query_params_t::i_sort
vlc_ml_sorting_criteria_t i_sort
Definition: vlc_media_library.h:396
vlc_ml_get_genre
static vlc_ml_genre_t * vlc_ml_get_genre(vlc_medialibrary_t *p_ml, int64_t i_genre_id)
Definition: vlc_media_library.h:1167
VLC_ML_LIST_AUDIOS
@ VLC_ML_LIST_AUDIOS
arg1 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:421
vlc_ml_album_track_t::i_disc_nb
int i_disc_nb
Definition: vlc_media_library.h:136
vlc_ml_media_list_release
VLC_EXPORT void vlc_ml_media_list_release(vlc_ml_media_list_t *p_list)
Definition: medialibrary.c:314
vlc_ml_media_track_t
struct vlc_ml_media_track_t vlc_ml_media_track_t
vlc_ml_media_track_t::i_fpsNum
uint32_t i_fpsNum
Definition: vlc_media_library.h:190
vlc_ml_playlist_t::psz_artwork_mrl
char * psz_artwork_mrl
Definition: vlc_media_library.h:253
vlc_ml_show_list_t::p_items
vlc_ml_show_t p_items[]
Definition: vlc_media_library.h:313
vlc_ml_album_list_t
struct vlc_ml_album_list_t vlc_ml_album_list_t
VLC_ML_COUNT_GENRE_ARTISTS
@ VLC_ML_COUNT_GENRE_ARTISTS
arg1: genre id; arg2 (out): size_t*
Definition: vlc_media_library.h:460
vlc_ml_genre_list_release
VLC_EXPORT void vlc_ml_genre_list_release(vlc_ml_genre_list_t *p_list)
Definition: medialibrary.c:341
vlc_ml_list_groups
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:1577
VLC_ML_EVENT_PLAYLIST_ADDED
@ VLC_ML_EVENT_PLAYLIST_ADDED
Definition: vlc_media_library.h:628
vlc_ml_event_t::p_group
const vlc_ml_group_t * p_group
Definition: vlc_media_library.h:773
vlc_medialibrary_callbacks_t
struct vlc_medialibrary_callbacks_t vlc_medialibrary_callbacks_t
vlc_ml_genre_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:318
vlc_ml_file_t::i_last_modification_date
time_t i_last_modification_date
Definition: vlc_media_library.h:155
vlc_ml_thumbnail_size_t
vlc_ml_thumbnail_size_t
Definition: vlc_media_library.h:70
VLC_ML_PARENT_GROUP
@ VLC_ML_PARENT_GROUP
Definition: vlc_media_library.h:505
vlc_ml_event_t::i_percent
uint8_t i_percent
Definition: vlc_media_library.h:766
vlc_ml_media_t::i_id
int64_t i_id
Definition: vlc_media_library.h:204
vlc_ml_list_media_labels
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:1499
VLC_ML_EVENT_GENRE_DELETED
@ VLC_ML_EVENT_GENRE_DELETED
Definition: vlc_media_library.h:633
vlc_ml_list_group_media
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:1595
vlc_ml_list_playlists
static vlc_ml_playlist_list_t * vlc_ml_list_playlists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1615
VLC_ML_PLAYLIST_DELETE
@ VLC_ML_PLAYLIST_DELETE
arg1: playlist id; can fail
Definition: vlc_media_library.h:552
vlc_ml_folder_t::psz_mrl
char * psz_mrl
This folder's MRL.
Definition: vlc_media_library.h:337
vlc_ml_media_track_t::psz_codec
char * psz_codec
Definition: vlc_media_library.h:170
VLC_ML_LIST_ARTISTS
@ VLC_ML_LIST_ARTISTS
arg1 bool: includeAll; arg2 (out): vlc_ml_genre_list_t**
Definition: vlc_media_library.h:427
vlc_ml_count_albums
static size_t vlc_ml_count_albums(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1358
vlc_ml_group_t::i_duration
unsigned int i_duration
Definition: vlc_media_library.h:240
vlc_ml_event_t::discovery_started
struct vlc_ml_event_t::@232::@234 discovery_started
vlc_ml_folder_list_t::p_items
vlc_ml_folder_t p_items[]
Definition: vlc_media_library.h:345
vlc_ml_album_track_t
Definition: vlc_media_library.h:129
vlc_ml_thumbnail_t
struct vlc_ml_thumbnail_t vlc_ml_thumbnail_t
vlc_ml_media_track_t::psz_description
char * psz_description
Definition: vlc_media_library.h:172
VLC_ML_IS_INDEXED
@ VLC_ML_IS_INDEXED
arg1: mrl (const char*) arg2 (out): bool*; res: can fail
Definition: vlc_media_library.h:516
VLC_ML_COUNT_ARTIST_TRACKS
@ VLC_ML_COUNT_ARTIST_TRACKS
arg1: The artist id.
Definition: vlc_media_library.h:456
vlc_medialibrary_module_t::pf_control
int(* pf_control)(struct vlc_medialibrary_module_t *p_ml, int i_query, va_list args)
Definition: vlc_media_library.h:818
vlc_ml_media_set_all_playback_states
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:1002
VLC_ML_MEDIA_UPDATE_PROGRESS
@ VLC_ML_MEDIA_UPDATE_PROGRESS
arg1: media id; arg2: playback position; can fail
Definition: vlc_media_library.h:536
vlc_ml_count_genre_tracks
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:1454
VLC_ML_EVENT_ENTRY_POINT_REMOVED
@ VLC_ML_EVENT_ENTRY_POINT_REMOVED
Sent when an entry point removal request has been processed.
Definition: vlc_media_library.h:676
VLC_ML_MEDIA_SET_TYPE
@ VLC_ML_MEDIA_SET_TYPE
arg1: media id; arg2: vlc_ml_media_type_t
Definition: vlc_media_library.h:544
VLC_ML_PLAYLIST_MOVE
@ VLC_ML_PLAYLIST_MOVE
arg1: playlist id; arg2: from; arg3: to; can fail
Definition: vlc_media_library.h:555
vlc_ml_get_playlist
static vlc_ml_playlist_t * vlc_ml_get_playlist(vlc_medialibrary_t *p_ml, int64_t i_playlist_id)
Definition: vlc_media_library.h:1182
vlc_ml_event_t::background_idle_changed
struct vlc_ml_event_t::@232::@245 background_idle_changed
vlc_ml_album_t::psz_title
char * psz_title
Definition: vlc_media_library.h:280
vlc_ml_media_track_t::i_sarNum
uint32_t i_sarNum
Definition: vlc_media_library.h:188
vlc_ml_artist_t::thumbnails
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition: vlc_media_library.h:265
vlc_ml_media_update_progress
static int vlc_ml_media_update_progress(vlc_medialibrary_t *p_ml, int64_t i_media_id, double progress)
Definition: vlc_media_library.h:979
VLC_ML_THUMBNAIL_STATUS_FAILURE
@ VLC_ML_THUMBNAIL_STATUS_FAILURE
Definition: vlc_media_library.h:82
VLC_ML_TRACK_TYPE_VIDEO
@ VLC_ML_TRACK_TYPE_VIDEO
Definition: vlc_media_library.h:66
VLC_ML_EVENT_GENRE_UPDATED
@ VLC_ML_EVENT_GENRE_UPDATED
Definition: vlc_media_library.h:632
VLC_ML_EVENT_PARSING_PROGRESS_UPDATED
@ VLC_ML_EVENT_PARSING_PROGRESS_UPDATED
Sent when the parsing progress percentage gets updated.
Definition: vlc_media_library.h:705
VLC_ML_PLAYLIST_CREATE
@ VLC_ML_PLAYLIST_CREATE
arg1: const char*; arg2(out): vlc_ml_playlist_t**; can fail
Definition: vlc_media_library.h:551
VLC_ML_PLAYBACK_STATE_GAIN
@ VLC_ML_PLAYBACK_STATE_GAIN
Definition: vlc_media_library.h:584
vlc_ml_get_input_item_by_mrl
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:1151
vlc_ml_query_params_t
Definition: vlc_media_library.h:391
VLC_ML_PLAYBACK_STATE_AUDIO_DELAY
@ VLC_ML_PLAYBACK_STATE_AUDIO_DELAY
Definition: vlc_media_library.h:585
VLC_ML_LIST_ALBUMS
@ VLC_ML_LIST_ALBUMS
arg1 (out): vlc_ml_album_list_t**
Definition: vlc_media_library.h:423
vlc_ml_show_episode_t::psz_summary
char * psz_summary
Definition: vlc_media_library.h:111
vlc_ml_list_shows
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:1409
VLC_ML_FILE_TYPE_UNKNOWN
@ VLC_ML_FILE_TYPE_UNKNOWN
Definition: vlc_media_library.h:55
vlc_ml_label_t
struct vlc_ml_label_t vlc_ml_label_t
vlc_ml_group_list_t
struct vlc_ml_group_list_t vlc_ml_group_list_t
VLC_ML_PLAYBACK_STATE_SUBTITLE_TRACK
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_TRACK
Definition: vlc_media_library.h:586
vlc_ml_list_genre_tracks
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:1445
libvlc_MlRelease
void libvlc_MlRelease(vlc_medialibrary_t *p_ml)
Definition: medialibrary.c:120
vlc_ml_media_type_t
vlc_ml_media_type_t
Definition: vlc_media_library.h:38
VLC_ML_SORTING_FILESIZE
@ VLC_ML_SORTING_FILESIZE
Definition: vlc_media_library.h:382
vlc_ml_list_artist_albums
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:1277
vlc_ml_query_params_t::psz_pattern
const char * psz_pattern
Definition: vlc_media_library.h:393
VLC_ML_SORTING_INSERTIONDATE
@ VLC_ML_SORTING_INSERTIONDATE
Definition: vlc_media_library.h:379
VLC_ML_LIST_GROUPS
@ VLC_ML_LIST_GROUPS
arg1 (out): vlc_ml_group_list_t**
Definition: vlc_media_library.h:431
vlc_ml_file_list_t::p_items
vlc_ml_file_t p_items[]
Definition: vlc_media_library.h:165
VLC_ML_COUNT_GENRES
@ VLC_ML_COUNT_GENRES
arg1 (out): size_t*
Definition: vlc_media_library.h:426
vlc_ml_get_group
static vlc_ml_group_t * vlc_ml_get_group(vlc_medialibrary_t *p_ml, int64_t i_group_id)
Definition: vlc_media_library.h:1177
vlc_ml_event_callback_t
Definition: medialibrary.c:34
VLC_ML_COUNT_STREAM_HISTORY
@ VLC_ML_COUNT_STREAM_HISTORY
arg1 (out): size_t*
Definition: vlc_media_library.h:440
VLC_ML_COUNT_MEDIA_LABELS
@ VLC_ML_COUNT_MEDIA_LABELS
arg1: media id; arg2 (out): size_t*
Definition: vlc_media_library.h:472
vlc_ml_playlist_t::psz_mrl
char * psz_mrl
Definition: vlc_media_library.h:251
vlc_ml_media_t::p_files
vlc_ml_file_list_t * p_files
Definition: vlc_media_library.h:209
vlc_ml_playlist_append
static int vlc_ml_playlist_append(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, int64_t i_media_id)
Definition: vlc_media_library.h:1102
vlc_ml_genre_t
Definition: vlc_media_library.h:291
vlc_ml_artist_t::i_nb_tracks
unsigned int i_nb_tracks
Definition: vlc_media_library.h:269
VLC_ML_PLAYBACK_STATE_ZOOM
@ VLC_ML_PLAYBACK_STATE_ZOOM
Definition: vlc_media_library.h:579
vlc_ml_album_t
Definition: vlc_media_library.h:278
vlc_ml_playlist_remove
static int vlc_ml_playlist_remove(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_position)
Definition: vlc_media_library.h:1128
vlc_ml_artist_release
VLC_EXPORT void vlc_ml_artist_release(vlc_ml_artist_t *p_artist)
Definition: medialibrary.c:202
vlc_ml_label_t
Definition: vlc_media_library.h:139
vlc_ml_media_track_t::psz_language
char * psz_language
Definition: vlc_media_library.h:171
vlc_ml_file_t
Definition: vlc_media_library.h:151
vlc_ml_artist_list_t
struct vlc_ml_artist_list_t vlc_ml_artist_list_t
VLC_ML_EVENT_GROUP_ADDED
@ VLC_ML_EVENT_GROUP_ADDED
Definition: vlc_media_library.h:625
VLC_ML_FILE_TYPE_SUBTITLE
@ VLC_ML_FILE_TYPE_SUBTITLE
Definition: vlc_media_library.h:59
VLC_ML_MEDIA_TYPE_UNKNOWN
@ VLC_ML_MEDIA_TYPE_UNKNOWN
Definition: vlc_media_library.h:64
vlc_ml_playlist_t::b_is_read_only
bool b_is_read_only
Definition: vlc_media_library.h:257
VLC_ML_PLAYBACK_STATE_TITLE
@ VLC_ML_PLAYBACK_STATE_TITLE
Definition: vlc_media_library.h:573
VLC_ML_COUNT_GENRE_ALBUMS
@ VLC_ML_COUNT_GENRE_ALBUMS
arg1: genre id; arg2 (out): size_t*
Definition: vlc_media_library.h:464
vlc_ml_event_t::b_success
bool b_success
Definition: vlc_media_library.h:742
vlc_ml_media_t::i_subtype
vlc_ml_media_subtype_t i_subtype
Definition: vlc_media_library.h:207
VLC_ML_PLAYBACK_STATE_ASPECT_RATIO
@ VLC_ML_PLAYBACK_STATE_ASPECT_RATIO
Definition: vlc_media_library.h:578
vlc_ml_genre_t::psz_name
char * psz_name
Definition: vlc_media_library.h:294
VLC_ML_LIST_ARTIST_ALBUMS
@ VLC_ML_LIST_ARTIST_ALBUMS
arg1: The artist id.
Definition: vlc_media_library.h:453
vlc_ml_folder_t
struct vlc_ml_folder_t vlc_ml_folder_t
vlc_ml_playback_states_all::current_subtitle_track
char * current_subtitle_track
Definition: vlc_media_library.h:598
vlc_ml_media_t::i_last_played_date
time_t i_last_played_date
Definition: vlc_media_library.h:217
VLC_ML_MEDIA_TYPE_VIDEO
@ VLC_ML_MEDIA_TYPE_VIDEO
Definition: vlc_media_library.h:65
VLC_ML_LIST_ARTISTS_OF
@ VLC_ML_LIST_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): ml_artist_list_t**
Definition: vlc_media_library.h:492
vlc_ml_count_albums_of
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:1232
vlc_ml_folder_release
VLC_EXPORT void vlc_ml_folder_release(vlc_ml_folder_t *p_folder)
Definition: medialibrary.c:276
vlc_ml_group_list_t::p_items
vlc_ml_group_t p_items[]
Definition: vlc_media_library.h:325
i_type
int i_type
Definition: httpd.c:1269
VLC_ML_PLAYBACK_STATE_VIDEO_TRACK
@ VLC_ML_PLAYBACK_STATE_VIDEO_TRACK
Definition: vlc_media_library.h:577
vlc_ml_playback_state
vlc_ml_playback_state
User playback settings.
Definition: vlc_media_library.h:569
VLC_ML_THUMBNAIL_BANNER
@ VLC_ML_THUMBNAIL_BANNER
Definition: vlc_media_library.h:73
VLC_ML_EVENT_MEDIA_ADDED
@ VLC_ML_EVENT_MEDIA_ADDED
Entity modification callbacks.
Definition: vlc_media_library.h:616
vlc_ml_album_list_release
VLC_EXPORT void vlc_ml_album_list_release(vlc_ml_album_list_t *p_list)
Definition: medialibrary.c:323
vlc_ml_list_albums
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:1349
module_t
Internal module descriptor.
Definition: modules.h:78
VLC_ML_EVENT_ARTIST_ADDED
@ VLC_ML_EVENT_ARTIST_ADDED
Definition: vlc_media_library.h:619
vlc_ml_playback_states_all::current_video_track
char * current_video_track
Definition: vlc_media_library.h:596
vlc_ml_genre_t::i_nb_tracks
size_t i_nb_tracks
Definition: vlc_media_library.h:295
VLC_ML_EVENT_MEDIA_DELETED
@ VLC_ML_EVENT_MEDIA_DELETED
Definition: vlc_media_library.h:618
VLC_ML_EVENT_GENRE_ADDED
@ VLC_ML_EVENT_GENRE_ADDED
Definition: vlc_media_library.h:631
vlc_ml_event_t::b_idle
bool b_idle
Definition: vlc_media_library.h:788
vlc_ml_media_t
Definition: vlc_media_library.h:202
vlc_ml_list_queries
vlc_ml_list_queries
Definition: vlc_media_library.h:415
vlc_ml_media_track_t::i_width
uint32_t i_width
Definition: vlc_media_library.h:187
VLC_ML_COUNT_VIDEOS
@ VLC_ML_COUNT_VIDEOS
arg1 (out): size_t*
Definition: vlc_media_library.h:420
vlc_ml_pause_background
static int vlc_ml_pause_background(vlc_medialibrary_t *p_ml)
Definition: vlc_media_library.h:948
vlc_ml_new_external_media
static vlc_ml_media_t * vlc_ml_new_external_media(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition: vlc_media_library.h:963
vlc_ml_playback_states_all_release
VLC_EXPORT void vlc_ml_playback_states_all_release(vlc_ml_playback_states_all *prefs)
Definition: medialibrary.c:377
vlc_ml_genre_release
VLC_EXPORT void vlc_ml_genre_release(vlc_ml_genre_t *p_genre)
Definition: medialibrary.c:226
VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS
@ VLC_ML_MEDIA_REMOVE_ALL_BOOKMARKS
arg1: media id
Definition: vlc_media_library.h:547
VLC_ML_HISTORY_TYPE_NETWORK
@ VLC_ML_HISTORY_TYPE_NETWORK
Definition: vlc_media_library.h:90
vlc_ml_movie_t
Definition: vlc_media_library.h:103
vlc_ml_album_t::i_year
unsigned int i_year
Definition: vlc_media_library.h:288
vlc_ml_playback_states_all::current_title
int current_title
Definition: vlc_media_library.h:595
VLC_ML_LIST_PLAYLIST_MEDIA
@ VLC_ML_LIST_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:480
vlc_ml_bookmark_t::i_time
int64_t i_time
The bookmark time.
Definition: vlc_media_library.h:351
vlc_ml_event_t::discovery_progress
struct vlc_ml_event_t::@232::@235 discovery_progress
VLC_ML_LIST_VIDEOS
@ VLC_ML_LIST_VIDEOS
arg1 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:419
VLC_ML_COUNT_SHOWS
@ VLC_ML_COUNT_SHOWS
arg1 (out): size_t*
Definition: vlc_media_library.h:430
VLC_ML_PLAYBACK_STATE_SUBTITLE_DELAY
@ VLC_ML_PLAYBACK_STATE_SUBTITLE_DELAY
Definition: vlc_media_library.h:587
VLC_ML_CLEAR_HISTORY
@ VLC_ML_CLEAR_HISTORY
no args; can't fail
Definition: vlc_media_library.h:529
vlc_ml_boomkmark_list_t::p_items
vlc_ml_bookmark_t p_items[]
Definition: vlc_media_library.h:359
vlc_ml_count_audio_media
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:1340
VLC_ML_SORTING_TRACKNUMBER
@ VLC_ML_SORTING_TRACKNUMBER
Definition: vlc_media_library.h:387
vlc_ml_show_t::i_nb_seasons
uint32_t i_nb_seasons
Definition: vlc_media_library.h:126
vlc_ml_show_t::psz_tvdb_id
char * psz_tvdb_id
Definition: vlc_media_library.h:123
vlc_ml_list_genres
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:1367
vlc_ml_group_t::psz_name
char * psz_name
Definition: vlc_media_library.h:236
vlc_ml_artist_t
struct vlc_ml_artist_t vlc_ml_artist_t
VLC_ML_COUNT_FOLDER_MEDIAS
@ VLC_ML_COUNT_FOLDER_MEDIAS
arg1: folder id; arg2 (out): size_t*
Definition: vlc_media_library.h:487
vlc_ml_list_album_tracks
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:1241
vlc_ml_count_album_artists
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:1268
vlc_ml_album_t::psz_summary
char * psz_summary
Definition: vlc_media_library.h:281
vlc_ml_query_params_t::i_nbResults
uint32_t i_nbResults
Definition: vlc_media_library.h:394
vlc_ml_label_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:147
vlc_ml_playlist_move
static int vlc_ml_playlist_move(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, uint32_t i_from, uint32_t i_to)
Definition: vlc_media_library.h:1119
VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED
@ VLC_ML_EVENT_MEDIA_THUMBNAIL_GENERATED
Sent after a media thumbnail was generated, or if it's generation failed.
Definition: vlc_media_library.h:712
vlc_ml_playlist_list_t::p_items
vlc_ml_playlist_t p_items[]
Definition: vlc_media_library.h:331
vlc_ml_count_banned_entry_points
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:1679
vlc_ml_list_media_of
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:1187
vlc_ml_count_video_media
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:1322
vlc_ml_file_t::psz_mrl
char * psz_mrl
Definition: vlc_media_library.h:153
VLC_ML_EVENT_DISCOVERY_PROGRESS
@ VLC_ML_EVENT_DISCOVERY_PROGRESS
Sent when a discovery or reload operation starts analyzing a new folder.
Definition: vlc_media_library.h:651
vlc_ml_media_t::i_duration
int64_t i_duration
Definition: vlc_media_library.h:214
VLC_ML_EVENT_HISTORY_CHANGED
@ VLC_ML_EVENT_HISTORY_CHANGED
Sent after the history gets changed.
Definition: vlc_media_library.h:719
vlc_ml_get_media_by_mrl
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:1140
VLC_ML_LIST_SHOW_EPISODES
@ VLC_ML_LIST_SHOW_EPISODES
arg1: show id; arg2(out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:467
vlc_ml_folder_t::b_banned
bool b_banned
Will be true if the user required this folder to be excluded.
Definition: vlc_media_library.h:339
VLC_ML_LIST_ALBUM_ARTISTS
@ VLC_ML_LIST_ALBUM_ARTISTS
arg1: The album id.
Definition: vlc_media_library.h:449
VLC_ML_SORTING_FILENAME
@ VLC_ML_SORTING_FILENAME
Definition: vlc_media_library.h:386
VLC_ML_COUNT_GROUPS
@ VLC_ML_COUNT_GROUPS
arg1 (out): size_t*
Definition: vlc_media_library.h:432
VLC_ML_EVENT_PLAYLIST_UPDATED
@ VLC_ML_EVENT_PLAYLIST_UPDATED
Definition: vlc_media_library.h:629
vlc_ml_bookmark_t
struct vlc_ml_bookmark_t vlc_ml_bookmark_t
vlc_ml_get_input_item
static input_item_t * vlc_ml_get_input_item(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition: vlc_media_library.h:1146
vlc_ml_album_list_t
Definition: vlc_media_library.h:304
VLC_ML_GET_GROUP
@ VLC_ML_GET_GROUP
arg1: Group ID; ret: vlc_ml_group_t*
Definition: vlc_media_library.h:411
VLC_ML_EVENT_ENTRY_POINT_UNBANNED
@ VLC_ML_EVENT_ENTRY_POINT_UNBANNED
Sent when an entry point unban request has been processed.
Definition: vlc_media_library.h:690
vlc_ml_count_media_of
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:1196
VLC_ML_LIST_FOLDERS
@ VLC_ML_LIST_FOLDERS
arg1 (out): vlc_ml_folder_list_t**
Definition: vlc_media_library.h:443
vlc_ml_callback_t
void(* vlc_ml_callback_t)(void *p_data, const vlc_ml_event_t *p_event)
Definition: vlc_media_library.h:803
vlc_ml_file_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:164
vlc_ml_media_t::i_type
vlc_ml_media_type_t i_type
Definition: vlc_media_library.h:206
vlc_ml_query_params_t::i_offset
uint32_t i_offset
Definition: vlc_media_library.h:395
VLC_ML_GET_INPUT_ITEM_BY_MRL
@ VLC_ML_GET_INPUT_ITEM_BY_MRL
arg1: Media MRL; ret: input_item_t*
Definition: vlc_media_library.h:405
vlc_ml_media_subtype_t
vlc_ml_media_subtype_t
Definition: vlc_media_library.h:45
vlc_ml_playlist_insert
static int vlc_ml_playlist_insert(vlc_medialibrary_t *p_ml, int64_t i_playlist_id, int64_t i_media_id, uint32_t i_position)
Definition: vlc_media_library.h:1110
VLC_ML_COUNT_ARTISTS_OF
@ VLC_ML_COUNT_ARTISTS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition: vlc_media_library.h:493
vlc_ml_movie_t
struct vlc_ml_movie_t vlc_ml_movie_t
VLC_ML_MEDIA_SUBTYPE_MOVIE
@ VLC_ML_MEDIA_SUBTYPE_MOVIE
Definition: vlc_media_library.h:49
VLC_ML_TRACK_TYPE_AUDIO
@ VLC_ML_TRACK_TYPE_AUDIO
Definition: vlc_media_library.h:67
VLC_ML_SORTING_RELEASEDATE
@ VLC_ML_SORTING_RELEASEDATE
Definition: vlc_media_library.h:381
VLC_ML_MEDIA_ADD_BOOKMARK
@ VLC_ML_MEDIA_ADD_BOOKMARK
arg1: media id; arg2: int64_t
Definition: vlc_media_library.h:545
vlc_ml_media_set_playback_state
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:990
vlc_ml_playback_states_all::zoom
float zoom
Definition: vlc_media_library.h:594
vlc_ml_show_t::i_nb_episodes
uint32_t i_nb_episodes
Definition: vlc_media_library.h:125
vlc_ml_event_t::entry_point_unbanned
struct vlc_ml_event_t::@232::@240 entry_point_unbanned
vlc_ml_control
vlc_ml_control
Definition: vlc_media_library.h:509
vlc_ml_album_track_t::i_genre_id
int64_t i_genre_id
Definition: vlc_media_library.h:133
VLC_ML_LIST_GENRE_TRACKS
@ VLC_ML_LIST_GENRE_TRACKS
arg1: genre id; arg2 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:461
vlc_ml_album_track_t
struct vlc_ml_album_track_t vlc_ml_album_track_t
vlc_ml_folder_t::i_id
int64_t i_id
This folder's MRL.
Definition: vlc_media_library.h:336
VLC_ML_PARENT_UNKNOWN
@ VLC_ML_PARENT_UNKNOWN
Definition: vlc_media_library.h:500
vlc_ml_playlist_t
struct vlc_ml_playlist_t vlc_ml_playlist_t
vlc_ml_media_remove_bookmark
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:1057
vlc_ml_list_genre_albums
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:1463
vlc_ml_list_history_by_type
static vlc_ml_media_list_t * vlc_ml_list_history_by_type(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params, vlc_ml_media_type_t type)
Definition: vlc_media_library.h:1536
vlc_ml_media_get_playback_state
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:985
vlc_ml_remove_folder
static int vlc_ml_remove_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition: vlc_media_library.h:922
VLC_ML_COUNT_PLAYLISTS
@ VLC_ML_COUNT_PLAYLISTS
arg1 (out): size_t*
Definition: vlc_media_library.h:434
vlc_ml_get_queries
vlc_ml_get_queries
Definition: vlc_media_library.h:400
vlc_ml_event_t::p_artist
const vlc_ml_artist_t * p_artist
Definition: vlc_media_library.h:771
vlc_ml_media_generate_thumbnail
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, float position)
Definition: vlc_media_library.h:1015
VLC_ML_LIST_GENRE_ALBUMS
@ VLC_ML_LIST_GENRE_ALBUMS
arg1: genre id; arg2 (out): vlc_ml_album_list_t**
Definition: vlc_media_library.h:463
VLC_ML_GET_GENRE
@ VLC_ML_GET_GENRE
arg1: Genre ID; ret: vlc_ml_genre_t*
Definition: vlc_media_library.h:408
vlc_ml_artist_t::i_id
int64_t i_id
Definition: vlc_media_library.h:262
VLC_ML_MEDIA_REMOVE_BOOKMARK
@ VLC_ML_MEDIA_REMOVE_BOOKMARK
arg1: media id; arg2: int64_t
Definition: vlc_media_library.h:546
vlc_ml_event_t::psz_entry_point
const char * psz_entry_point
Definition: vlc_media_library.h:733
vlc_ml_count_artist_tracks
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:1304
vlc_ml_bookmark_release
VLC_EXPORT void vlc_ml_bookmark_release(vlc_ml_bookmark_t *p_bookmark)
Definition: medialibrary.c:394
vlc_medialibrary_module_t::obj
struct vlc_object_t obj
Definition: vlc_media_library.h:812
vlc_ml_count_genres
static size_t vlc_ml_count_genres(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1376
vlc_object_t
VLC object common members.
Definition: vlc_objects.h:43
VLC_ML_ADD_FOLDER
@ VLC_ML_ADD_FOLDER
arg1: mrl (const char*) res: can't fail
Definition: vlc_media_library.h:512
vlc_ml_album_t
struct vlc_ml_album_t vlc_ml_album_t
VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE
@ VLC_ML_MEDIA_GET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: char**;
Definition: vlc_media_library.h:537
vlc_ml_media_track_t::i_height
uint32_t i_height
Definition: vlc_media_library.h:186
VLC_ML_COUNT_HISTORY
@ VLC_ML_COUNT_HISTORY
arg1 (out): size_t*
Definition: vlc_media_library.h:436
VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES
@ VLC_ML_MEDIA_GET_ALL_MEDIA_PLAYBACK_STATES
arg1: media id; arg2(out): vlc_ml_playback_states_all*
Definition: vlc_media_library.h:539
vlc_medialibrary_t
Definition: medialibrary.c:41
VLC_ML_THUMBNAIL_STATUS_PERSISTENT_FAILURE
@ VLC_ML_THUMBNAIL_STATUS_PERSISTENT_FAILURE
Definition: vlc_media_library.h:83
vlc_ml_event_t::discovery_completed
struct vlc_ml_event_t::@232::@236 discovery_completed
VLC_ML_SORTING_DURATION
@ VLC_ML_SORTING_DURATION
Definition: vlc_media_library.h:378
vlc_ml_artist_t::i_nb_album
unsigned int i_nb_album
Definition: vlc_media_library.h:268
vlc_ml_list_video_media
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:1313
vlc_medialibrary_callbacks_t::pf_send_event
void(* pf_send_event)(vlc_medialibrary_module_t *p_ml, const vlc_ml_event_t *p_event)
Definition: vlc_media_library.h:807
VLC_SUCCESS
#define VLC_SUCCESS
No error.
Definition: vlc_common.h:472
vlc_ml_show_episode_t
struct vlc_ml_show_episode_t vlc_ml_show_episode_t
VLC_ML_COUNT_ARTIST_ALBUMS
@ VLC_ML_COUNT_ARTIST_ALBUMS
arg1: The artist id.
Definition: vlc_media_library.h:454
vlc_ml_artist_t::psz_mb_id
char * psz_mb_id
Definition: vlc_media_library.h:266
vlc_ml_event_t::p_playlist
const vlc_ml_playlist_t * p_playlist
Definition: vlc_media_library.h:774
VLC_ML_LIST_FOLDER_MEDIAS
@ VLC_ML_LIST_FOLDER_MEDIAS
arg1: folder id; arg2 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:486
vlc_ml_thumbnail_t
Definition: vlc_media_library.h:93
vlc_medialibrary_callbacks_t
Definition: vlc_media_library.h:805
vlc_ml_playlist_list_t
Definition: vlc_media_library.h:328
VLC_ML_EVENT_ALBUM_ADDED
@ VLC_ML_EVENT_ALBUM_ADDED
Definition: vlc_media_library.h:622
vlc_ml_count_stream_history
static size_t vlc_ml_count_stream_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1565
vlc_ml_artist_t::psz_shortbio
char * psz_shortbio
Definition: vlc_media_library.h:264
VLC_ML_UNBAN_FOLDER
@ VLC_ML_UNBAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition: vlc_media_library.h:515
VLC_USED
#define VLC_USED
Definition: fourcc_gen.c:32
psz_value
char psz_value[8]
Definition: vout_intf.c:99
vlc_ml_media_get_all_playback_pref
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:995
vlc_ml_movie_t::psz_imdb_id
char * psz_imdb_id
Definition: vlc_media_library.h:106
vlc_ml_media_track_t::i_nbChannels
uint32_t i_nbChannels
Definition: vlc_media_library.h:180
vlc_ml_get_media
static vlc_ml_media_t * vlc_ml_get_media(vlc_medialibrary_t *p_ml, int64_t i_media_id)
Definition: vlc_media_library.h:1135
vlc_ml_playback_states_all::current_audio_track
char * current_audio_track
Definition: vlc_media_library.h:597
vlc_ml_media_track_list_t
struct vlc_ml_media_track_list_t vlc_ml_media_track_list_t
vlc_ml_label_list_t
struct vlc_ml_label_list_t vlc_ml_label_list_t
vlc_ml_genre_t
struct vlc_ml_genre_t vlc_ml_genre_t
vlc_assert
#define vlc_assert(pred)
Run-time assertion.
Definition: vlc_common.h:271
vlc_ml_album_t::i_id
int64_t i_id
Definition: vlc_media_library.h:279
list
module_config_t ** list
Definition: core.c:400
vlc_ml_reload_folder
static int vlc_ml_reload_folder(vlc_medialibrary_t *p_ml, const char *psz_mrl)
Definition: vlc_media_library.h:943
vlc_ml_show_list_t
Definition: vlc_media_library.h:310
VLC_ML_GET_FOLDER
@ VLC_ML_GET_FOLDER
arg1: folder ID; ret: vlc_ml_folder_t*
Definition: vlc_media_library.h:412
VLC_ML_EVENT_PLAYLIST_DELETED
@ VLC_ML_EVENT_PLAYLIST_DELETED
Definition: vlc_media_library.h:630
vlc_ml_media_list_t::p_items
vlc_ml_media_t p_items[]
Definition: vlc_media_library.h:301
VLC_ML_SORTING_DEFAULT
@ VLC_ML_SORTING_DEFAULT
Definition: vlc_media_library.h:376
name
const char name[16]
Definition: httpd.c:1268
vlc_ml_count_history
static size_t vlc_ml_count_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1526
VLC_ML_LIST_SUBFOLDERS
@ VLC_ML_LIST_SUBFOLDERS
arg1: parent id; arg2 (out): vlc_ml_folder_list_t**
Definition: vlc_media_library.h:484
vlc_ml_bookmark_t
Definition: vlc_media_library.h:348
VLC_ML_LIST_HISTORY
@ VLC_ML_LIST_HISTORY
arg1 (out): vlc_ml_media_list_t**
Definition: vlc_media_library.h:435
vlc_ml_folder_t::b_present
bool b_present
The presence state for this folder.
Definition: vlc_media_library.h:338
vlc_ml_artist_list_t::p_items
vlc_ml_artist_t p_items[]
Definition: vlc_media_library.h:275
vlc_ml_add_folder
static int vlc_ml_add_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition: vlc_media_library.h:917
vlc_ml_thumbnail_t::psz_mrl
char * psz_mrl
Definition: vlc_media_library.h:95
vlc_ml_show_episode_t::psz_tvdb_id
char * psz_tvdb_id
Definition: vlc_media_library.h:112
vlc_ml_media_t::thumbnails
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition: vlc_media_library.h:220
vlc_ml_thumbnail_status_t
vlc_ml_thumbnail_status_t
Definition: vlc_media_library.h:78
vlc_ml_count_playlists
static size_t vlc_ml_count_playlists(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1624
VLC_ML_EVENT_DISCOVERY_STARTED
@ VLC_ML_EVENT_DISCOVERY_STARTED
A discovery started.
Definition: vlc_media_library.h:645
VLC_ML_GET_MEDIA_BY_MRL
@ VLC_ML_GET_MEDIA_BY_MRL
arg1: Media MRL; ret: vlc_ml_media_t*
Definition: vlc_media_library.h:403
vlc_ml_album_t::i_artist_id
int64_t i_artist_id
Definition: vlc_media_library.h:284
vlc_ml_event_t::media_thumbnail_generated
struct vlc_ml_event_t::@232::@246 media_thumbnail_generated
vlc_ml_group_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:324
vlc_ml_list_show_episodes
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:1481
vlc_ml_thumbnail_t::i_status
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:100
VLC_ML_EVENT_BACKGROUND_IDLE_CHANGED
@ VLC_ML_EVENT_BACKGROUND_IDLE_CHANGED
Sent when a discoverer or parser threads changes its idle state.
Definition: vlc_media_library.h:697
VLC_ML_SORTING_PLAYCOUNT
@ VLC_ML_SORTING_PLAYCOUNT
Definition: vlc_media_library.h:384
vlc_ml_count_entry_points
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:1660
vlc_ml_list_artist_of
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:1205
vlc_ml_folder_list_t
struct vlc_ml_folder_list_t vlc_ml_folder_list_t
VLC_ML_EVENT_BOOKMARKS_DELETED
@ VLC_ML_EVENT_BOOKMARKS_DELETED
Definition: vlc_media_library.h:636
vlc_ml_playback_states_all
struct vlc_ml_playback_states_all vlc_ml_playback_states_all
vlc_ml_media_track_t::a
struct vlc_ml_media_track_t::@226::@228 a
VLC_ML_LIST_ENTRY_POINTS
@ VLC_ML_LIST_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): vlc_ml_folder_list_t**
Definition: vlc_media_library.h:441
vlc_medialibrary_module_t::p_module
module_t * p_module
Definition: vlc_media_library.h:814
VLC_ML_THUMBNAIL_STATUS_MISSING
@ VLC_ML_THUMBNAIL_STATUS_MISSING
Definition: vlc_media_library.h:80
VLC_ML_THUMBNAIL_SIZE_COUNT
@ VLC_ML_THUMBNAIL_SIZE_COUNT
Definition: vlc_media_library.h:75
vlc_ml_clear_history
static int vlc_ml_clear_history(vlc_medialibrary_t *p_ml)
Definition: vlc_media_library.h:958
vlc_ml_media_track_t::i_type
vlc_ml_track_type_t i_type
Definition: vlc_media_library.h:173
VLC_ML_MEDIA_SUBTYPE_UNKNOWN
@ VLC_ML_MEDIA_SUBTYPE_UNKNOWN
Definition: vlc_media_library.h:47
vlc_ml_file_list_t
Definition: vlc_media_library.h:162
vlc_ml_list_artists
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:1391
VLC_ML_EVENT_ALBUM_DELETED
@ VLC_ML_EVENT_ALBUM_DELETED
Definition: vlc_media_library.h:624
vlc_ml_list_albums_of
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:1223
vlc_ml_file_t
struct vlc_ml_file_t vlc_ml_file_t
VLC_ML_PLAYBACK_STATE_CHAPTER
@ VLC_ML_PLAYBACK_STATE_CHAPTER
Definition: vlc_media_library.h:574
VLC_ML_EVENT_GROUP_UPDATED
@ VLC_ML_EVENT_GROUP_UPDATED
Definition: vlc_media_library.h:626
vlc_ml_list_audio_media
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:1331
VLC_ML_COUNT_GROUP_MEDIA
@ VLC_ML_COUNT_GROUP_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition: vlc_media_library.h:477
vlc_ml_show_list_release
VLC_EXPORT void vlc_ml_show_list_release(vlc_ml_show_list_t *p_list)
Definition: medialibrary.c:332
vlc_ml_playback_states_all::rate
float rate
Definition: vlc_media_library.h:593
vlc_ml_folder_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:344
vlc_ml_artist_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:274
VLC_ML_PLAYBACK_STATE_AUDIO_TRACK
@ VLC_ML_PLAYBACK_STATE_AUDIO_TRACK
Definition: vlc_media_library.h:583
VLC_ML_COUNT_SHOW_EPISODES
@ VLC_ML_COUNT_SHOW_EPISODES
arg1: show id; arg2(out): size_t*
Definition: vlc_media_library.h:468
vlc_ml_genre_list_t::p_items
vlc_ml_genre_t p_items[]
Definition: vlc_media_library.h:319
VLC_ML_BAN_FOLDER
@ VLC_ML_BAN_FOLDER
arg1: mrl (const char*) res: can't fail
Definition: vlc_media_library.h:514
VLC_ML_EVENT_MEDIA_UPDATED
@ VLC_ML_EVENT_MEDIA_UPDATED
Definition: vlc_media_library.h:617
vlc_ml_album_t::thumbnails
vlc_ml_thumbnail_t thumbnails[VLC_ML_THUMBNAIL_SIZE_COUNT]
Definition: vlc_media_library.h:282
vlc_ml_media_t::album_track
vlc_ml_album_track_t album_track
Definition: vlc_media_library.h:228
vlc_ml_show_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:312
vlc_ml_playlist_t::i_id
int64_t i_id
Definition: vlc_media_library.h:247
vlc_ml_event_t::i_size
vlc_ml_thumbnail_size_t i_size
Definition: vlc_media_library.h:793
VLC_ML_PLAYBACK_STATE_SEEN
@ VLC_ML_PLAYBACK_STATE_SEEN
Definition: vlc_media_library.h:576
vlc_ml_show_t::i_release_year
unsigned int i_release_year
Definition: vlc_media_library.h:124
vlc_ml_ban_folder
static int vlc_ml_ban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition: vlc_media_library.h:927
VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE
@ VLC_ML_MEDIA_SET_MEDIA_PLAYBACK_STATE
arg1: media id; arg2: vlc_ml_playback_state; arg3: const char*;
Definition: vlc_media_library.h:538
vlc_medialibrary_module_t::p_sys
void * p_sys
Definition: vlc_media_library.h:816
vlc_ml_media_set_thumbnail
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:1009
vlc_ml_media_track_t
Definition: vlc_media_library.h:168
VLC_ML_PLAYLIST_APPEND
@ VLC_ML_PLAYLIST_APPEND
arg1: playlist id; arg2: media id; can fail
Definition: vlc_media_library.h:553
vlc_ml_event_t::i_entity_id
int64_t i_entity_id
Definition: vlc_media_library.h:780
vlc_ml_playlist_list_release
VLC_EXPORT void vlc_ml_playlist_list_release(vlc_ml_playlist_list_t *p_list)
Definition: medialibrary.c:359
vlc_ml_list_stream_history
static vlc_ml_media_list_t * vlc_ml_list_stream_history(vlc_medialibrary_t *p_ml, const vlc_ml_query_params_t *params)
Definition: vlc_media_library.h:1556
VLC_ML_EVENT_GROUP_DELETED
@ VLC_ML_EVENT_GROUP_DELETED
Definition: vlc_media_library.h:627
vlc_ml_playlist_release
VLC_EXPORT void vlc_ml_playlist_release(vlc_ml_playlist_t *p_playlist)
Definition: medialibrary.c:259
VLC_ML_EVENT_ENTRY_POINT_ADDED
@ VLC_ML_EVENT_ENTRY_POINT_ADDED
Sent when a new entry point gets added to the database.
Definition: vlc_media_library.h:669
vlc_ml_media_list_t
Definition: vlc_media_library.h:298
vlc_ml_playlist_t::i_creation_date
uint32_t i_creation_date
Definition: vlc_media_library.h:255
vlc_ml_album_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:306
vlc_ml_artist_list_release
VLC_EXPORT void vlc_ml_artist_list_release(vlc_ml_artist_list_t *p_list)
Definition: medialibrary.c:304
VLC_ML_COUNT_ENTRY_POINTS
@ VLC_ML_COUNT_ENTRY_POINTS
arg1 bool: list_banned; arg2 (out): size_t*
Definition: vlc_media_library.h:442
vlc_ml_media_track_t::i_sarDen
uint32_t i_sarDen
Definition: vlc_media_library.h:189
vlc_ml_unban_folder
static int vlc_ml_unban_folder(vlc_medialibrary_t *p_ml, const char *psz_folder)
Definition: vlc_media_library.h:932
vlc_ml_playlist_t::psz_name
char * psz_name
Definition: vlc_media_library.h:249
vlc_ml_label_t::psz_name
char * psz_name
Definition: vlc_media_library.h:142
VLC_ML_EVENT_BOOKMARKS_UPDATED
@ VLC_ML_EVENT_BOOKMARKS_UPDATED
Definition: vlc_media_library.h:635
vlc_ml_list_artist_tracks
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:1295
vlc_ml_album_track_t::i_track_nb
int i_track_nb
Definition: vlc_media_library.h:135
vlc_ml_query_params_t::b_desc
bool b_desc
Definition: vlc_media_library.h:397
VLC_ML_COUNT_ALBUM_ARTISTS
@ VLC_ML_COUNT_ALBUM_ARTISTS
arg1: The album id.
Definition: vlc_media_library.h:450
vlc_ml_media_track_t::i_bitrate
uint32_t i_bitrate
Definition: vlc_media_library.h:174
vlc_ml_folder_t
Definition: vlc_media_library.h:334
VLC_ML_COUNT_MEDIA_OF
@ VLC_ML_COUNT_MEDIA_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition: vlc_media_library.h:491
vlc_ml_media_set_type
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:1031
vlc_ml_get_artist
static vlc_ml_artist_t * vlc_ml_get_artist(vlc_medialibrary_t *p_ml, int64_t i_artist_id)
Definition: vlc_media_library.h:1162
vlc_ml_folder_list_t
Definition: vlc_media_library.h:342
vlc_ml_list_album_artists
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:1259
VLC_ML_COUNT_SUBFOLDERS
@ VLC_ML_COUNT_SUBFOLDERS
arg1: parent id; arg2 (out): size_t*
Definition: vlc_media_library.h:485
vlc_ml_count_artist_albums
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:1286
VLC_ML_FILE_TYPE_PLAYLIST
@ VLC_ML_FILE_TYPE_PLAYLIST
Definition: vlc_media_library.h:60
vlc_ml_event_unregister_callback
VLC_EXPORT void vlc_ml_event_unregister_callback(vlc_medialibrary_t *p_ml, vlc_ml_event_callback_t *p_callback)
Unregisters a medialibrary callback.
Definition: medialibrary.c:81
VLC_ML_LIST_PLAYLISTS
@ VLC_ML_LIST_PLAYLISTS
arg1 (out): vlc_ml_playlist_list_t**
Definition: vlc_media_library.h:433
vlc_ml_media_update_bookmark
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:1064
vlc_ml_show_t
Definition: vlc_media_library.h:117
vlc_ml_album_release
VLC_EXPORT void vlc_ml_album_release(vlc_ml_album_t *p_album)
Definition: medialibrary.c:218
vlc_ml_show_t::i_id
int64_t i_id
Definition: vlc_media_library.h:119
vlc_ml_file_type_t
vlc_ml_file_type_t
Definition: vlc_media_library.h:53
vlc_ml_playback_states_all::aspect_ratio
char * aspect_ratio
Definition: vlc_media_library.h:599
vlc_ml_boomkmark_list_t::i_nb_items
size_t i_nb_items
Definition: vlc_media_library.h:358
VLC_ML_PLAYBACK_STATE_SPEED
@ VLC_ML_PLAYBACK_STATE_SPEED
Definition: vlc_media_library.h:572
vlc_ml_album_t::psz_artist
char * psz_artist
Definition: vlc_media_library.h:283
VLC_ML_COUNT_PLAYLIST_MEDIA
@ VLC_ML_COUNT_PLAYLIST_MEDIA
arg1: playlist id; arg2 (out): size_t*
Definition: vlc_media_library.h:481
vlc_ml_event_t::history_changed
struct vlc_ml_event_t::@232::@247 history_changed
vlc_ml_release
#define vlc_ml_release(OBJ)
Definition: vlc_media_library.h:1694
vlc_ml_album_t::i_nb_tracks
size_t i_nb_tracks
Definition: vlc_media_library.h:286
VLC_ML_COUNT_ARTISTS
@ VLC_ML_COUNT_ARTISTS
arg1 bool: includeAll; arg2 (out): size_t*
Definition: vlc_media_library.h:428
vlc_ml_event_t::p_genre
const vlc_ml_genre_t * p_genre
Definition: vlc_media_library.h:775
VLC_ML_FILE_TYPE_SOUNDTRACK
@ VLC_ML_FILE_TYPE_SOUNDTRACK
Definition: vlc_media_library.h:58
VLC_ML_FILE_TYPE_MAIN
@ VLC_ML_FILE_TYPE_MAIN
Definition: vlc_media_library.h:56
vlc_ml_bookmark_t::psz_name
char * psz_name
The bookmark name.
Definition: vlc_media_library.h:352
VLC_ML_PARENT_PLAYLIST
@ VLC_ML_PARENT_PLAYLIST
Definition: vlc_media_library.h:506
vlc_ml_media_add_external_mrl
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:1025
vlc_ml_bookmark_list_release
VLC_EXPORT void vlc_ml_bookmark_list_release(vlc_ml_bookmark_list_t *p_list)
Definition: medialibrary.c:402
VLC_ML_MEDIA_TYPE_AUDIO
@ VLC_ML_MEDIA_TYPE_AUDIO
Definition: vlc_media_library.h:66
vlc_ml_group_t
Definition: vlc_media_library.h:232
vlc_ml_file_list_t
struct vlc_ml_file_list_t vlc_ml_file_list_t
VLC_ML_REMOVE_FOLDER
@ VLC_ML_REMOVE_FOLDER
arg1: mrl (const char*) res: can't fail
Definition: vlc_media_library.h:513
VLC_ML_COUNT_ALBUMS_OF
@ VLC_ML_COUNT_ALBUMS_OF
arg1: parent entity type; arg2: parent entity id; arg3(out): size_t*
Definition: vlc_media_library.h:495
vlc_ml_media_t::b_is_favorite
bool b_is_favorite
Definition: vlc_media_library.h:222
VLC_ML_PLAYLIST_INSERT
@ VLC_ML_PLAYLIST_INSERT
arg1: playlist id; arg2: media id; arg3: position; can fail
Definition: vlc_media_library.h:554
VLC_ML_GET_ARTIST
@ VLC_ML_GET_ARTIST
arg1: Artist ID; ret: vlc_ml_artist_t*
Definition: vlc_media_library.h:407
VLC_ML_GET_PLAYLIST
@ VLC_ML_GET_PLAYLIST
arg1: Playlist ID; ret: vlc_ml_playlist_t*
Definition: vlc_media_library.h:410
VLC_ML_RESUME_BACKGROUND
@ VLC_ML_RESUME_BACKGROUND
no args; can't fail
Definition: vlc_media_library.h:526
VLC_ML_SORTING_LASTMODIFICATIONDATE
@ VLC_ML_SORTING_LASTMODIFICATIONDATE
Definition: vlc_media_library.h:380
VLC_ML_PLAYBACK_STATE_DEINTERLACE
@ VLC_ML_PLAYBACK_STATE_DEINTERLACE
Definition: vlc_media_library.h:581
vlc_ml_artist_t
Definition: vlc_media_library.h:260
VLC_ML_TRACK_TYPE_UNKNOWN
@ VLC_ML_TRACK_TYPE_UNKNOWN
Definition: vlc_media_library.h:65
vlc_ml_file_t::b_external
bool b_external
Definition: vlc_media_library.h:157
VLC_ML_MEDIA_SUBTYPE_SHOW_EPISODE
@ VLC_ML_MEDIA_SUBTYPE_SHOW_EPISODE
Definition: vlc_media_library.h:48
vlc_ml_count_show_episodes
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:1490
VLC_ML_PLAYBACK_STATE_CROP
@ VLC_ML_PLAYBACK_STATE_CROP
Definition: vlc_media_library.h:580
VLC_ML_NEW_STREAM
@ VLC_ML_NEW_STREAM
arg1: const char*; arg2(out): vlc_ml_media_t**
Definition: vlc_media_library.h:533
vlc_ml_event_t::p_album
const vlc_ml_album_t * p_album
Definition: vlc_media_library.h:772
libvlc_MlCreate
vlc_medialibrary_t * libvlc_MlCreate(libvlc_int_t *p_libvlc)
Definition: medialibrary.c:102
vlc_ml_track_type_t
vlc_ml_track_type_t
Definition: vlc_media_library.h:63
VLC_ML_COUNT_ALBUMS
@ VLC_ML_COUNT_ALBUMS
arg1 (out): size_t*
Definition: vlc_media_library.h:424
vlc_ml_count_playlist_media
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:1642
VLC_ML_THUMBNAIL_SMALL
@ VLC_ML_THUMBNAIL_SMALL
Definition: vlc_media_library.h:72
vlc_ml_count_artists
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:1400
vlc_ml_media_t::p_tracks
vlc_ml_media_track_list_t * p_tracks
Definition: vlc_media_library.h:210
VLC_ML_EVENT_DISCOVERY_COMPLETED
@ VLC_ML_EVENT_DISCOVERY_COMPLETED
Sent when an entry point discovery is completed.
Definition: vlc_media_library.h:659
vlc_ml_group_t::i_id
int64_t i_id
Definition: vlc_media_library.h:234
vlc_ml_media_track_t::i_fpsDen
uint32_t i_fpsDen
Definition: vlc_media_library.h:191
vlc_medialibrary_module_t
Definition: vlc_media_library.h:810
VLC_ML_LIST_GENRES
@ VLC_ML_LIST_GENRES
arg1 (out): vlc_ml_genre_list_t**
Definition: vlc_media_library.h:425
vlc_ml_file_t::i_type
vlc_ml_file_type_t i_type
Definition: vlc_media_library.h:156
vlc_ml_genre_t::i_id
int64_t i_id
Definition: vlc_media_library.h:293
VLC_ML_MEDIA_UPDATE_BOOKMARK
@ VLC_ML_MEDIA_UPDATE_BOOKMARK
arg1: media id; arg2: int64_t; arg3: const char*; arg4: const char*
Definition: vlc_media_library.h:548
vlc_ml_show_t::psz_summary
char * psz_summary
Definition: vlc_media_library.h:121
vlc_ml_group_t::i_creation_date
uint32_t i_creation_date
Definition: vlc_media_library.h:242
VLC_ML_GET_SHOW
@ VLC_ML_GET_SHOW
arg1: Show ID; ret: vlc_ml_show_t*
Definition: vlc_media_library.h:409
VLC_ML_MEDIA_SUBTYPE_ALBUMTRACK
@ VLC_ML_MEDIA_SUBTYPE_ALBUMTRACK
Definition: vlc_media_library.h:50
vlc_ml_label_list_t::p_items
vlc_ml_label_t p_items[]
Definition: vlc_media_library.h:148
vlc_ml_sorting_criteria_t
vlc_ml_sorting_criteria_t
Definition: vlc_media_library.h:369
vlc_ml_media_t::movie
vlc_ml_movie_t movie
Definition: vlc_media_library.h:227
vlc_ml_playback_states_all
Definition: vlc_media_library.h:591
VLC_ML_LIST_SHOWS
@ VLC_ML_LIST_SHOWS
arg1 (out): vlc_ml_show_list_t**
Definition: vlc_media_library.h:429
vlc_ml_media_track_t::i_sampleRate
uint32_t i_sampleRate
Definition: vlc_media_library.h:181