libvlc.h 51.3 KB
Newer Older
zorglub's avatar
zorglub committed
1 2 3 4 5 6
/*****************************************************************************
 * libvlc.h:  libvlc_* new external API
 *****************************************************************************
 * Copyright (C) 1998-2005 the VideoLAN team
 * $Id: vlc.h 13701 2005-12-12 17:58:56Z zorglub $
 *
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
7
 * Authors: Clément Stenac <zorglub@videolan.org>
8
 *          Jean-Paul Saman <jpsaman _at_ m2x _dot_ nl>
zorglub's avatar
zorglub committed
9 10 11 12 13 14 15 16 17 18 19 20 21
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
dionoea's avatar
dionoea committed
22
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
zorglub's avatar
zorglub committed
23 24 25 26 27 28 29 30 31 32 33 34 35 36
 *****************************************************************************/

/**
 * \defgroup libvlc Libvlc
 * This is libvlc, the base library of the VLC program.
 *
 * @{
 */


#ifndef _LIBVLC_H
#define _LIBVLC_H 1

#include <vlc/vlc.h>
37
#include <vlc/libvlc_structures.h>
zorglub's avatar
zorglub committed
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

# ifdef __cplusplus
extern "C" {
# endif

/*****************************************************************************
 * Exception handling
 *****************************************************************************/
/** defgroup libvlc_exception Exceptions
 * \ingroup libvlc
 * LibVLC Exceptions handling
 * @{
 */

/**
 * Initialize an exception structure. This can be called several times to reuse
 * an exception structure.
 * \param p_exception the exception to initialize
 */
57
VLC_PUBLIC_API void libvlc_exception_init( libvlc_exception_t *p_exception );
zorglub's avatar
zorglub committed
58 59 60 61 62 63

/**
 * Has an exception been raised ?
 * \param p_exception the exception to query
 * \return 0 if no exception raised, 1 else
 */
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
64 65
VLC_PUBLIC_API int
libvlc_exception_raised( const libvlc_exception_t *p_exception );
zorglub's avatar
zorglub committed
66 67 68 69 70 71

/**
 * Raise an exception
 * \param p_exception the exception to raise
 * \param psz_message the exception message
 */
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
72 73 74
VLC_PUBLIC_API void
libvlc_exception_raise( libvlc_exception_t *p_exception,
                        const char *psz_format, ... );
zorglub's avatar
zorglub committed
75

zorglub's avatar
zorglub committed
76 77 78 79 80
/**
 * Clear an exception object so it can be reused.
 * The exception object must be initialized
 * \param p_exception the exception to clear
 */
81
VLC_PUBLIC_API void libvlc_exception_clear( libvlc_exception_t * );
zorglub's avatar
zorglub committed
82

zorglub's avatar
zorglub committed
83 84 85 86 87 88
/**
 * Get exception message
 * \param p_exception the exception to query
 * \return the exception message or NULL if not applicable (exception not raised
 * for example)
 */
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
89 90
VLC_PUBLIC_API const char *
libvlc_exception_get_message( const libvlc_exception_t *p_exception );
zorglub's avatar
zorglub committed
91

zorglub's avatar
zorglub committed
92
/**@} */
zorglub's avatar
zorglub committed
93 94 95 96 97 98 99 100 101 102 103 104

/*****************************************************************************
 * Core handling
 *****************************************************************************/

/** defgroup libvlc_core Core
 * \ingroup libvlc
 * LibVLC Core
 * @{
 */

/**
105
 * Create an initialized libvlc instance.
zorglub's avatar
zorglub committed
106 107 108 109
 * \param argc the number of arguments
 * \param argv command-line-type arguments
 * \param exception an initialized exception pointer
 */
110 111
VLC_PUBLIC_API libvlc_instance_t *
libvlc_new( int , const char *const *, libvlc_exception_t *);
zorglub's avatar
zorglub committed
112

damienf's avatar
damienf committed
113
/**
114 115 116 117
 * Returns a libvlc instance identifier for legacy APIs. Use of this
 * function is discouraged, you should convert your program to use the
 * new API.
 * \param p_instance the instance
damienf's avatar
damienf committed
118
 */
119
VLC_PUBLIC_API int libvlc_get_vlc_id( libvlc_instance_t *p_instance );
damienf's avatar
damienf committed
120

zorglub's avatar
zorglub committed
121
/**
122 123
 * Decrements the reference count of a libvlc instance, and destroys it
 * if it reaches zero.
zorglub's avatar
zorglub committed
124 125
 * \param p_instance the instance to destroy
 */
126
VLC_PUBLIC_API void libvlc_release( libvlc_instance_t * );
127 128 129 130 131 132

/**
 * Increments the reference count of a libvlc instance.
 * The reference count is initially one when libvlc_new() returns.
 */
VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t * );
zorglub's avatar
zorglub committed
133 134 135

/** @}*/

136 137 138 139 140 141 142 143
/*****************************************************************************
 * Media descriptor
 *****************************************************************************/
/** defgroup libvlc_media_descriptor Media Descriptor
 * \ingroup libvlc
 * LibVLC Media Descriptor
 * @{
 */
144

145 146 147 148 149 150 151 152 153 154
/**
 * Create a media descriptor with the given mrl.
 * \param p_instance the instance
 * \param psz_mrl the mrl to read
 */
VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_descriptor_new(
                                   libvlc_instance_t *p_instance,
                                   const char * psz_mrl,
                                   libvlc_exception_t *p_e );

155 156 157 158 159 160 161 162 163 164
/**
 * Create a media descriptor as an empty node with the passed name.
 * \param p_instance the instance
 * \param psz_name the name of the node
 */
VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_descriptor_new_as_node(
                                   libvlc_instance_t *p_instance,
                                   const char * psz_name,
                                   libvlc_exception_t *p_e );

