X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_structures.h;h=f2eebd9c6390cb21cd709e9911549d3eb8f62f49;hb=0d8adc76dbf01e54ef043a07a623982a7fa9a426;hp=01ade2fbaa20beccf33b4259b4dc5820e38499d2;hpb=5e827398d077bd2c2a560f2be6bedeb7a868fe92;p=vlc diff --git a/include/vlc/libvlc_structures.h b/include/vlc/libvlc_structures.h index 01ade2fbaa..f2eebd9c63 100644 --- a/include/vlc/libvlc_structures.h +++ b/include/vlc/libvlc_structures.h @@ -24,7 +24,7 @@ #ifndef _LIBVLC_STRUCTURES_H #define _LIBVLC_STRUCTURES_H 1 -#include +#include # ifdef __cplusplus extern "C" { @@ -37,8 +37,8 @@ typedef struct libvlc_instance_t libvlc_instance_t; * Exceptions *****************************************************************************/ -/** defgroup libvlc_exception Exceptions - * \ingroup libvlc +/** \defgroup libvlc_exception libvlc_exception + * \ingroup libvlc_core * LibVLC Exceptions handling * @{ */ @@ -53,47 +53,30 @@ typedef struct libvlc_exception_t /**@} */ /***************************************************************************** - * Tree + * Time *****************************************************************************/ -/** defgroup libvlc_tree Tree - * \ingroup libvlc - * LibVLC Tree +/** \defgroup libvlc_time libvlc_time + * \ingroup libvlc_core + * LibVLC Time support in libvlc * @{ */ -typedef void (*libvlc_retain_function)(void *); -typedef void (*libvlc_release_function)(void *); - -typedef struct libvlc_tree_t libvlc_tree_t; - -/**@} */ - -/***************************************************************************** - * Tag - *****************************************************************************/ -/** defgroup libvlc_tag Tag - * \ingroup libvlc - * LibVLC Tag support in media descriptor - * @{ - */ - -typedef struct libvlc_tag_query_t libvlc_tag_query_t; -typedef char * libvlc_tag_t; +typedef int64_t libvlc_time_t; /**@} */ /***************************************************************************** * Media Descriptor *****************************************************************************/ -/** defgroup libvlc_media_descriptor MediaDescriptor +/** \defgroup libvlc_media libvlc_media * \ingroup libvlc * LibVLC Media Descriptor handling * @{ */ /* Meta Handling */ -/** defgroup libvlc_meta Meta - * \ingroup libvlc_media_descriptor +/** defgroup libvlc_meta libvlc_meta + * \ingroup libvlc_media * LibVLC Media Meta * @{ */ @@ -120,7 +103,7 @@ typedef enum libvlc_meta_t { /**@} */ -typedef struct libvlc_media_descriptor_t libvlc_media_descriptor_t; +typedef struct libvlc_media_t libvlc_media_t; /**@} */ @@ -128,46 +111,70 @@ typedef struct libvlc_media_descriptor_t libvlc_media_descriptor_t; /***************************************************************************** * Media Instance *****************************************************************************/ -/** defgroup libvlc_media_instance MediaInstance +/** \defgroup libvlc_media_player libvlc_media_player * \ingroup libvlc * LibVLC Media Instance handling * @{ */ -typedef struct libvlc_media_instance_t libvlc_media_instance_t; +typedef struct libvlc_media_player_t libvlc_media_player_t; + +/** + * Note the order of libvlc_state_t enum must match exactly the order of + * @see mediacontrol_PlayerStatus and @see input_state_e enums. + * + * Expected states by web plugins are: + * IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, + * STOPPING=5, FORWARD=6, BACKWARD=7, ENDED=8, ERROR=9 + */ +typedef enum libvlc_state_t +{ + libvlc_NothingSpecial=0, + libvlc_Opening, + libvlc_Buffering, + libvlc_Playing, + libvlc_Paused, + libvlc_Stopped, + libvlc_Forward, + libvlc_Backward, + libvlc_Ended, + libvlc_Error +} libvlc_state_t; /**@} */ /***************************************************************************** * Media List *****************************************************************************/ -/** defgroup libvlc_media_list MediaList +/** \defgroup libvlc_media_list libvlc_media_list * \ingroup libvlc * LibVLC Media List handling * @{ */ typedef struct libvlc_media_list_t libvlc_media_list_t; +typedef struct libvlc_media_list_view_t libvlc_media_list_view_t; -/**@} */ /***************************************************************************** * Media List Player *****************************************************************************/ -/** defgroup libvlc_media_list_player MediaListPlayer - * \ingroup libvlc +/** \defgroup libvlc_media_list_player libvlc_media_list_player + * \ingroup libvlc_media_list * LibVLC Media List Player handling * @{ */ typedef struct libvlc_media_list_player_t libvlc_media_list_player_t; -/**@} */ +/**@} libvlc_media_list_player */ + +/**@} libvlc_media_list */ /***************************************************************************** * Media Library *****************************************************************************/ -/** defgroup libvlc_media_library Media Library +/** \defgroup libvlc_media_library libvlc_media_library * \ingroup libvlc * LibVLC Media Library * @{ @@ -180,9 +187,10 @@ typedef struct libvlc_media_library_t libvlc_media_library_t; /***************************************************************************** * Playlist *****************************************************************************/ -/** defgroup libvlc_playlist Playlist +/** \defgroup libvlc_playlist libvlc_playlist (Deprecated) * \ingroup libvlc - * LibVLC Playlist handling + * LibVLC Playlist handling (Deprecated) + * @deprecated Use media_list * @{ */ @@ -200,12 +208,12 @@ typedef struct libvlc_playlist_item_t /***************************************************************************** * Video *****************************************************************************/ -/** defgroup libvlc_video Video - * \ingroup libvlc +/** \defgroup libvlc_video libvlc_video + * \ingroup libvlc_media_player * LibVLC Video handling * @{ */ - + /** * Downcast to this general type as placeholder for a platform specific one, such as: * Drawable on X11, @@ -230,7 +238,7 @@ libvlc_rectangle_t; /***************************************************************************** * Services/Media Discovery *****************************************************************************/ -/** defgroup libvlc_media_discoverer Media Discoverer +/** \defgroup libvlc_media_discoverer libvlc_media_discoverer * \ingroup libvlc * LibVLC Media Discoverer * @{ @@ -244,8 +252,8 @@ typedef struct libvlc_media_discoverer_t libvlc_media_discoverer_t; * Message log handling *****************************************************************************/ -/** defgroup libvlc_log Log - * \ingroup libvlc +/** \defgroup libvlc_log libvlc_log + * \ingroup libvlc_core * LibVLC Message Logging * @{ */ @@ -268,91 +276,6 @@ typedef struct libvlc_log_message_t /**@} */ -/***************************************************************************** - * Callbacks handling - *****************************************************************************/ - -/** defgroup libvlc_callbacks Callbacks - * \ingroup libvlc - * LibVLC Event Callbacks - * @{ - */ - -/** - * Available events: (XXX: being reworked) - * - libvlc_MediaInstanceReachedEnd - */ - -typedef enum libvlc_event_type_t { - libvlc_MediaDescriptorMetaChanged, - libvlc_MediaDescriptorSubItemAdded, - - libvlc_MediaInstanceReachedEnd, - - libvlc_MediaListItemAdded, - libvlc_MediaListItemDeleted, - libvlc_MediaListItemChanged, - -} libvlc_event_type_t; - -/** - * An Event - * \param type the even type - * \param p_obj the sender object - * \param u Event dependent content - */ - -typedef struct libvlc_event_t -{ - libvlc_event_type_t type; - void * p_obj; - union event_type_specific - { - /* media descriptor */ - struct - { - libvlc_meta_t meta_type; - } media_descriptor_meta_changed; - struct - { - libvlc_media_descriptor_t * new_child; - } media_descriptor_subitem_added; - - /* media list */ - struct - { - libvlc_media_descriptor_t * item; - int index; - } media_list_item_added; - struct - { - libvlc_media_descriptor_t * item; - int index; - } media_list_item_deleted; - struct - { - libvlc_media_descriptor_t * item; - int index; - } media_list_item_changed; - } u; -} libvlc_event_t; - -/** - * Event manager that belongs to a libvlc object, and from whom events can - * be received. - */ - -typedef struct libvlc_event_manager_t libvlc_event_manager_t; - -/** - * Callback function notification - * \param p_event the event triggering the callback - */ - -typedef void ( *libvlc_callback_t )( const libvlc_event_t *, void * ); - -/**@} */ - # ifdef __cplusplus } # endif