X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc.h;h=5bc745313c0d9f99afe0d9fd6ed4d83b007b167b;hb=9274704b3a2acfe7256fa3c67a84ed5711647596;hp=8d1daa8081cd62af4b2c425888f1ff12a2f365cc;hpb=12c291f038deb29afafc050b67b81df6786fc2b9;p=vlc diff --git a/include/vlc/libvlc.h b/include/vlc/libvlc.h index 8d1daa8081..5bc745313c 100644 --- a/include/vlc/libvlc.h +++ b/include/vlc/libvlc.h @@ -121,6 +121,124 @@ VLC_PUBLIC_API void libvlc_destroy( libvlc_instance_t *, libvlc_exception_t * ); /** @}*/ +/***************************************************************************** + * Tree + *****************************************************************************/ +/** defgroup libvlc_tree Tree + * \ingroup libvlc + * LibVLC Tree. A tree holds an item plus several subtrees. + * @{ + */ +VLC_PUBLIC_API libvlc_tree_t * + libvlc_tree_new_with_media_list_as_item( libvlc_media_list_t * p_mlist, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API libvlc_tree_t * + libvlc_tree_new_with_string_as_item( const char * psz, + libvlc_exception_t * p_e ); +VLC_PUBLIC_API void + libvlc_tree_release( libvlc_tree_t * p_tree ); + +VLC_PUBLIC_API void + libvlc_tree_retain( libvlc_tree_t * p_tree ); + +VLC_PUBLIC_API char * + libvlc_tree_item_as_string( libvlc_tree_t * p_tree, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API libvlc_media_list_t * + libvlc_tree_item_as_media_list( libvlc_tree_t * p_tree, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API int + libvlc_tree_subtree_count( libvlc_tree_t * p_tree, libvlc_exception_t * p_e ); + +VLC_PUBLIC_API libvlc_tree_t * + libvlc_tree_subtree_at_index( libvlc_tree_t * p_tree, + int index, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API void + libvlc_tree_insert_subtree_at_index( libvlc_tree_t * p_tree, + libvlc_tree_t * p_subtree, + int index, + libvlc_exception_t * p_e ); + +VLC_PUBLIC_API void + libvlc_tree_remove_subtree_at_index( libvlc_tree_t * p_tree, + int index, + libvlc_exception_t * p_e ); + +/**@} */ + + + +/***************************************************************************** + * Media descriptor + *****************************************************************************/ +/** defgroup libvlc_media_descriptor Media Descriptor + * \ingroup libvlc + * LibVLC Media Descriptor + * @{ + */ + +/** + * 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 ); + +VLC_PUBLIC_API void libvlc_media_descriptor_retain( + libvlc_media_descriptor_t *p_meta_desc ); + +VLC_PUBLIC_API void libvlc_media_descriptor_release( + 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 ); + +/** + * 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 ); + +/* 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 ); + +/** @}*/ + /***************************************************************************** * Playlist *****************************************************************************/ @@ -247,42 +365,288 @@ VLC_PUBLIC_API int libvlc_playlist_add_extended( libvlc_instance_t *, const char VLC_PUBLIC_API int libvlc_playlist_delete_item( libvlc_instance_t *, int, libvlc_exception_t * ); -typedef struct libvlc_input_t libvlc_input_t; - /* Get the input that is currently being played by the playlist * \param p_instance the instance to use * \param p_exception an initialized excecption * \return an input object */ -VLC_PUBLIC_API libvlc_input_t *libvlc_playlist_get_input( libvlc_instance_t *, - libvlc_exception_t * ); +VLC_PUBLIC_API libvlc_media_instance_t * libvlc_playlist_get_media_instance( + libvlc_instance_t *, libvlc_exception_t * ); /** @}*/ /***************************************************************************** - * Input + * Media Instance *****************************************************************************/ -/** defgroup libvlc_input Input +/** defgroup libvlc_media_instance Media Instance * \ingroup libvlc - * LibVLC Input handling + * LibVLC Media Instance * @{ */ -/** Free an input object - * \param p_input the input to free +/** 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 * ); + +/** Create a Media Instance object from a Media Descriptor + * \param p_md the media descriptor. Afterwards the p_md can safely be + * destroyed. + */ +VLC_PUBLIC_API libvlc_media_instance_t * libvlc_media_instance_new_from_media_descriptor( libvlc_media_descriptor_t *, libvlc_exception_t * ); + +/** Release a media_instance after use + * \param p_mi the Media Instance to free */ -VLC_PUBLIC_API void libvlc_input_free( libvlc_input_t * ); +VLC_PUBLIC_API void libvlc_media_instance_release( libvlc_media_instance_t * ); +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_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. + * \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 + */ +VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_instance_event_manager ( libvlc_media_instance_t *, libvlc_exception_t * ); + +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 * ); +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_input_get_length ( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API vlc_int64_t libvlc_input_get_time ( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API void libvlc_input_set_time ( libvlc_input_t *, vlc_int64_t, libvlc_exception_t *); -VLC_PUBLIC_API float libvlc_input_get_position ( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API void libvlc_input_set_position ( libvlc_input_t *, float, libvlc_exception_t *); -VLC_PUBLIC_API vlc_bool_t libvlc_input_will_play ( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API float libvlc_input_get_rate ( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API void libvlc_input_set_rate ( libvlc_input_t *, float, libvlc_exception_t *); -VLC_PUBLIC_API int libvlc_input_get_state ( libvlc_input_t *, libvlc_exception_t *); +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 int libvlc_media_instance_get_state ( libvlc_media_instance_t *, libvlc_exception_t *); + +/** + * 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 *); + + +/** @} */ + +/***************************************************************************** + * Tag Query + *****************************************************************************/ +/** defgroup libvlc_tag_query Tag Query + * \ingroup libvlc + * LibVLC Tag query + * @{ + */ +VLC_PUBLIC_API libvlc_tag_query_t * + libvlc_tag_query_new( libvlc_instance_t *, libvlc_exception_t * ); + +VLC_PUBLIC_API void + libvlc_tag_query_release( libvlc_tag_query_t * ); + +VLC_PUBLIC_API void + libvlc_tag_query_retain( libvlc_tag_query_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 * ); + +/** @} */ + +/***************************************************************************** + * 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 * ); + +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_name( libvlc_media_list_t *, + const char * psz_name, + libvlc_exception_t *); + +VLC_PUBLIC_API char * + libvlc_media_list_name( 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 *, + 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 * ); + +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_event_manager_t * + libvlc_media_list_event_manager( libvlc_media_list_t *, + libvlc_exception_t * ); +/** @} */ + +/***************************************************************************** + * Dynamic Media List + *****************************************************************************/ +/** 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_library_media_list( libvlc_media_library_t * p_mlib, + libvlc_exception_t * p_e ); + + +/** @} */ + +/***************************************************************************** + * 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 ); + +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_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 ); /** @} */ @@ -297,15 +661,15 @@ VLC_PUBLIC_API int libvlc_input_get_state ( libvlc_input_t *, libvl * \param p_input the input * \param p_exception an initialized exception */ -VLC_PUBLIC_API vlc_bool_t libvlc_input_has_vout( libvlc_input_t *, libvlc_exception_t *); -VLC_PUBLIC_API float libvlc_input_get_fps( libvlc_input_t *, libvlc_exception_t *); +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 * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Enable or disable fullscreen on a video output @@ -313,7 +677,7 @@ VLC_PUBLIC_API void libvlc_toggle_fullscreen( libvlc_input_t *, libvlc_exception * \param b_fullscreen boolean for fullscreen status * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_input_t *, int, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_media_instance_t *, int, libvlc_exception_t * ); /** * Get current fullscreen status @@ -321,7 +685,7 @@ VLC_PUBLIC_API void libvlc_set_fullscreen( libvlc_input_t *, int, libvlc_excepti * \param p_exception an initialized exception * \return the fullscreen status (boolean) */ -VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Get current video height @@ -329,7 +693,7 @@ VLC_PUBLIC_API int libvlc_get_fullscreen( libvlc_input_t *, libvlc_exception_t * * \param p_exception an initialized exception * \return the video height */ -VLC_PUBLIC_API int libvlc_video_get_height( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_video_get_height( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Get current video width @@ -337,7 +701,7 @@ VLC_PUBLIC_API int libvlc_video_get_height( libvlc_input_t *, libvlc_exception_t * \param p_exception an initialized exception * \return the video width */ -VLC_PUBLIC_API int libvlc_video_get_width( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_video_get_width( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Get current video aspect ratio @@ -345,7 +709,7 @@ VLC_PUBLIC_API int libvlc_video_get_width( libvlc_input_t *, libvlc_exception_t * \param p_exception an initialized exception * \return the video aspect ratio */ -VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Set new video aspect ratio @@ -353,7 +717,7 @@ VLC_PUBLIC_API char *libvlc_video_get_aspect_ratio( libvlc_input_t *, libvlc_exc * \param psz_aspect new video aspect-ratio * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_input_t *, char *, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_media_instance_t *, char *, libvlc_exception_t * ); /** * Get current video subtitle @@ -361,7 +725,7 @@ VLC_PUBLIC_API void libvlc_video_set_aspect_ratio( libvlc_input_t *, char *, lib * \param p_exception an initialized exception * \return the video subtitle selected */ -VLC_PUBLIC_API int libvlc_video_get_spu( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_video_get_spu( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Set new video subtitle @@ -369,7 +733,7 @@ VLC_PUBLIC_API int libvlc_video_get_spu( libvlc_input_t *, libvlc_exception_t * * \param i_spu new video subtitle to select * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_input_t *, int , libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_media_instance_t *, int , libvlc_exception_t * ); /** * Get current crop filter geometry @@ -377,7 +741,7 @@ VLC_PUBLIC_API void libvlc_video_set_spu( libvlc_input_t *, int , libvlc_excepti * \param p_exception an initialized exception * \return the crop filter geometry */ -VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Set new crop filter geometry @@ -385,7 +749,23 @@ VLC_PUBLIC_API char *libvlc_video_get_crop_geometry( libvlc_input_t *, libvlc_ex * \param psz_geometry new crop filter geometry * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_input_t *, char *, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_media_instance_t *, char *, libvlc_exception_t * ); + +/** + * 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 * ); /** * Take a snapshot of the current video window @@ -393,9 +773,9 @@ VLC_PUBLIC_API void libvlc_video_set_crop_geometry( libvlc_input_t *, char *, li * \param psz_filepath the path where to save the screenshot to * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_input_t *, char *, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_video_take_snapshot( libvlc_media_instance_t *, char *, libvlc_exception_t * ); -VLC_PUBLIC_API int libvlc_video_destroy( libvlc_input_t *, libvlc_exception_t *); +VLC_PUBLIC_API int libvlc_video_destroy( libvlc_media_instance_t *, libvlc_exception_t *); /** * Resize the current video output window @@ -405,7 +785,7 @@ VLC_PUBLIC_API int libvlc_video_destroy( libvlc_input_t *, libvlc_exception_t *) * \param p_exception an initialized exception * \return the success status (boolean) */ -VLC_PUBLIC_API void libvlc_video_resize( libvlc_input_t *, int, int, libvlc_exception_t *); +VLC_PUBLIC_API void libvlc_video_resize( libvlc_media_instance_t *, int, int, libvlc_exception_t *); /** * change the parent for the current the video output @@ -414,7 +794,7 @@ VLC_PUBLIC_API void libvlc_video_resize( libvlc_input_t *, int, int, libvlc_exce * \param p_exception an initialized exception * \return the success status (boolean) */ -VLC_PUBLIC_API int libvlc_video_reparent( libvlc_input_t *, libvlc_drawable_t, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_video_reparent( libvlc_media_instance_t *, libvlc_drawable_t, libvlc_exception_t * ); /** * Tell windowless video output to redraw rectangular area (MacOS X only) @@ -422,7 +802,7 @@ VLC_PUBLIC_API int libvlc_video_reparent( libvlc_input_t *, libvlc_drawable_t, l * \param area coordinates within video drawable * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_video_redraw_rectangle( libvlc_input_t *, const libvlc_rectangle_t *, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_video_redraw_rectangle( libvlc_media_instance_t *, const libvlc_rectangle_t *, libvlc_exception_t * ); /** * Set the default video output parent @@ -464,13 +844,6 @@ VLC_PUBLIC_API void libvlc_video_set_viewport( libvlc_instance_t *, const libvlc /** @} */ -/** - * defgroup libvlc_vlm VLM - * \ingroup libvlc - * LibVLC VLM handling - * @{ - */ - /** defgroup libvlc_audio Audio * \ingroup libvlc * LibVLC Audio handling @@ -524,7 +897,7 @@ VLC_PUBLIC_API void libvlc_audio_set_volume( libvlc_instance_t *, int, libvlc_ex + * \param p_exception an initialized exception + * \return the audio track (int) + */ -VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_input_t *, libvlc_exception_t * ); +VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_media_instance_t *, libvlc_exception_t * ); /** * Set current audio track @@ -532,7 +905,7 @@ VLC_PUBLIC_API int libvlc_audio_get_track( libvlc_input_t *, libvlc_exception_t * \param i_track the track (int) * \param p_exception an initialized exception */ -VLC_PUBLIC_API void libvlc_audio_set_track( libvlc_input_t *, int, libvlc_exception_t * ); +VLC_PUBLIC_API void libvlc_audio_set_track( libvlc_media_instance_t *, int, libvlc_exception_t * ); /** * Get current audio channel @@ -552,6 +925,34 @@ VLC_PUBLIC_API void libvlc_audio_set_channel( libvlc_instance_t *, int, libvlc_e /** @} */ +/***************************************************************************** + * 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 ); + +VLC_PUBLIC_API libvlc_media_list_t * libvlc_media_discoverer_media_list( libvlc_media_discoverer_t * p_mdis ); + +/**@} */ + +/***************************************************************************** + * VLM + *****************************************************************************/ +/** defgroup libvlc_vlm VLM + * \ingroup libvlc + * LibVLC VLM + * @{ + */ /** * Add a broadcast, with one input @@ -698,7 +1099,6 @@ VLC_PUBLIC_API LIBVLC_VLM_GET_MEDIA_ATTRIBUTE( seekable, int, Bool, 0); #undef LIBVLC_VLM_GET_MEDIA_ATTRIBUTE -/** @} */ /** @} */ /***************************************************************************** @@ -790,40 +1190,50 @@ VLC_PUBLIC_API libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterat /** @} */ /***************************************************************************** - * Callbacks handling + * Event handling *****************************************************************************/ /** defgroup libvlc_callbacks Callbacks * \ingroup libvlc - * LibVLC Event Callbacks + * LibVLC Events * @{ */ /** - * Register for a callback notification - * \param p_instance the libvlc instance - * \param i_event_type the desired event mask to which we want to listen + * Register for an event notification + * \param p_event_manager the event manager to which you want to attach to + * Generally it is obtained by vlc_my_object_event_manager() where my_object + * Is the object you want to listen to. + * \param i_event_type the desired event to which we want to listen * \param f_callback the function to call when i_event_type occurs * \param user_data user provided data to carry with the event * \param p_e an initialized exception pointer */ -VLC_PUBLIC_API void libvlc_callback_register_for_event( libvlc_instance_t *p_instance, - libvlc_event_type_t i_event_type, - libvlc_callback_t f_callback, - void *user_data, - libvlc_exception_t *p_e ); +VLC_PUBLIC_API void libvlc_event_attach( libvlc_event_manager_t *p_event_manager, + libvlc_event_type_t i_event_type, + libvlc_callback_t f_callback, + void *user_data, + libvlc_exception_t *p_e ); /** - * Unregister a callback notification - * \param p_instance the libvlc instance - * \param i_event_type the desired event mask to which we want to unregister + * Unregister an event notification + * \param p_event_manager the event manager + * \param i_event_type the desired event to which we want to unregister * \param f_callback the function to call when i_event_type occurs * \param p_e an initialized exception pointer */ -VLC_PUBLIC_API void libvlc_callback_unregister_for_event( libvlc_instance_t *p_instance, - libvlc_event_type_t i_event_type, - libvlc_callback_t f_callback, - libvlc_exception_t *p_e ); +VLC_PUBLIC_API void libvlc_event_detach( libvlc_event_manager_t *p_event_manager, + libvlc_event_type_t i_event_type, + libvlc_callback_t f_callback, + void *p_user_data, + libvlc_exception_t *p_e ); + + +/** + * Get an event type name + * \param i_event_type the desired event + */ +#define libvlc_event_type_name(a) #a /** @} */