165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
/**
 * Add an option to the media descriptor,
 * This option will be used to determine how the media_instance will
 * read the media_descriptor. This allow to use VLC advanced
 * reading/streaming options in a per-media basis.
 *
 * The options are detailled in vlc --long-help, for instance "--sout-all"
 * \param p_instance the instance
 * \param psz_mrl the mrl to read
 */
VLC_PUBLIC_API void libvlc_media_descriptor_add_option(
                                   libvlc_media_descriptor_t * p_md,
                                   const char * ppsz_options,
                                   libvlc_exception_t * p_e );

180 181 182 183
VLC_PUBLIC_API void libvlc_media_descriptor_retain(
                                   libvlc_media_descriptor_t *p_meta_desc );

VLC_PUBLIC_API void libvlc_media_descriptor_release(
184 185
                                   libvlc_media_descriptor_t *p_meta_desc );

186 187 188
VLC_PUBLIC_API char * libvlc_media_descriptor_get_mrl( libvlc_media_descriptor_t * p_md,
                                                       libvlc_exception_t * p_e );

189 190
VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_descriptor_duplicate( libvlc_media_descriptor_t * );

191 192 193 194 195 196 197 198 199 200
/**
 * Read the meta of the media descriptor.
 * \param p_meta_desc the media descriptor to read
 * \param p_meta_desc the meta to read
 */
VLC_PUBLIC_API char * libvlc_media_descriptor_get_meta(
                                   libvlc_media_descriptor_t *p_meta_desc,
                                   libvlc_meta_t e_meta,
                                   libvlc_exception_t *p_e );

201 202 203 204
VLC_PUBLIC_API libvlc_state_t libvlc_media_descriptor_get_state(
                                   libvlc_media_descriptor_t *p_meta_desc,
                                   libvlc_exception_t *p_e );

205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
/* Tags */
VLC_PUBLIC_API void libvlc_media_descriptor_add_tag( libvlc_media_descriptor_t *p_md,
                                                     const char * key,
                                                     const libvlc_tag_t tag,
                                                     libvlc_exception_t *p_e );

VLC_PUBLIC_API void libvlc_media_descriptor_remove_tag( libvlc_media_descriptor_t *p_md,
                                                         const char * key,
                                                         const libvlc_tag_t tag,
                                                         libvlc_exception_t *p_e );

VLC_PUBLIC_API int
    libvlc_media_descriptor_tags_count_for_key( libvlc_media_descriptor_t *p_md,
                                                const char * key,
                                                libvlc_exception_t *p_e );

VLC_PUBLIC_API libvlc_tag_t
    libvlc_media_descriptor_tag_at_index_for_key( libvlc_media_descriptor_t *p_md,
                                                  int i,
                                                  const char * key,
                                                  libvlc_exception_t *p_e );

227 228 229 230
VLC_PUBLIC_API libvlc_media_list_t *
    libvlc_media_descriptor_subitems( libvlc_media_descriptor_t *p_md,
                                      libvlc_exception_t *p_e );

Pierre d'Herbemont's avatar
Pierre d'Herbemont committed
231
VLC_PUBLIC_API libvlc_event_manager_t *
232
    libvlc_media_descriptor_event_manager( libvlc_media_descriptor_t * p_md,
Pierre d'Herbemont's avatar
Pierre d'Herbemont committed
233
                                           libvlc_exception_t * p_e );
234

235
VLC_PUBLIC_API libvlc_time_t
236 237
   libvlc_media_descriptor_get_duration( libvlc_media_descriptor_t * p_md,
                                         libvlc_exception_t * p_e );
238

239 240 241 242
VLC_PUBLIC_API vlc_bool_t
   libvlc_media_descriptor_is_preparsed( libvlc_media_descriptor_t * p_md,
                                         libvlc_exception_t * p_e );

243
VLC_PUBLIC_API void
244 245 246 247 248 249 250
    libvlc_media_descriptor_set_user_data( libvlc_media_descriptor_t * p_md,
                                           void * p_new_user_data,
                                           libvlc_exception_t * p_e);
VLC_PUBLIC_API void *
    libvlc_media_descriptor_get_user_data( libvlc_media_descriptor_t * p_md,
                                           libvlc_exception_t * p_e);

251 252
/** @}*/

zorglub's avatar
zorglub committed
253 254 255 256 257 258 259 260
/*****************************************************************************
 * Playlist
 *****************************************************************************/
/** defgroup libvlc_playlist Playlist
 * \ingroup libvlc
 * LibVLC Playlist handling
 * @{
 */
261

262 263 264
/**
 * Set loop variable
 */
265 266
VLC_PUBLIC_API void libvlc_playlist_loop( libvlc_instance_t* , vlc_bool_t,
                                          libvlc_exception_t * );
267

zorglub's avatar
zorglub committed
268 269 270 271
/**
 * Start playing. You can give some additionnal playlist item options
 * that will be added to the item before playing it.
 * \param p_instance the instance
zorglub's avatar
zorglub committed
272 273
 * \param i_id the item to play. If this is a negative number, the next
 * item will be selected. Else, the item with the given ID will be played
zorglub's avatar
zorglub committed
274 275 276 277
 * \param i_options the number of options to add to the item
 * \param ppsz_options the options to add to the item
 * \param p_exception an initialized exception
 */
278 279
VLC_PUBLIC_API void libvlc_playlist_play( libvlc_instance_t*, int, int, char **,
                                          libvlc_exception_t * );
zorglub's avatar
zorglub committed
280

zorglub's avatar
zorglub committed
281 282 283 284 285
/**
 * Pause a running playlist, resume if it was stopped
 * \param p_instance the instance to pause
 * \param p_exception an initialized exception
 */
