/**
* Create an initialized libvlc instance.
* \param argc the number of arguments
- * \param argv command-line-type arguments
+ * \param argv command-line-type arguments (argv[0] must be the path of calling program)
* \param exception an initialized exception pointer
*/
VLC_PUBLIC_API libvlc_instance_t *
* if it reaches zero.
* \param p_instance the instance to destroy
*/
-VLC_PUBLIC_API void libvlc_release( libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_release( libvlc_instance_t * );
/**
* Increments the reference count of a libvlc instance.
const char * psz_mrl,
libvlc_exception_t *p_e );
+/**
+ * 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 );
+
+/**
+ * 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 );
+
VLC_PUBLIC_API void libvlc_media_descriptor_retain(
libvlc_media_descriptor_t *p_meta_desc );
VLC_PUBLIC_API char * libvlc_media_descriptor_get_mrl( libvlc_media_descriptor_t * p_md,
libvlc_exception_t * p_e );
+VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_descriptor_duplicate( libvlc_media_descriptor_t * );
+
/**
* Read the meta of the media descriptor.
* \param p_meta_desc the media descriptor to read
libvlc_meta_t e_meta,
libvlc_exception_t *p_e );
+VLC_PUBLIC_API libvlc_state_t libvlc_media_descriptor_get_state(
+ libvlc_media_descriptor_t *p_meta_desc,
+ libvlc_exception_t *p_e );
+
/* Tags */
VLC_PUBLIC_API void libvlc_media_descriptor_add_tag( libvlc_media_descriptor_t *p_md,
const char * key,
libvlc_media_descriptor_event_manager( libvlc_media_descriptor_t * p_md,
libvlc_exception_t * p_e );
-VLC_PUBLIC_API vlc_int64_t
+VLC_PUBLIC_API libvlc_time_t
libvlc_media_descriptor_get_duration( libvlc_media_descriptor_t * p_md,
libvlc_exception_t * p_e );
VLC_PUBLIC_API libvlc_media_instance_t * libvlc_playlist_get_media_instance(
libvlc_instance_t *, libvlc_exception_t * );
+VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_is_seekable(
+ libvlc_media_instance_t *p_mi,
+ libvlc_exception_t *p_e );
+
+VLC_PUBLIC_API vlc_bool_t libvlc_media_instance_can_pause(
+ libvlc_media_instance_t *p_mi,
+ libvlc_exception_t *p_e );
+
/** @}*/
/*****************************************************************************
VLC_PUBLIC_API void libvlc_media_instance_stop ( libvlc_media_instance_t *, libvlc_exception_t * );
VLC_PUBLIC_API void libvlc_media_instance_set_drawable ( libvlc_media_instance_t *, libvlc_drawable_t, libvlc_exception_t * );
-
-/// \bug This might go away ... to be replaced by a broader system
-VLC_PUBLIC_API vlc_int64_t libvlc_media_instance_get_length ( libvlc_media_instance_t *, libvlc_exception_t *);
-VLC_PUBLIC_API vlc_int64_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 *, vlc_int64_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 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 *);
-VLC_PUBLIC_API libvlc_state_t libvlc_media_instance_get_state ( libvlc_media_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_drawable_t
+ libvlc_media_instance_get_drawable ( libvlc_media_instance_t *, libvlc_exception_t * );
+
+/** \bug This might go away ... to be replaced by a broader system */
+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 *);
+VLC_PUBLIC_API libvlc_state_t libvlc_media_instance_get_state ( libvlc_media_instance_t *, libvlc_exception_t *);
/**
* Does this input have a video output ?
libvlc_media_descriptor_t *,
libvlc_exception_t * );
+/* 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 );
+
VLC_PUBLIC_API void
libvlc_media_list_lock( libvlc_media_list_t * );
VLC_PUBLIC_API void
libvlc_media_list_unlock( libvlc_media_list_t * );
-VLC_PUBLIC_API libvlc_media_list_t *
- libvlc_media_list_flat_media_list( libvlc_media_list_t *,
- libvlc_exception_t * );
+VLC_PUBLIC_API libvlc_media_list_view_t *
+ libvlc_media_list_flat_view( libvlc_media_list_t *,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API libvlc_media_list_view_t *
+ libvlc_media_list_hierarchical_view( libvlc_media_list_t *,
+ libvlc_exception_t * );
+
+VLC_PUBLIC_API libvlc_media_list_view_t *
+ libvlc_media_list_hierarchical_node_view( libvlc_media_list_t *,
+ libvlc_exception_t * );
VLC_PUBLIC_API libvlc_event_manager_t *
libvlc_media_list_event_manager( libvlc_media_list_t *,
- libvlc_exception_t * );
+ libvlc_exception_t * );
/** @} */
VLC_PUBLIC_API void
libvlc_media_list_view_release( libvlc_media_list_view_t * p_mlv );
+VLC_PUBLIC_API libvlc_event_manager_t *
+ libvlc_media_list_view_event_manager( libvlc_media_list_view_t * p_mlv );
+
VLC_PUBLIC_API int
libvlc_media_list_view_count( libvlc_media_list_view_t * p_mlv,
libvlc_exception_t * p_e );
int index,
libvlc_exception_t * p_e );
+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 );
+
+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 );
+
+
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_media_descriptor_t * p_md,
libvlc_exception_t * p_e );
+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 );
+
/** @} */
/*****************************************************************************
libvlc_media_list_player_pause( libvlc_media_list_player_t * p_mlp,
libvlc_exception_t * p_e );
-VLC_PUBLIC_API int
+VLC_PUBLIC_API vlc_bool_t
libvlc_media_list_player_is_playing( libvlc_media_list_player_t * p_mlp,
libvlc_exception_t * p_e );
*/
VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_media_instance_t *, char *, libvlc_exception_t * );
+/**
+ * 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 * );
+
/**
* Get current teletext page requested.
* \param p_input the input
/**
* Take a snapshot of the current video window
+ * 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
* \param p_input the input
* \param psz_filepath the path where to save the screenshot to
+ * \param i_width the snapshot's width
+ * \param i_height the snapshot's height
* \param p_exception an initialized exception
*/
-VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_instance_t *, char *, libvlc_exception_t * );
+VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_instance_t *, char *,unsigned int, unsigned int, libvlc_exception_t * );
VLC_PUBLIC_API int libvlc_video_destroy( libvlc_media_instance_t *, libvlc_exception_t *);
*/
VLC_PUBLIC_API void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_exception_t *);
+/**
+ * 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 * );
+
/**
+ * Get current audio track
+ * \param p_input input instance
VLC_PUBLIC_API libvlc_media_list_t * libvlc_media_discoverer_media_list( libvlc_media_discoverer_t * p_mdis );
+VLC_PUBLIC_API libvlc_event_manager_t *
+ libvlc_media_discoverer_event_manager( libvlc_media_discoverer_t * p_mdis );
+
+VLC_PUBLIC_API vlc_bool_t
+ libvlc_media_discoverer_is_running( libvlc_media_discoverer_t * p_mdis );
+
/**@} */
/*****************************************************************************
* \param p_instance libvlc instance
* \param exception an initialized exception pointer
*/
-VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( const libvlc_instance_t *, libvlc_exception_t *);
+VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( libvlc_instance_t *, libvlc_exception_t *);
/**
* Close an instance of VLC message log
* Get an event type name
* \param i_event_type the desired event
*/
-#define libvlc_event_type_name(a) #a
+VLC_PUBLIC_API const char * libvlc_event_type_name( libvlc_event_type_t event_type );
/** @} */