X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc.h;h=72627c2314c81eda6029dbc69b4e9d23fbea4d95;hb=508d87e61db2f470c2b4129e40df8ebc6c8a9737;hp=b24098a410695f524aefb40379f9652afc96849c;hpb=66f38edb847aa8868a766475b3c1967356c09773;p=vlc diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h index b24098a410..72627c2314 100644 --- a/include/vlc/libvlc.h +++ b/include/vlc/libvlc.h @@ -61,14 +61,17 @@ VLC_PUBLIC_API void libvlc_exception_init( libvlc_exception_t *p_exception ); * \param p_exception the exception to query * \return 0 if no exception raised, 1 else */ -VLC_PUBLIC_API int libvlc_exception_raised( libvlc_exception_t *p_exception ); +VLC_PUBLIC_API int +libvlc_exception_raised( const libvlc_exception_t *p_exception ); /** * Raise an exception * \param p_exception the exception to raise * \param psz_message the exception message */ -VLC_PUBLIC_API void libvlc_exception_raise( libvlc_exception_t *p_exception, const char *psz_format, ... ); +VLC_PUBLIC_API void +libvlc_exception_raise( libvlc_exception_t *p_exception, + const char *psz_format, ... ); /** * Clear an exception object so it can be reused. @@ -83,7 +86,8 @@ VLC_PUBLIC_API void libvlc_exception_clear( libvlc_exception_t * ); * \return the exception message or NULL if not applicable (exception not raised * for example) */ -VLC_PUBLIC_API char* libvlc_exception_get_message( libvlc_exception_t *p_exception ); +VLC_PUBLIC_API const char * +libvlc_exception_get_message( const libvlc_exception_t *p_exception ); /**@} */ @@ -103,7 +107,8 @@ VLC_PUBLIC_API char* libvlc_exception_get_message( libvlc_exception_t *p_excepti * \param argv command-line-type arguments * \param exception an initialized exception pointer */ -VLC_PUBLIC_API libvlc_instance_t * libvlc_new( int , char **, libvlc_exception_t *); +VLC_PUBLIC_API libvlc_instance_t * +libvlc_new( int , const char *const *, libvlc_exception_t *); /** * Returns a libvlc instance identifier for legacy APIs. Use of this @@ -121,7 +126,6 @@ VLC_PUBLIC_API void libvlc_destroy( libvlc_instance_t *, libvlc_exception_t * ); /** @}*/ - /***************************************************************************** * Media descriptor *****************************************************************************/ @@ -160,6 +164,52 @@ VLC_PUBLIC_API char * libvlc_media_descriptor_get_meta( libvlc_meta_t e_meta, libvlc_exception_t *p_e ); +/* 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 ); + +VLC_PUBLIC_API libvlc_media_list_t * + libvlc_media_descriptor_subitems( libvlc_media_descriptor_t *p_md, + libvlc_exception_t *p_e ); + +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 + libvlc_media_descriptor_get_duration( libvlc_media_descriptor_t * p_md, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API vlc_bool_t + libvlc_media_descriptor_is_preparsed( libvlc_media_descriptor_t * p_md, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API void + 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); + /** @}*/ /***************************************************************************** @@ -327,7 +377,7 @@ VLC_PUBLIC_API void libvlc_media_instance_retain( libvlc_media_instance_t * ); /** Set the media descriptor that will be used by the media_instance. If any, * previous md will be released. - * \param p_mi the Media Instance + * \param p_mi the Media Instance * \param p_md the Media Descriptor. Afterwards the p_md can safely be * destroyed. */ @@ -335,12 +385,12 @@ VLC_PUBLIC_API void libvlc_media_instance_set_media_descriptor( libvlc_media_ins /** 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. - * \param p_mi the Media Instance + * \param p_mi the Media Instance */ VLC_PUBLIC_API libvlc_media_descriptor_t * libvlc_media_instance_get_media_descriptor( libvlc_media_instance_t *, libvlc_exception_t * ); /** Get the Event Manager from which the media instance send event. - * \param p_mi the Media Instance + * \param p_mi the Media Instance */ VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_instance_event_manager ( libvlc_media_instance_t *, libvlc_exception_t * ); @@ -359,7 +409,7 @@ VLC_PUBLIC_API void libvlc_media_instance_set_position ( libvlc_media_i 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 int libvlc_media_instance_get_state ( libvlc_media_instance_t *, 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 ? @@ -380,16 +430,22 @@ VLC_PUBLIC_API float libvlc_media_instance_get_fps( libvlc_media_instance_ * LibVLC Tag query * @{ */ -VLC_PUBLIC_API libvlc_tag_query_t * +VLC_PUBLIC_API libvlc_tag_query_t * libvlc_tag_query_new( libvlc_instance_t *, libvlc_exception_t * ); -VLC_PUBLIC_API void +VLC_PUBLIC_API void libvlc_tag_query_release( libvlc_tag_query_t * ); -VLC_PUBLIC_API void +VLC_PUBLIC_API void libvlc_tag_query_retain( libvlc_tag_query_t * ); -VLC_PUBLIC_API vlc_bool_t +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 * ); + +VLC_PUBLIC_API vlc_bool_t libvlc_tag_query_match( libvlc_tag_query_t *, libvlc_media_descriptor_t *, libvlc_exception_t * ); @@ -412,6 +468,20 @@ VLC_PUBLIC_API void VLC_PUBLIC_API void libvlc_media_list_retain( libvlc_media_list_t * ); +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 + libvlc_media_list_set_media_descriptor( libvlc_media_list_t *, + libvlc_media_descriptor_t *, + libvlc_exception_t *); + +VLC_PUBLIC_API libvlc_media_descriptor_t * + libvlc_media_list_media_descriptor( libvlc_media_list_t *, + libvlc_exception_t *); + VLC_PUBLIC_API void libvlc_media_list_add_media_descriptor( libvlc_media_list_t *, libvlc_media_descriptor_t *, @@ -442,14 +512,116 @@ VLC_PUBLIC_API void 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_event_manager_t * libvlc_media_list_event_manager( libvlc_media_list_t *, libvlc_exception_t * ); +/** @} */ + + +/***************************************************************************** + * Media List View + *****************************************************************************/ +/** defgroup libvlc_media_list_view MediaListView + * \ingroup libvlc + * LibVLC Media List View + * @{ */ + +VLC_PUBLIC_API void + libvlc_media_list_view_retain( libvlc_media_list_view_t * p_mlv ); + +VLC_PUBLIC_API void + libvlc_media_list_view_release( 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 ); + +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 ); + +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 ); + +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 ); + +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 ); + +/** @} */ + +/***************************************************************************** + * Dynamic Media List (Deprecated) + *****************************************************************************/ +/** 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 ); + +/** @} */ + +/***************************************************************************** + * Media Library + *****************************************************************************/ +/** 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_list_dynamic_sublist( libvlc_media_list_t *, - libvlc_tag_query_t *, - libvlc_exception_t * ); + libvlc_media_library_media_list( libvlc_media_library_t * p_mlib, + libvlc_exception_t * p_e ); + /** @} */ @@ -483,12 +655,30 @@ VLC_PUBLIC_API void libvlc_media_list_player_play( libvlc_media_list_player_t * p_mlp, libvlc_exception_t * p_e ); +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 + 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 ); + 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 ); +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 ); + VLC_PUBLIC_API void libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp, libvlc_exception_t * p_e ); @@ -504,14 +694,6 @@ VLC_PUBLIC_API void * @{ */ -/** - * 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_input_has_vout( libvlc_media_instance_t *, libvlc_exception_t *); -VLC_PUBLIC_API float libvlc_input_get_fps( libvlc_media_instance_t *, libvlc_exception_t *); - /** * Toggle fullscreen status on video output * \param p_input the input @@ -789,7 +971,7 @@ libvlc_media_discoverer_new_from_name( libvlc_instance_t * p_inst, 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 ); -VLC_PUBLIC_API libvlc_media_list_t * libvlc_media_discoverer_media_list( ); +VLC_PUBLIC_API libvlc_media_list_t * libvlc_media_discoverer_media_list( libvlc_media_discoverer_t * p_mdis ); /**@} */ @@ -904,7 +1086,7 @@ VLC_PUBLIC_API void libvlc_vlm_play_media ( libvlc_instance_t *, char *, libvlc_ * \param p_instance the instance * \param psz_name the name of the broadcast * \param p_exception an initialized exception - */ + */ VLC_PUBLIC_API void libvlc_vlm_stop_media ( libvlc_instance_t *, char *, libvlc_exception_t * ); /** @@ -912,25 +1094,25 @@ VLC_PUBLIC_API void libvlc_vlm_stop_media ( libvlc_instance_t *, char *, libvlc_ * \param p_instance the instance * \param psz_name the name of the broadcast * \param p_exception an initialized exception - */ + */ VLC_PUBLIC_API void libvlc_vlm_pause_media( libvlc_instance_t *, char *, libvlc_exception_t * ); - + /** * Seeks in the named broadcast. * \param p_instance the instance * \param psz_name the name of the broadcast * \param f_percentage the percentage to seek to * \param p_exception an initialized exception - */ + */ VLC_PUBLIC_API void libvlc_vlm_seek_media( libvlc_instance_t *, char *, float, libvlc_exception_t * ); - + /** * Return information of the named broadcast. * \param p_instance the instance * \param psz_name the name of the broadcast * \param p_exception an initialized exception - */ + */ VLC_PUBLIC_API char* libvlc_vlm_show_media( libvlc_instance_t *, char *, libvlc_exception_t * ); #define LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( attr, returnType, getType, default)\ @@ -976,14 +1158,14 @@ VLC_PUBLIC_API void libvlc_set_log_verbosity( libvlc_instance_t *p_instance, uns libvlc_exception_t *p_e ); /** - * Open an instance to VLC message log + * Open an instance to VLC message log * \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 *); /** - * Close an instance of VLC message log + * Close an instance of VLC message log * \param p_log libvlc log instance * \param exception an initialized exception pointer */ @@ -1013,13 +1195,13 @@ VLC_PUBLIC_API libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_ /** * Releases a previoulsy allocated iterator - * \param p_log libvlc log iterator + * \param p_log libvlc log iterator * \param exception an initialized exception pointer */ VLC_PUBLIC_API void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e ); /** - * Returns whether log iterator has more messages + * Returns whether log iterator has more messages * \param p_log libvlc log iterator * \param exception an initialized exception pointer */ @@ -1076,9 +1258,8 @@ VLC_PUBLIC_API void libvlc_event_detach( libvlc_event_manager_t *p_event_manager void *p_user_data, libvlc_exception_t *p_e ); - /** - * Get an event type name + * Get an event type name * \param i_event_type the desired event */ #define libvlc_event_type_name(a) #a