X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc%2Flibvlc_structures.h;h=f2eebd9c6390cb21cd709e9911549d3eb8f62f49;hb=098dab901c1a17c869a52d0d4042d03f00a83d67;hp=72b1f92b8b3ccb43f418dd5255c27f81dd6898e4;hpb=d1a33559d8dcd5d58728cab63d3a4551b2d07a0d;p=vlc diff --git a/include/vlc/libvlc_structures.h b/include/vlc/libvlc_structures.h index 72b1f92b8b..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,13 +37,13 @@ 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 * @{ */ -typedef struct +typedef struct libvlc_exception_t { int b_raised; int i_code; @@ -52,44 +52,150 @@ typedef struct /**@} */ +/***************************************************************************** + * Time + *****************************************************************************/ +/** \defgroup libvlc_time libvlc_time + * \ingroup libvlc_core + * LibVLC Time support in libvlc + * @{ + */ + +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 * @{ */ -typedef enum { +typedef enum libvlc_meta_t { libvlc_meta_Title, - libvlc_meta_Artist + libvlc_meta_Artist, + libvlc_meta_Genre, + libvlc_meta_Copyright, + libvlc_meta_Album, + libvlc_meta_TrackNumber, + libvlc_meta_Description, + libvlc_meta_Rating, + libvlc_meta_Date, + libvlc_meta_Setting, + libvlc_meta_URL, + libvlc_meta_Language, + libvlc_meta_NowPlaying, + libvlc_meta_Publisher, + libvlc_meta_EncodedBy, + libvlc_meta_ArtworkURL, + libvlc_meta_TrackID } libvlc_meta_t; /**@} */ -typedef struct libvlc_media_descriptor_t libvlc_media_descriptor_t; +typedef struct libvlc_media_t libvlc_media_t; /**@} */ +/***************************************************************************** + * Media Instance + *****************************************************************************/ +/** \defgroup libvlc_media_player libvlc_media_player + * \ingroup libvlc + * LibVLC Media Instance handling + * @{ + */ + +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 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 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 libvlc_media_library + * \ingroup libvlc + * LibVLC Media Library + * @{ + */ + +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 * @{ */ -typedef struct { +typedef struct libvlc_playlist_item_t +{ int i_id; char * psz_uri; char * psz_name; @@ -102,12 +208,12 @@ typedef struct { /***************************************************************************** * 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, @@ -119,7 +225,7 @@ typedef int libvlc_drawable_t; /** * Rectangle type for video geometry */ -typedef struct +typedef struct libvlc_rectangle_t { int top, left; int bottom, right; @@ -129,12 +235,25 @@ libvlc_rectangle_t; /**@} */ +/***************************************************************************** + * Services/Media Discovery + *****************************************************************************/ +/** \defgroup libvlc_media_discoverer libvlc_media_discoverer + * \ingroup libvlc + * LibVLC Media Discoverer + * @{ + */ + +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 * @{ */ @@ -157,54 +276,6 @@ typedef struct libvlc_log_message_t /**@} */ -/***************************************************************************** - * Callbacks handling - *****************************************************************************/ - -/** defgroup libvlc_callbacks Callbacks - * \ingroup libvlc - * LibVLC Event Callbacks - * @{ - */ - -/** - * Available events: - * - libvlc_VolumeChanged - * - libvlc_InputPositionChanged - */ - -typedef enum { - libvlc_VolumeChanged, - libvlc_InputPositionChanged, -} libvlc_event_type_t; - -typedef struct -{ - libvlc_event_type_t type; - union - { - struct - { - int new_volume; - } volume_changed; - struct - { - vlc_int64_t new_position; - } input_position_changed; - } u; -} libvlc_event_t; - -/** - * Callback function notification - * \param p_instance the libvlc instance - * \param p_event the event triggering the callback - * \param p_user_data user provided data - */ - -typedef void ( *libvlc_callback_t )( struct libvlc_instance_t *, libvlc_event_t *, void * ); - -/**@} */ - # ifdef __cplusplus } # endif