286
VLC_PUBLIC_API void libvlc_playlist_pause( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
287 288 289 290 291 292 293

/**
 * Checks if the playlist is running
 * \param p_instance the instance
 * \param p_exception an initialized exception
 * \return 0 if the playlist is stopped or paused, 1 if it is running
 */
294
VLC_PUBLIC_API int libvlc_playlist_isplaying( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
295 296 297 298 299 300 301

/**
 * Get the number of items in the playlist
 * \param p_instance the instance
 * \param p_exception an initialized exception
 * \return the number of items
 */
302
VLC_PUBLIC_API int libvlc_playlist_items_count( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
303

304 305 306 307 308 309 310 311 312 313 314 315
/**
 * Lock the playlist instance
 * \param p_instance the instance
 */
VLC_PUBLIC_API void libvlc_playlist_lock( libvlc_instance_t * );

/**
 * Unlock the playlist instance
 * \param p_instance the instance
 */
VLC_PUBLIC_API void libvlc_playlist_unlock( libvlc_instance_t * );

zorglub's avatar
zorglub committed
316 317 318 319 320
/**
 * Stop playing
 * \param p_instance the instance to stop
 * \param p_exception an initialized exception
 */
321
VLC_PUBLIC_API void libvlc_playlist_stop( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
322 323

/**
zorglub's avatar
zorglub committed
324 325 326 327
 * Go to next playlist item (starts playback if it was stopped)
 * \param p_instance the instance to use
 * \param p_exception an initialized exception
 */
328
VLC_PUBLIC_API void libvlc_playlist_next( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
329 330 331 332 333 334

/**
 * Go to previous playlist item (starts playback if it was stopped)
 * \param p_instance the instance to use
 * \param p_exception an initialized exception
 */
335
VLC_PUBLIC_API void libvlc_playlist_prev( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
336 337 338

/**
 * Remove all playlist items
zorglub's avatar
zorglub committed
339 340 341
 * \param p_instance the instance
 * \param p_exception an initialized exception
 */
342
VLC_PUBLIC_API void libvlc_playlist_clear( libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
343

zorglub's avatar
zorglub committed
344 345 346 347 348 349 350 351
/**
 * Add an item at the end of the playlist
 * If you need more advanced options, \see libvlc_playlist_add_extended
 * \param p_instance the instance
 * \param psz_uri the URI to open, using VLC format
 * \param psz_name a name that you might want to give or NULL
 * \return the identifier of the new item
 */
352 353
VLC_PUBLIC_API int libvlc_playlist_add( libvlc_instance_t *, const char *, const char *,
                                        libvlc_exception_t * );
zorglub's avatar
zorglub committed
354 355 356 357 358 359 360 361

/**
 * Add an item at the end of the playlist, with additional input options
 * \param p_instance the instance
 * \param psz_uri the URI to open, using VLC format
 * \param psz_name a name that you might want to give or NULL
 * \param i_options the number of options to add
 * \param ppsz_options strings representing the options to add
362
 * \param p_exception an initialized exception
zorglub's avatar
zorglub committed
363 364
 * \return the identifier of the new item
 */
365 366 367
VLC_PUBLIC_API int libvlc_playlist_add_extended( libvlc_instance_t *, const char *,
                                                 const char *, int, const char **,
                                                 libvlc_exception_t * );
zorglub's avatar
zorglub committed
368

369
/**
370 371 372 373 374 375
 * Delete the playlist item with the given ID.
 * \param p_instance the instance
 * \param i_id the id to remove
 * \param p_exception an initialized exception
 * \return
 */
376 377
VLC_PUBLIC_API int libvlc_playlist_delete_item( libvlc_instance_t *, int,
                                                libvlc_exception_t * );
378

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
379
/** Get the input that is currently being played by the playlist
zorglub's avatar
zorglub committed
380 381 382 383
 * \param p_instance the instance to use
 * \param p_exception an initialized excecption
 * \return an input object
 */
384 385
VLC_PUBLIC_API libvlc_media_instance_t * libvlc_playlist_get_media_instance(
                                libvlc_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
386

387 388 389 390
VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_is_seekable(
                                 libvlc_media_instance_t *p_mi,
                                 libvlc_exception_t *p_e );

391 392 393 394
VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_can_pause(
                                 libvlc_media_instance_t *p_mi,
                                 libvlc_exception_t *p_e );

zorglub's avatar
zorglub committed
395 396 397
/** @}*/

/*****************************************************************************
398
 * Media Instance
zorglub's avatar
zorglub committed
399
 *****************************************************************************/
400
/** defgroup libvlc_media_instance Media Instance
zorglub's avatar
zorglub committed
401
 * \ingroup libvlc
402
 * LibVLC Media Instance
zorglub's avatar
zorglub committed
403 404 405
 * @{
 */

406 407 408 409 410 411
/** Create an empty Media Instance object
 * \param p_libvlc_instance the libvlc instance in which the Media Instance
 * should be (not used for now).
 */
VLC_PUBLIC_API libvlc_media_instance_t * libvlc_media_instance_new( libvlc_instance_t *, libvlc_exception_t * );

412
/** Create a Media Instance object from a Media Descriptor
413 414
 * \param p_md the media descriptor. Afterwards the p_md can safely be
 * destroyed.
415
 */
416
VLC_PUBLIC_API libvlc_media_instance_t * libvlc_media_instance_new_from_media_descriptor( libvlc_media_descriptor_t *, libvlc_exception_t * );
417

418 419 420
/** Release a media_instance after use
 * \param p_mi the Media Instance to free
 */
421
VLC_PUBLIC_API void libvlc_media_instance_release( libvlc_media_instance_t * );
422
VLC_PUBLIC_API void libvlc_media_instance_retain( libvlc_media_instance_t * );
423

424 425
/** Set the media descriptor that will be used by the media_instance. If any,
 * previous md will be released.
426
 * \param p_mi the Media Instance
427 428 429 430 431 432 433
 * \param p_md the Media Descriptor. Afterwards the p_md can safely be
 * destroyed.
 */
VLC_PUBLIC_API void libvlc_media_instance_set_media_descriptor( libvlc_media_instance_t *, libvlc_media_descriptor_t *, libvlc_exception_t * );

/** Get the media descriptor used by the media_instance (if any). A copy of
 * the md is returned. NULL is returned if no media instance is associated.
434
 * \param p_mi the Media Instance
435 436 437
 */
VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_instance_get_media_descriptor( libvlc_media_instance_t *, libvlc_exception_t * );

438
/** Get the Event Manager from which the media instance send event.
439
 * \param p_mi the Media Instance
440 441
 */
VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_instance_event_manager ( libvlc_media_instance_t *, libvlc_exception_t * );
442

443 444
VLC_PUBLIC_API void libvlc_media_instance_play ( libvlc_media_instance_t *, libvlc_exception_t * );
VLC_PUBLIC_API void libvlc_media_instance_pause ( libvlc_media_instance_t *, libvlc_exception_t * );
445
VLC_PUBLIC_API void libvlc_media_instance_stop ( libvlc_media_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
446

447
VLC_PUBLIC_API void libvlc_media_instance_set_drawable ( libvlc_media_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
448 449
VLC_PUBLIC_API libvlc_drawable_t
                    libvlc_media_instance_get_drawable ( libvlc_media_instance_t *, libvlc_exception_t * );
450

451
/** \bug This might go away ... to be replaced by a broader system */
452 453 454 455 456 457 458 459 460 461 462
VLC_PUBLIC_API libvlc_time_t libvlc_media_instance_get_length     ( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API libvlc_time_t libvlc_media_instance_get_time       ( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API void          libvlc_media_instance_set_time       ( libvlc_media_instance_t *, libvlc_time_t, libvlc_exception_t *);
VLC_PUBLIC_API float         libvlc_media_instance_get_position   ( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API void          libvlc_media_instance_set_position   ( libvlc_media_instance_t *, float, libvlc_exception_t *);
VLC_PUBLIC_API void          libvlc_media_instance_set_chapter    ( libvlc_media_instance_t *, int, libvlc_exception_t *);
VLC_PUBLIC_API int           libvlc_media_instance_get_chapter    (libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API int           libvlc_media_instance_get_chapter_count( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API vlc_bool_t    libvlc_media_instance_will_play      ( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API float         libvlc_media_instance_get_rate       ( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API void          libvlc_media_instance_set_rate       ( libvlc_media_instance_t *, float, libvlc_exception_t *);
463
VLC_PUBLIC_API libvlc_state_t libvlc_media_instance_get_state   ( libvlc_media_instance_t *, libvlc_exception_t *);
464 465 466 467 468 469 470 471 472

/**
 * Does this input have a video output ?
 * \param p_input the input
 * \param p_exception an initialized exception
 */
VLC_PUBLIC_API vlc_bool_t  libvlc_media_instance_has_vout( libvlc_media_instance_t *, libvlc_exception_t *);
VLC_PUBLIC_API float       libvlc_media_instance_get_fps( libvlc_media_instance_t *, libvlc_exception_t *);

473

474 475 476 477 478 479 480 481 482 483
/** @} */

/*****************************************************************************
 * Tag Query
 *****************************************************************************/
/** defgroup libvlc_tag_query Tag Query
 * \ingroup libvlc
 * LibVLC Tag query
 * @{
 */
484
VLC_PUBLIC_API libvlc_tag_query_t *
485 486
    libvlc_tag_query_new( libvlc_instance_t *, libvlc_exception_t * );

487
VLC_PUBLIC_API void
488 489
    libvlc_tag_query_release( libvlc_tag_query_t * );

490
VLC_PUBLIC_API void
491 492
    libvlc_tag_query_retain( libvlc_tag_query_t * );

493 494 495 496 497 498
VLC_PUBLIC_API void
    libvlc_tag_query_set_match_tag_and_key( libvlc_tag_query_t * p_q,
                                            libvlc_tag_t tag,
                                            char * psz_tag_key,
                                            libvlc_exception_t * );

499
VLC_PUBLIC_API vlc_bool_t
500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
    libvlc_tag_query_match( libvlc_tag_query_t *, libvlc_media_descriptor_t *,
                            libvlc_exception_t * );

/** @} */

/*****************************************************************************
 * Media List
 *****************************************************************************/
/** defgroup libvlc_media_list MediaList
 * \ingroup libvlc
 * LibVLC Media List
 * @{
 */
VLC_PUBLIC_API libvlc_media_list_t *
    libvlc_media_list_new( libvlc_instance_t *, libvlc_exception_t * );

VLC_PUBLIC_API void
    libvlc_media_list_release( libvlc_media_list_t * );

VLC_PUBLIC_API void
    libvlc_media_list_retain( libvlc_media_list_t * );

522 523 524 525 526 527
VLC_PUBLIC_API void
    libvlc_media_list_add_file_content( libvlc_media_list_t * p_mlist,
                                        const char * psz_uri,
                                        libvlc_exception_t * p_e );

VLC_PUBLIC_API void
528 529 530
    libvlc_media_list_set_media_descriptor( libvlc_media_list_t *,
                                            libvlc_media_descriptor_t *,
                                            libvlc_exception_t *);
531

532 533 534
VLC_PUBLIC_API libvlc_media_descriptor_t *
    libvlc_media_list_media_descriptor( libvlc_media_list_t *,
                                        libvlc_exception_t *);
535

536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560
VLC_PUBLIC_API void
    libvlc_media_list_add_media_descriptor( libvlc_media_list_t *,
                                            libvlc_media_descriptor_t *,
                                            libvlc_exception_t * );
VLC_PUBLIC_API void
    libvlc_media_list_insert_media_descriptor( libvlc_media_list_t *,
                                               libvlc_media_descriptor_t *,
                                               int,
                                               libvlc_exception_t * );
VLC_PUBLIC_API void
    libvlc_media_list_remove_index( libvlc_media_list_t *, int,
                                    libvlc_exception_t * );

VLC_PUBLIC_API int
    libvlc_media_list_count( libvlc_media_list_t * p_mlist,
                             libvlc_exception_t * p_e );

VLC_PUBLIC_API libvlc_media_descriptor_t *
    libvlc_media_list_item_at_index( libvlc_media_list_t *, int,
                                     libvlc_exception_t * );
VLC_PUBLIC_API int
    libvlc_media_list_index_of_item( libvlc_media_list_t *,
                                     libvlc_media_descriptor_t *,
                                     libvlc_exception_t * );

561 562 563 564
/* This indicates if this media list is read-only from a user point of view */
VLC_PUBLIC_API vlc_bool_t
    libvlc_media_list_is_readonly( libvlc_media_list_t * p_mlist );

565 566 567 568 569
VLC_PUBLIC_API void
    libvlc_media_list_lock( libvlc_media_list_t * );
VLC_PUBLIC_API void
    libvlc_media_list_unlock( libvlc_media_list_t * );

570 571 572
VLC_PUBLIC_API libvlc_media_list_view_t *
    libvlc_media_list_flat_view( libvlc_media_list_t *,
                                 libvlc_exception_t * );
573

574 575 576 577
VLC_PUBLIC_API libvlc_media_list_view_t *
    libvlc_media_list_hierarchical_view( libvlc_media_list_t *,
                                         libvlc_exception_t * );

578 579 580 581
VLC_PUBLIC_API libvlc_media_list_view_t *
    libvlc_media_list_hierarchical_node_view( libvlc_media_list_t *,
                                              libvlc_exception_t * );

582 583
VLC_PUBLIC_API libvlc_event_manager_t *
    libvlc_media_list_event_manager( libvlc_media_list_t *,
584
                                     libvlc_exception_t * );
585
/** @} */
586

587 588 589 590 591 592 593 594 595

/*****************************************************************************
 * Media List View
 *****************************************************************************/
/** defgroup libvlc_media_list_view MediaListView
 * \ingroup libvlc
 * LibVLC Media List View
 * @{ */

596 597 598
VLC_PUBLIC_API void
    libvlc_media_list_view_retain( libvlc_media_list_view_t * p_mlv );

599 600 601
VLC_PUBLIC_API void
    libvlc_media_list_view_release( libvlc_media_list_view_t * p_mlv );

602 603 604
VLC_PUBLIC_API libvlc_event_manager_t *
    libvlc_media_list_view_event_manager(  libvlc_media_list_view_t * p_mlv );

605 606 607 608 609 610 611 612 613
VLC_PUBLIC_API int
    libvlc_media_list_view_count(  libvlc_media_list_view_t * p_mlv,
                                   libvlc_exception_t * p_e );

VLC_PUBLIC_API libvlc_media_descriptor_t *
    libvlc_media_list_view_item_at_index(  libvlc_media_list_view_t * p_mlv,
                                           int index,
                                           libvlc_exception_t * p_e );

614 615 616 617 618
VLC_PUBLIC_API libvlc_media_list_view_t *
    libvlc_media_list_view_children_at_index(  libvlc_media_list_view_t * p_mlv,
                                           int index,
                                           libvlc_exception_t * p_e );

619 620 621 622 623
VLC_PUBLIC_API libvlc_media_list_view_t *
    libvlc_media_list_view_children_for_item(  libvlc_media_list_view_t * p_mlv,
                                           libvlc_media_descriptor_t * p_md,
                                           libvlc_exception_t * p_e );

624

625 626 627 628 629 630 631 632 633 634 635
VLC_PUBLIC_API int
    libvlc_media_list_view_index_of_item(  libvlc_media_list_view_t * p_mlv,
                                           libvlc_media_descriptor_t * p_md,
                                           libvlc_exception_t * p_e );

VLC_PUBLIC_API void
    libvlc_media_list_view_insert_at_index(  libvlc_media_list_view_t * p_mlv,
                                             libvlc_media_descriptor_t * p_md,
                                             int index,
                                             libvlc_exception_t * p_e );

636 637 638 639 640
VLC_PUBLIC_API void
    libvlc_media_list_view_remove_at_index(  libvlc_media_list_view_t * p_mlv,
                                             int index,
                                             libvlc_exception_t * p_e );

641 642 643 644 645
VLC_PUBLIC_API void
    libvlc_media_list_view_add_item(  libvlc_media_list_view_t * p_mlv,
                                      libvlc_media_descriptor_t * p_md,
                                      libvlc_exception_t * p_e );

646 647 648 649
VLC_PUBLIC_API libvlc_media_list_t *
    libvlc_media_list_view_parent_media_list(  libvlc_media_list_view_t * p_mlv,
                                               libvlc_exception_t * p_e );

650 651
/** @} */

652
/*****************************************************************************
653
 * Dynamic Media List (Deprecated)
654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673
 *****************************************************************************/
/** defgroup libvlc_media_list MediaList
 * \ingroup libvlc
 * LibVLC Media List
 * @{ */

VLC_PUBLIC_API libvlc_dynamic_media_list_t *
    libvlc_dynamic_media_list_new(  libvlc_media_list_t * p_mlist,
                                    libvlc_tag_query_t * p_query,
                                    libvlc_tag_t tag,
                                    libvlc_exception_t * p_e );
VLC_PUBLIC_API void
    libvlc_dynamic_media_list_release( libvlc_dynamic_media_list_t * p_dmlist );

VLC_PUBLIC_API void
    libvlc_dynamic_media_list_retain( libvlc_dynamic_media_list_t * p_dmlist );

libvlc_media_list_t *
    libvlc_dynamic_media_list_media_list( libvlc_dynamic_media_list_t * p_dmlist,
                                          libvlc_exception_t * p_e );
674 675 676

/** @} */

677
/*****************************************************************************
678
 * Media Library
679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708
 *****************************************************************************/
/** defgroup libvlc_media_library Media Library
 * \ingroup libvlc
 * LibVLC Media Library
 * @{
 */
VLC_PUBLIC_API libvlc_media_library_t *
    libvlc_media_library_new( libvlc_instance_t * p_inst,
                              libvlc_exception_t * p_e );
VLC_PUBLIC_API void
    libvlc_media_library_release( libvlc_media_library_t * p_mlib );
VLC_PUBLIC_API void
    libvlc_media_library_retain( libvlc_media_library_t * p_mlib );


VLC_PUBLIC_API void
    libvlc_media_library_load( libvlc_media_library_t * p_mlib,
                               libvlc_exception_t * p_e );

VLC_PUBLIC_API void
    libvlc_media_library_save( libvlc_media_library_t * p_mlib,
                               libvlc_exception_t * p_e );

VLC_PUBLIC_API libvlc_media_list_t *
    libvlc_media_library_media_list( libvlc_media_library_t * p_mlib,
                                     libvlc_exception_t * p_e );


/** @} */

709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737
/*****************************************************************************
 * Media List Player
 *****************************************************************************/
/** defgroup libvlc_media_list_player MediaListPlayer
 * \ingroup libvlc
 * LibVLC Media List Player
 * @{
 */
VLC_PUBLIC_API libvlc_media_list_player_t *
    libvlc_media_list_player_new( libvlc_instance_t * p_instance,
                                  libvlc_exception_t * p_e );
VLC_PUBLIC_API void
    libvlc_media_list_player_release( libvlc_media_list_player_t * p_mlp );

VLC_PUBLIC_API void
    libvlc_media_list_player_set_media_instance(
                                     libvlc_media_list_player_t * p_mlp,
                                     libvlc_media_instance_t * p_mi,
                                     libvlc_exception_t * p_e );

VLC_PUBLIC_API void
    libvlc_media_list_player_set_media_list(
                                     libvlc_media_list_player_t * p_mlp,
                                     libvlc_media_list_t * p_mlist,
                                     libvlc_exception_t * p_e );

VLC_PUBLIC_API void
    libvlc_media_list_player_play( libvlc_media_list_player_t * p_mlp,
                                   libvlc_exception_t * p_e );
738

739 740 741 742
VLC_PUBLIC_API void
    libvlc_media_list_player_pause( libvlc_media_list_player_t * p_mlp,
                                   libvlc_exception_t * p_e );

743
VLC_PUBLIC_API vlc_bool_t
744 745 746 747 748 749 750
    libvlc_media_list_player_is_playing( libvlc_media_list_player_t * p_mlp,
                                         libvlc_exception_t * p_e );

VLC_PUBLIC_API libvlc_state_t
    libvlc_media_list_player_get_state( libvlc_media_list_player_t * p_mlp,
                                        libvlc_exception_t * p_e );

751 752 753 754 755
VLC_PUBLIC_API void
    libvlc_media_list_player_play_item_at_index(
                                   libvlc_media_list_player_t * p_mlp,
                                   int i_index,
                                   libvlc_exception_t * p_e );
756

757 758 759 760 761 762
VLC_PUBLIC_API void
    libvlc_media_list_player_play_item(
                                   libvlc_media_list_player_t * p_mlp,
                                   libvlc_media_descriptor_t * p_md,
                                   libvlc_exception_t * p_e );

763 764 765 766 767 768 769
VLC_PUBLIC_API void
    libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp,
                                   libvlc_exception_t * p_e );
VLC_PUBLIC_API void
    libvlc_media_list_player_next( libvlc_media_list_player_t * p_mlp,
                                   libvlc_exception_t * p_e );

zorglub's avatar
zorglub committed
770 771 772 773 774 775 776 777 778 779 780 781 782
/** @} */

/** defgroup libvlc_video Video
 * \ingroup libvlc
 * LibVLC Video handling
 * @{
 */

/**
 * Toggle fullscreen status on video output
 * \param p_input the input
 * \param p_exception an initialized exception
 */
783
VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_media_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
784

zorglub's avatar
zorglub committed
785 786 787 788 789 790
/**
 * Enable or disable fullscreen on a video output
 * \param p_input the input
 * \param b_fullscreen boolean for fullscreen status
 * \param p_exception an initialized exception
 */
791
VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_media_instance_t *, int, libvlc_exception_t * );
zorglub's avatar
zorglub committed
792

zorglub's avatar
zorglub committed
793 794 795 796 797 798
/**
 * Get current fullscreen status
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the fullscreen status (boolean)
 */
799
VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_media_instance_t *, libvlc_exception_t * );
800

801 802 803 804 805 806
/**
 * Get current video height
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the video height
 */
807
VLC_PUBLIC_API int libvlc_video_get_height( libvlc_media_instance_t *, libvlc_exception_t * );
zorglub's avatar
zorglub committed
808

809 810 811 812 813 814
/**
 * Get current video width
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the video width
 */
815
VLC_PUBLIC_API int libvlc_video_get_width( libvlc_media_instance_t *, libvlc_exception_t * );
littlejohn's avatar
littlejohn committed
816

817 818 819 820 821 822
/**
 * Get current video aspect ratio
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the video aspect ratio
 */
823
VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_media_instance_t *, libvlc_exception_t * );
824 825 826 827 828 829 830

/**
 * Set new video aspect ratio
 * \param p_input the input
 * \param psz_aspect new video aspect-ratio
 * \param p_exception an initialized exception
 */
831
VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_media_instance_t *, char *, libvlc_exception_t * );
832

833 834 835 836 837 838
/**
 * Get current video subtitle
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the video subtitle selected
 */
839
VLC_PUBLIC_API int libvlc_video_get_spu( libvlc_media_instance_t *, libvlc_exception_t * );
840 841 842 843 844 845 846

/**
 * Set new video subtitle
 * \param p_input the input
 * \param i_spu new video subtitle to select
 * \param p_exception an initialized exception
 */
847
VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_media_instance_t *, int , libvlc_exception_t * );
848

849 850 851 852 853 854
/**
 * Get current crop filter geometry
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the crop filter geometry
 */
855
VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_media_instance_t *, libvlc_exception_t * );
856 857 858 859 860 861 862

/**
 * Set new crop filter geometry
 * \param p_input the input
 * \param psz_geometry new crop filter geometry
 * \param p_exception an initialized exception
 */
863
VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_media_instance_t *, char *, libvlc_exception_t * );
864

865 866 867 868 869 870 871
/**
 * Toggle teletext transparent status on video output
 * \param p_input the input
 * \param p_exception an initialized exception
 */
VLC_PUBLIC_API void libvlc_toggle_teletext( libvlc_media_instance_t *, libvlc_exception_t * );

872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887
/**
 * Get current teletext page requested.
 * \param p_input the input
 * \param p_exception an initialized exception
 * \return the current teletext page requested.
 */
VLC_PUBLIC_API int libvlc_video_get_teletext( libvlc_media_instance_t *, libvlc_exception_t * );

/**
 * Set new teletext page to retrieve
 * \param p_input the input
 * \param i_page teletex page number requested
 * \param p_exception an initialized exception
 */
VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_instance_t *, int, libvlc_exception_t * );

888 889
/**
 * Take a snapshot of the current video window
890 891
 * If i_width AND i_height is 0, original size is used
 * if i_width XOR i_height is 0, original aspect-ratio is preserved
892 893
 * \param p_input the input
 * \param psz_filepath the path where to save the screenshot to
894 895
 * \param i_width the snapshot's width
 * \param i_height the snapshot's height
896 897
 * \param p_exception an initialized exception
 */
898
VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_instance_t *, char *,unsigned int, unsigned int, libvlc_exception_t * );
899

900
VLC_PUBLIC_API int libvlc_video_destroy( libvlc_media_instance_t *, libvlc_exception_t *);
901

902
/**
903
 * Resize the current video output window
904 905 906 907
 * \param p_instance libvlc instance
 * \param width new width for video output window
 * \param height new height for video output window
 * \param p_exception an initialized exception
908
 * \return the success status (boolean)
909
 */
910
VLC_PUBLIC_API void libvlc_video_resize( libvlc_media_instance_t *, int, int, libvlc_exception_t *);
911

912
/**
913
 * change the parent for the current the video output
914 915 916
 * \param p_instance libvlc instance
 * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
 * \param p_exception an initialized exception
917
 * \return the success status (boolean)
918
 */
919
VLC_PUBLIC_API int libvlc_video_reparent( libvlc_media_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
littlejohn's avatar
littlejohn committed
920

921 922 923 924 925 926
/**
 * Tell windowless video output to redraw rectangular area (MacOS X only)
 * \param p_instance libvlc instance
 * \param area coordinates within video drawable
 * \param p_exception an initialized exception
 */
927
VLC_PUBLIC_API void libvlc_video_redraw_rectangle( libvlc_media_instance_t *, const libvlc_rectangle_t *, libvlc_exception_t * );
928

damienf's avatar
damienf committed
929
/**
930 931
 * Set the default video output parent
 *  this settings will be used as default for all video outputs
damienf's avatar
damienf committed
932 933 934 935
 * \param p_instance libvlc instance
 * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
 * \param p_exception an initialized exception
 */
936
VLC_PUBLIC_API void libvlc_video_set_parent( libvlc_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
damienf's avatar
damienf committed
937

938 939 940 941 942 943 944
/**
 * Set the default video output parent
 *  this settings will be used as default for all video outputs
 * \param p_instance libvlc instance
 * \param drawable the new parent window (Drawable on X11, CGrafPort on MacOSX, HWND on Win32)
 * \param p_exception an initialized exception
 */
945
VLC_PUBLIC_API libvlc_drawable_t libvlc_video_get_parent( libvlc_instance_t *, libvlc_exception_t * );
946

damienf's avatar
damienf committed
947
/**
948 949
 * Set the default video output size
 *  this settings will be used as default for all video outputs
damienf's avatar
damienf committed
950 951 952 953 954
 * \param p_instance libvlc instance
 * \param width new width for video drawable
 * \param height new height for video drawable
 * \param p_exception an initialized exception
 */
955
VLC_PUBLIC_API void libvlc_video_set_size( libvlc_instance_t *, int, int, libvlc_exception_t * );
damienf's avatar
damienf committed
956 957

/**
958 959
 * Set the default video output viewport for a windowless video output (MacOS X only)
 *  this settings will be used as default for all video outputs
damienf's avatar
damienf committed
960 961 962 963 964
 * \param p_instance libvlc instance
 * \param view coordinates within video drawable
 * \param clip coordinates within video drawable
 * \param p_exception an initialized exception
 */
965
VLC_PUBLIC_API void libvlc_video_set_viewport( libvlc_instance_t *, const libvlc_rectangle_t *, const libvlc_rectangle_t *, libvlc_exception_t * );
damienf's avatar
damienf committed
966

zorglub's avatar
zorglub committed
967 968
/** @} */

969 970 971 972 973 974
/** defgroup libvlc_audio Audio
 * \ingroup libvlc
 * LibVLC Audio handling
 * @{
 */

damienf's avatar
damienf committed
975 976 977 978 979 980
/**
 * Toggle mute status
 * \param p_instance libvlc instance
 * \param p_exception an initialized exception
 * \return void
 */
981
VLC_PUBLIC_API void libvlc_audio_toggle_mute( libvlc_instance_t *, libvlc_exception_t * );
damienf's avatar
damienf committed
982

983 984 985 986 987 988
/**
 * Get current mute status
 * \param p_instance libvlc instance
 * \param p_exception an initialized exception
 * \return the mute status (boolean)
 */
989
VLC_PUBLIC_API vlc_bool_t libvlc_audio_get_mute( libvlc_instance_t *, libvlc_exception_t * );
990 991 992 993 994 995 996 997

/**
 * Set mute status
 * \param p_instance libvlc instance
 * \param status If status is VLC_TRUE then mute, otherwise unmute
 * \param p_exception an initialized exception
 * \return void
 */
998
VLC_PUBLIC_API void libvlc_audio_set_mute( libvlc_instance_t *, vlc_bool_t , libvlc_exception_t * );
999 1000 1001 1002 1003 1004 1005

/**
 * Get current audio level
 * \param p_instance libvlc instance
 * \param p_exception an initialized exception
 * \return the audio level (int)
 */
1006
VLC_PUBLIC_API int libvlc_audio_get_volume( libvlc_instance_t *, libvlc_exception_t * );
1007 1008 1009 1010 1011 1012 1013

/**
 * Set current audio level
 * \param p_instance libvlc instance
 * \param i_volume the volume (int)
 * \param p_exception an initialized exception
 */
1014
VLC_PUBLIC_API void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
1015

1016 1017 1018 1019 1020 1021 1022 1023
/**
 * Get number of available audio tracks
 * \param p_mi media instance
 * \param p_e an initialized exception
 * \return the number of available audio tracks (int)
 */
VLC_PUBLIC_API int libvlc_audio_get_track_count( libvlc_media_instance_t *,  libvlc_exception_t * );

1024
/**
1025 1026 1027 1028 1029
+  * Get current audio track
+  * \param p_input input instance
+  * \param p_exception an initialized exception
+  * \return the audio track (int)
+  */
1030
VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_media_instance_t *, libvlc_exception_t * );
1031 1032 1033

/**
 * Set current audio track
1034
 * \param p_input input instance
1035 1036 1037
 * \param i_track the track (int)
 * \param p_exception an initialized exception
 */
1038
VLC_PUBLIC_API void libvlc_audio_set_track( libvlc_media_instance_t *, int, libvlc_exception_t * );
1039 1040 1041

/**
 * Get current audio channel
1042
 * \param p_instance input instance
1043
 * \param p_exception an initialized exception
1044
 * \return the audio channel (int)
1045
 */
1046
VLC_PUBLIC_API int libvlc_audio_get_channel( libvlc_instance_t *, libvlc_exception_t * );
1047 1048

/**
1049 1050
 * Set current audio channel
 * \param p_instance input instance
1051
 * \param i_channel the audio channel (int)
1052 1053
 * \param p_exception an initialized exception
 */
1054
VLC_PUBLIC_API void libvlc_audio_set_channel( libvlc_instance_t *, int, libvlc_exception_t * );
zorglub's avatar
zorglub committed
1055

1056 1057
/** @} */

1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073
/*****************************************************************************
 * Services/Media Discovery
 *****************************************************************************/
/** defgroup libvlc_media_discoverer Media Discoverer
 * \ingroup libvlc
 * LibVLC Media Discoverer
 * @{
 */

VLC_PUBLIC_API libvlc_media_discoverer_t *
libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst,
                                       const char * psz_name,
                                       libvlc_exception_t * p_e );
VLC_PUBLIC_API void   libvlc_media_discoverer_release( libvlc_media_discoverer_t * p_mdis );
VLC_PUBLIC_API char * libvlc_media_discoverer_localized_name( libvlc_media_discoverer_t * p_mdis );

1074
VLC_PUBLIC_API libvlc_media_list_t * libvlc_media_discoverer_media_list( libvlc_media_discoverer_t * p_mdis );
1075

1076 1077 1078
VLC_PUBLIC_API libvlc_event_manager_t *
        libvlc_media_discoverer_event_manager( libvlc_media_discoverer_t * p_mdis );

1079
VLC_PUBLIC_API vlc_bool_t
1080 1081
        libvlc_media_discoverer_is_running( libvlc_media_discoverer_t * p_mdis );

1082 1083 1084 1085 1086 1087 1088 1089 1090 1091
/**@} */

/*****************************************************************************
 * VLM
 *****************************************************************************/
/** defgroup libvlc_vlm VLM
 * \ingroup libvlc
 * LibVLC VLM
 * @{
 */
zorglub's avatar
zorglub committed
1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104

/**
 * Add a broadcast, with one input
 * \param p_instance the instance
 * \param psz_name the name of the new broadcast
 * \param psz_input the input MRL
 * \param psz_output the output MRL (the parameter to the "sout" variable)
 * \param i_options number of additional options
 * \param ppsz_options additional options
 * \param b_enabled boolean for enabling the new broadcast
 * \param b_loop Should this broadcast be played in loop ?
 * \param p_exception an initialized exception
 */
1105 1106
VLC_PUBLIC_API void libvlc_vlm_add_broadcast( libvlc_instance_t *, char *, char *, char* ,
                                              int, char **, int, int, libvlc_exception_t * );
zorglub's avatar
zorglub committed
1107 1108 1109 1110 1111 1112 1113

/**
 * Delete a media (vod or broadcast)
 * \param p_instance the instance
 * \param psz_name the media to delete
 * \param p_exception an initialized exception
 */
1114
VLC_PUBLIC_API void libvlc_vlm_del_media( libvlc_instance_t *, char *, libvlc_exception_t * );