]> git.sesse.net Git - vlc/blobdiff - include/vlc/libvlc_structures.h
Merge branch 'master' of git@git.videolan.org:vlc
[vlc] / include / vlc / libvlc_structures.h
index 7bc53a65f497e2228608e8e6d0a5abfd5653feb3..b348024d8547ca19c93402749aeab90ef19b3eb0 100644 (file)
@@ -24,8 +24,6 @@
 #ifndef _LIBVLC_STRUCTURES_H
 #define _LIBVLC_STRUCTURES_H 1
 
-#include <vlc/vlc.h>
-
 # ifdef __cplusplus
 extern "C" {
 # endif
@@ -37,13 +35,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,49 +50,140 @@ typedef struct
 
 /**@} */
 
+/*****************************************************************************
+ * Time
+ *****************************************************************************/
+/** \defgroup libvlc_time libvlc_time
+ * \ingroup libvlc_core
+ * LibVLC Time support in libvlc
+ * @{
+ */
+
+typedef vlc_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_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;
 
-typedef struct {
-    bool                b_preparsed;
-    input_item_t      * p_input_item;
-    libvlc_instance_t * p_libvlc_instance;
-} libvlc_media_descriptor_t;
+typedef enum libvlc_state_t
+{
+    libvlc_NothingSpecial,
+    libvlc_Stopped,
+    libvlc_Opening,
+    libvlc_Buffering,
+    libvlc_Ended,
+    libvlc_Error,
+    libvlc_Playing,
+    libvlc_Paused
+} 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;
@@ -107,12 +196,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,
@@ -124,7 +213,7 @@ typedef int libvlc_drawable_t;
 /**
 * Rectangle type for video geometry
 */
-typedef struct
+typedef struct libvlc_rectangle_t
 {
     int top, left;
     int bottom, right;
@@ -134,12 +223,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
  * @{
  */
@@ -162,54 +264,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