1 | /***************************************************************************** |
2 | * libvlc_media_library.h: libvlc external API |
3 | ***************************************************************************** |
4 | * Copyright (C) 1998-2009 VLC authors and VideoLAN |
5 | * $Id: facbf813aa16140461c6e72f166d2985c52b1d6f $ |
6 | * |
7 | * Authors: Clément Stenac <zorglub@videolan.org> |
8 | * Jean-Paul Saman <jpsaman@videolan.org> |
9 | * Pierre d'Herbemont <pdherbemont@videolan.org> |
10 | * |
11 | * This program is free software; you can redistribute it and/or modify it |
12 | * under the terms of the GNU Lesser General Public License as published by |
13 | * the Free Software Foundation; either version 2.1 of the License, or |
14 | * (at your option) any later version. |
15 | * |
16 | * This program is distributed in the hope that it will be useful, |
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
19 | * GNU Lesser General Public License for more details. |
20 | * |
21 | * You should have received a copy of the GNU Lesser General Public License |
22 | * along with this program; if not, write to the Free Software Foundation, |
23 | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
24 | *****************************************************************************/ |
25 | |
26 | #ifndef VLC_LIBVLC_MEDIA_LIBRARY_H |
27 | #define VLC_LIBVLC_MEDIA_LIBRARY_H 1 |
28 | |
29 | # ifdef __cplusplus |
30 | extern "C" { |
31 | # endif |
32 | |
33 | /** \defgroup libvlc_media_library LibVLC media library |
34 | * \ingroup libvlc |
35 | * @{ |
36 | * \file |
37 | * LibVLC media library external API |
38 | */ |
39 | |
40 | typedef struct libvlc_media_library_t libvlc_media_library_t; |
41 | |
42 | /** |
43 | * Create an new Media Library object |
44 | * |
45 | * \param p_instance the libvlc instance |
46 | * \return a new object or NULL on error |
47 | */ |
48 | LIBVLC_API libvlc_media_library_t * |
49 | libvlc_media_library_new( libvlc_instance_t * p_instance ); |
50 | |
51 | /** |
52 | * Release media library object. This functions decrements the |
53 | * reference count of the media library object. If it reaches 0, |
54 | * then the object will be released. |
55 | * |
56 | * \param p_mlib media library object |
57 | */ |
58 | LIBVLC_API void |
59 | libvlc_media_library_release( libvlc_media_library_t * p_mlib ); |
60 | |
61 | /** |
62 | * Retain a reference to a media library object. This function will |
63 | * increment the reference counting for this object. Use |
64 | * libvlc_media_library_release() to decrement the reference count. |
65 | * |
66 | * \param p_mlib media library object |
67 | */ |
68 | LIBVLC_API void |
69 | libvlc_media_library_retain( libvlc_media_library_t * p_mlib ); |
70 | |
71 | /** |
72 | * Load media library. |
73 | * |
74 | * \param p_mlib media library object |
75 | * \return 0 on success, -1 on error |
76 | */ |
77 | LIBVLC_API int |
78 | libvlc_media_library_load( libvlc_media_library_t * p_mlib ); |
79 | |
80 | /** |
81 | * Get media library subitems. |
82 | * |
83 | * \param p_mlib media library object |
84 | * \return media list subitems |
85 | */ |
86 | LIBVLC_API libvlc_media_list_t * |
87 | libvlc_media_library_media_list( libvlc_media_library_t * p_mlib ); |
88 | |
89 | |
90 | /** @} */ |
91 | |
92 | # ifdef __cplusplus |
93 | } |
94 | # endif |
95 | |
96 | #endif /* VLC_LIBVLC_MEDIA_LIBRARY_H */ |
97 | |