X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc.h;h=c34a37a94cae3871a3839dc9b620fc17d2b5e5c7;hb=c5f4e7f8fe242dad0ca58c3706b228c63a617da4;hp=86ae5600a582ced490e150bf366b7a1cdd8bd2b3;hpb=b999b9b155b84b4427a8aa673a70b924debf708b;p=vlc diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h index 86ae5600a5..c34a37a94c 100644 --- a/include/vlc/libvlc.h +++ b/include/vlc/libvlc.h @@ -104,7 +104,7 @@ libvlc_exception_get_message( const libvlc_exception_t *p_exception ); /** * 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 * @@ -123,7 +123,7 @@ VLC_PUBLIC_API int libvlc_get_vlc_id( libvlc_instance_t *p_instance ); * 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. @@ -152,6 +152,31 @@ VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_descriptor_new( 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 ); @@ -161,6 +186,8 @@ VLC_PUBLIC_API void libvlc_media_descriptor_release( 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 @@ -171,6 +198,10 @@ VLC_PUBLIC_API char * libvlc_media_descriptor_get_meta( 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, @@ -201,7 +232,7 @@ VLC_PUBLIC_API libvlc_event_manager_t * 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 ); @@ -353,6 +384,14 @@ VLC_PUBLIC_API int libvlc_playlist_delete_item( libvlc_instance_t *, int, 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 ); + /** @}*/ /***************************************************************************** @@ -406,19 +445,21 @@ VLC_PUBLIC_API void libvlc_media_instance_pause ( libvlc_media_instance_t *, lib 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 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_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 *); /** @@ -517,6 +558,10 @@ VLC_PUBLIC_API int 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 @@ -526,9 +571,17 @@ 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 * ); /** @} */ @@ -546,6 +599,9 @@ VLC_PUBLIC_API void 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 ); @@ -555,6 +611,17 @@ VLC_PUBLIC_API libvlc_media_descriptor_t * 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, @@ -576,6 +643,10 @@ VLC_PUBLIC_API void 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 ); + /** @} */ /***************************************************************************** @@ -669,7 +740,7 @@ VLC_PUBLIC_API void 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 ); @@ -791,6 +862,13 @@ VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_media_instance_t *, */ 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 @@ -809,11 +887,15 @@ VLC_PUBLIC_API void libvlc_video_set_teletext( libvlc_media_instance_t *, int, l /** * 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 *); @@ -991,6 +1073,12 @@ VLC_PUBLIC_API char * libvlc_media_discoverer_localized_name( libvlc_media_disco 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 ); + /**@} */ /***************************************************************************** @@ -1280,7 +1368,7 @@ VLC_PUBLIC_API void libvlc_event_detach( libvlc_event_manager_t *p_event_manager * 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 ); /** @} */