libvlc_media_list.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * libvlc_media_list.h:  libvlc_media_list API
00003  *****************************************************************************
00004  * Copyright (C) 1998-2005 the VideoLAN team
00005  * $Id$
00006  *
00007  * Authors: Pierre d'Herbemont
00008  *
00009  * This program is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU General Public License
00020  * along with this program; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
00022  *****************************************************************************/
00023 
00024 #ifndef LIBVLC_MEDIA_LIST_H
00025 #define LIBVLC_MEDIA_LIST_H 1
00026 
00027 # ifdef __cplusplus
00028 extern "C" {
00029 # endif
00030 
00031 /*****************************************************************************
00032  * Media List
00033  *****************************************************************************/
00034 /** \defgroup libvlc_media_list libvlc_media_list
00035  * \ingroup libvlc
00036  * LibVLC Media List, a media list holds multiple media descriptors
00037  * @{
00038  */
00039 
00040 /**
00041  * Create an empty media list.
00042  *
00043  * \param p_libvlc the event manager
00044  * \param i_event_type the desired event to which we want to unregister
00045  * \param f_callback the function to call when i_event_type occurs
00046  * \param p_e an initialized exception pointer
00047  */
00048 
00049 VLC_PUBLIC_API libvlc_media_list_t *
00050     libvlc_media_list_new( libvlc_instance_t *, libvlc_exception_t * );
00051 
00052 VLC_PUBLIC_API void
00053     libvlc_media_list_release( libvlc_media_list_t * );
00054 
00055 VLC_PUBLIC_API void
00056     libvlc_media_list_retain( libvlc_media_list_t * );
00057 
00058 VLC_DEPRECATED_API void
00059     libvlc_media_list_add_file_content( libvlc_media_list_t * p_mlist,
00060                                         const char * psz_uri,
00061                                         libvlc_exception_t * p_e );
00062 
00063 VLC_PUBLIC_API void
00064     libvlc_media_list_set_media( libvlc_media_list_t *,
00065                                             libvlc_media_t *,
00066                                             libvlc_exception_t *);
00067 
00068 VLC_PUBLIC_API libvlc_media_t *
00069     libvlc_media_list_media( libvlc_media_list_t *,
00070                                         libvlc_exception_t *);
00071 
00072 VLC_PUBLIC_API void
00073     libvlc_media_list_add_media( libvlc_media_list_t *,
00074                                             libvlc_media_t *,
00075                                             libvlc_exception_t * );
00076 VLC_PUBLIC_API void
00077     libvlc_media_list_insert_media( libvlc_media_list_t *,
00078                                                libvlc_media_t *,
00079                                                int,
00080                                                libvlc_exception_t * );
00081 VLC_PUBLIC_API void
00082     libvlc_media_list_remove_index( libvlc_media_list_t *, int,
00083                                     libvlc_exception_t * );
00084 
00085 VLC_PUBLIC_API int
00086     libvlc_media_list_count( libvlc_media_list_t * p_mlist,
00087                              libvlc_exception_t * p_e );
00088 
00089 VLC_PUBLIC_API libvlc_media_t *
00090     libvlc_media_list_item_at_index( libvlc_media_list_t *, int,
00091                                      libvlc_exception_t * );
00092 VLC_PUBLIC_API int
00093     libvlc_media_list_index_of_item( libvlc_media_list_t *,
00094                                      libvlc_media_t *,
00095                                      libvlc_exception_t * );
00096 
00097 /* This indicates if this media list is read-only from a user point of view */
00098 VLC_PUBLIC_API int
00099     libvlc_media_list_is_readonly( libvlc_media_list_t * p_mlist );
00100 
00101 VLC_PUBLIC_API void
00102     libvlc_media_list_lock( libvlc_media_list_t * );
00103 VLC_PUBLIC_API void
00104     libvlc_media_list_unlock( libvlc_media_list_t * );
00105 
00106 VLC_PUBLIC_API libvlc_media_list_view_t *
00107     libvlc_media_list_flat_view( libvlc_media_list_t *,
00108                                  libvlc_exception_t * );
00109 
00110 VLC_PUBLIC_API libvlc_media_list_view_t *
00111     libvlc_media_list_hierarchical_view( libvlc_media_list_t *,
00112                                          libvlc_exception_t * );
00113 
00114 VLC_PUBLIC_API libvlc_media_list_view_t *
00115     libvlc_media_list_hierarchical_node_view( libvlc_media_list_t *,
00116                                               libvlc_exception_t * );
00117 
00118 VLC_PUBLIC_API libvlc_event_manager_t *
00119     libvlc_media_list_event_manager( libvlc_media_list_t *,
00120                                      libvlc_exception_t * );
00121 
00122 /*****************************************************************************
00123  * Media List View
00124  *****************************************************************************/
00125 /** \defgroup libvlc_media_list_view libvlc_media_list_view
00126  * \ingroup libvlc_media_list
00127  * LibVLC Media List View, represent a media_list using a different layout
00128  * @{ */
00129 
00130 VLC_PUBLIC_API void
00131     libvlc_media_list_view_retain( libvlc_media_list_view_t * p_mlv );
00132 
00133 VLC_PUBLIC_API void
00134     libvlc_media_list_view_release( libvlc_media_list_view_t * p_mlv );
00135 
00136 VLC_PUBLIC_API libvlc_event_manager_t *
00137     libvlc_media_list_view_event_manager(  libvlc_media_list_view_t * p_mlv );
00138 
00139 VLC_PUBLIC_API int
00140     libvlc_media_list_view_count(  libvlc_media_list_view_t * p_mlv,
00141                                    libvlc_exception_t * p_e );
00142 
00143 VLC_PUBLIC_API libvlc_media_t *
00144     libvlc_media_list_view_item_at_index(  libvlc_media_list_view_t * p_mlv,
00145                                            int index,
00146                                            libvlc_exception_t * p_e );
00147 
00148 VLC_PUBLIC_API libvlc_media_list_view_t *
00149     libvlc_media_list_view_children_at_index(  libvlc_media_list_view_t * p_mlv,
00150                                            int index,
00151                                            libvlc_exception_t * p_e );
00152 
00153 VLC_PUBLIC_API libvlc_media_list_view_t *
00154     libvlc_media_list_view_children_for_item(  libvlc_media_list_view_t * p_mlv,
00155                                            libvlc_media_t * p_md,
00156                                            libvlc_exception_t * p_e );
00157 
00158 
00159 VLC_PUBLIC_API int
00160     libvlc_media_list_view_index_of_item(  libvlc_media_list_view_t * p_mlv,
00161                                            libvlc_media_t * p_md,
00162                                            libvlc_exception_t * p_e );
00163 
00164 VLC_PUBLIC_API void
00165     libvlc_media_list_view_insert_at_index(  libvlc_media_list_view_t * p_mlv,
00166                                              libvlc_media_t * p_md,
00167                                              int index,
00168                                              libvlc_exception_t * p_e );
00169 
00170 VLC_PUBLIC_API void
00171     libvlc_media_list_view_remove_at_index(  libvlc_media_list_view_t * p_mlv,
00172                                              int index,
00173                                              libvlc_exception_t * p_e );
00174 
00175 VLC_PUBLIC_API void
00176     libvlc_media_list_view_add_item(  libvlc_media_list_view_t * p_mlv,
00177                                       libvlc_media_t * p_md,
00178                                       libvlc_exception_t * p_e );
00179 
00180 VLC_PUBLIC_API libvlc_media_list_t *
00181     libvlc_media_list_view_parent_media_list(  libvlc_media_list_view_t * p_mlv,
00182                                                libvlc_exception_t * p_e );
00183 
00184 /** @} media_list_view */
00185 
00186 /*****************************************************************************
00187  * Media List Player
00188  *****************************************************************************/
00189 /** \defgroup libvlc_media_list_player libvlc_media_list_player
00190  * \ingroup libvlc_media_list_player
00191  * LibVLC Media List Player, play a media_list. You can see that as a media
00192  * instance subclass
00193  * @{
00194  */
00195 VLC_PUBLIC_API libvlc_media_list_player_t *
00196     libvlc_media_list_player_new( libvlc_instance_t * p_instance,
00197                                   libvlc_exception_t * p_e );
00198 VLC_PUBLIC_API void
00199     libvlc_media_list_player_release( libvlc_media_list_player_t * p_mlp );
00200 
00201 VLC_PUBLIC_API void
00202     libvlc_media_list_player_set_media_player(
00203                                      libvlc_media_list_player_t * p_mlp,
00204                                      libvlc_media_player_t * p_mi,
00205                                      libvlc_exception_t * p_e );
00206 
00207 VLC_PUBLIC_API void
00208     libvlc_media_list_player_set_media_list(
00209                                      libvlc_media_list_player_t * p_mlp,
00210                                      libvlc_media_list_t * p_mlist,
00211                                      libvlc_exception_t * p_e );
00212 
00213 VLC_PUBLIC_API void
00214     libvlc_media_list_player_play( libvlc_media_list_player_t * p_mlp,
00215                                    libvlc_exception_t * p_e );
00216 
00217 VLC_PUBLIC_API void
00218     libvlc_media_list_player_pause( libvlc_media_list_player_t * p_mlp,
00219                                    libvlc_exception_t * p_e );
00220 
00221 VLC_PUBLIC_API int
00222     libvlc_media_list_player_is_playing( libvlc_media_list_player_t * p_mlp,
00223                                          libvlc_exception_t * p_e );
00224 
00225 VLC_PUBLIC_API libvlc_state_t
00226     libvlc_media_list_player_get_state( libvlc_media_list_player_t * p_mlp,
00227                                         libvlc_exception_t * p_e );
00228 
00229 VLC_PUBLIC_API void
00230     libvlc_media_list_player_play_item_at_index(
00231                                    libvlc_media_list_player_t * p_mlp,
00232                                    int i_index,
00233                                    libvlc_exception_t * p_e );
00234 
00235 VLC_PUBLIC_API void
00236     libvlc_media_list_player_play_item(
00237                                    libvlc_media_list_player_t * p_mlp,
00238                                    libvlc_media_t * p_md,
00239                                    libvlc_exception_t * p_e );
00240 
00241 VLC_PUBLIC_API void
00242     libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp,
00243                                    libvlc_exception_t * p_e );
00244 
00245 VLC_PUBLIC_API void
00246     libvlc_media_list_player_next( libvlc_media_list_player_t * p_mlp,
00247                                    libvlc_exception_t * p_e );
00248 
00249 /** @} media_list_player */
00250 
00251 /** @} media_list */
00252 
00253 # ifdef __cplusplus
00254 }
00255 # endif
00256 
00257 #endif /* _LIBVLC_MEDIA_LIST_H */

Generated on Wed Aug 13 08:02:37 2008 for VLC by  doxygen 1.5.1