00001 /***************************************************************************** 00002 * libvlc_media_library.h: libvlc external API 00003 ***************************************************************************** 00004 * Copyright (C) 1998-2009 VLC authors and VideoLAN 00005 * $Id: fa7094a6a8aac42607490c9982d9f4d082c2794c $ 00006 * 00007 * Authors: Clément Stenac <zorglub@videolan.org> 00008 * Jean-Paul Saman <jpsaman@videolan.org> 00009 * Pierre d'Herbemont <pdherbemont@videolan.org> 00010 * 00011 * This program is free software; you can redistribute it and/or modify it 00012 * under the terms of the GNU Lesser General Public License as published by 00013 * the Free Software Foundation; either version 2.1 of the License, or 00014 * (at your option) any later version. 00015 * 00016 * This program is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 * GNU Lesser General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Lesser General Public License 00022 * along with this program; if not, write to the Free Software Foundation, 00023 * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 00024 *****************************************************************************/ 00025 00026 /** 00027 * \file 00028 * This file defines libvlc_media_library external API 00029 */ 00030 00031 #ifndef VLC_LIBVLC_MEDIA_LIBRARY_H 00032 #define VLC_LIBVLC_MEDIA_LIBRARY_H 1 00033 00034 # ifdef __cplusplus 00035 extern "C" { 00036 # endif 00037 00038 /** \defgroup libvlc_media_library LibVLC media library 00039 * \ingroup libvlc 00040 * @{ 00041 */ 00042 00043 typedef struct libvlc_media_library_t libvlc_media_library_t; 00044 00045 /** 00046 * Create an new Media Library object 00047 * 00048 * \param p_instance the libvlc instance 00049 * \return a new object or NULL on error 00050 */ 00051 LIBVLC_API libvlc_media_library_t * 00052 libvlc_media_library_new( libvlc_instance_t * p_instance ); 00053 00054 /** 00055 * Release media library object. This functions decrements the 00056 * reference count of the media library object. If it reaches 0, 00057 * then the object will be released. 00058 * 00059 * \param p_mlib media library object 00060 */ 00061 LIBVLC_API void 00062 libvlc_media_library_release( libvlc_media_library_t * p_mlib ); 00063 00064 /** 00065 * Retain a reference to a media library object. This function will 00066 * increment the reference counting for this object. Use 00067 * libvlc_media_library_release() to decrement the reference count. 00068 * 00069 * \param p_mlib media library object 00070 */ 00071 LIBVLC_API void 00072 libvlc_media_library_retain( libvlc_media_library_t * p_mlib ); 00073 00074 /** 00075 * Load media library. 00076 * 00077 * \param p_mlib media library object 00078 * \return 0 on success, -1 on error 00079 */ 00080 LIBVLC_API int 00081 libvlc_media_library_load( libvlc_media_library_t * p_mlib ); 00082 00083 /** 00084 * Get media library subitems. 00085 * 00086 * \param p_mlib media library object 00087 * \return media list subitems 00088 */ 00089 LIBVLC_API libvlc_media_list_t * 00090 libvlc_media_library_media_list( libvlc_media_library_t * p_mlib ); 00091 00092 00093 /** @} */ 00094 00095 # ifdef __cplusplus 00096 } 00097 # endif 00098 00099 #endif /* VLC_LIBVLC_MEDIA_LIBRARY_H */
1.7.1