]> git.sesse.net Git - vlc/blobdiff - src/control/libvlc_internal.h
control/dynamic_media_list.c: New dynamic media list object. It shouldn't have great...
[vlc] / src / control / libvlc_internal.h
index 85a94bfcab1ed04bd2162ffae8e5164f92cdcc4a..088c73964231c96543362805d782c31fbee9a2cd 100644 (file)
@@ -70,6 +70,7 @@ struct libvlc_media_descriptor_t
     input_item_t      *p_input_item;
     int                i_refcount;
     libvlc_instance_t *p_libvlc_instance;
+    vlc_dictionary_t   tags; /* To be merged with core's meta soon */
 };
 
 struct libvlc_tag_query_t
@@ -78,6 +79,14 @@ struct libvlc_tag_query_t
     int                i_refcount;
 };
 
+struct libvlc_tree_t
+{
+    int     i_refcount;
+    void *  p_item; /* For dynamic sublist */
+    libvlc_retain_function  pf_item_retain;
+    libvlc_release_function pf_item_release;
+    DECL_ARRAY(struct libvlc_tree_t *)  subtrees; /* For dynamic sublist */
+};
 
 struct libvlc_media_list_t
 {
@@ -85,11 +94,22 @@ struct libvlc_media_list_t
     libvlc_instance_t *      p_libvlc_instance;
     int                      i_refcount;
     vlc_mutex_t              object_lock;
-    libvlc_media_list_t *    p_media_provider; /* For dynamic sublist */
-    libvlc_tag_query_t *     p_query;              /* For dynamic sublist */
+    char *                   psz_name; /* Usually NULL */
     DECL_ARRAY(void *) items;
 };
 
+struct libvlc_dynamic_media_list_t
+{
+    libvlc_instance_t *     p_libvlc_instance;
+    int                     i_refcount;
+    libvlc_media_list_t *   p_media_provider;
+    libvlc_tag_query_t *    p_query;
+    char *                  psz_tag_key;
+    libvlc_tag_t            tag;
+    struct libvlc_media_list_t *  p_mlist;
+    struct libvlc_media_list_t *  p_provider;
+};
+
 struct libvlc_media_instance_t
 {
     int                i_refcount;
@@ -114,7 +134,21 @@ struct libvlc_media_list_player_t
     libvlc_media_instance_t *  p_mi;
 };
 
+struct libvlc_media_library_t
+{
+    libvlc_event_manager_t * p_event_manager;
+    libvlc_instance_t *      p_libvlc_instance;
+    int                      i_refcount;
+    libvlc_media_list_t *    p_mlist;
+};
 
+struct libvlc_media_discoverer_t
+{
+    libvlc_event_manager_t * p_event_manager;
+    libvlc_instance_t *      p_libvlc_instance;
+    services_discovery_t *   p_sd;
+    libvlc_media_list_t *    p_mlist;
+};
 
 /* 
  * Event Handling