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