int index,
libvlc_exception_t * p_e );
+VLC_PUBLIC_API libvlc_media_list_view_t *
+ libvlc_media_list_view_children_for_item( libvlc_media_list_view_t * p_mlv,
+ libvlc_media_descriptor_t * p_md,
+ libvlc_exception_t * p_e );
+
VLC_PUBLIC_API int
libvlc_media_list_view_index_of_item( libvlc_media_list_view_t * p_mlv,
int index,
libvlc_exception_t * p_e )
{
+ (void)p_mlv; (void)index; (void)p_e;
return NULL;
}
flat_media_list_view_count,
flat_media_list_view_item_at_index,
flat_media_list_view_children_at_index,
+ libvlc_media_list_flat_view,
flat_media_list_view_release,
p_this_view_data,
p_e );
hierarch_media_list_view_count,
hierarch_media_list_view_item_at_index,
hierarch_media_list_view_children_at_index,
+ libvlc_media_list_hierarchical_view,
hierarch_media_list_view_release,
NULL,
p_e );
hierarch_node_media_list_view_count,
hierarch_node_media_list_view_item_at_index,
hierarch_node_media_list_view_children_at_index,
+ libvlc_media_list_hierarchical_node_view,
hierarch_node_media_list_view_release,
NULL,
p_e );
vlc_bool_t b_read_only;
};
+typedef libvlc_media_list_view_t * (*libvlc_media_list_view_constructor_func_t)( libvlc_media_list_t * p_mlist, libvlc_exception_t * p_e ) ;
typedef void (*libvlc_media_list_view_release_func_t)( libvlc_media_list_view_t * p_mlv ) ;
typedef int (*libvlc_media_list_view_count_func_t)( libvlc_media_list_view_t * p_mlv,
libvlc_media_list_view_item_at_index_func_t pf_item_at_index;
libvlc_media_list_view_children_at_index_func_t pf_children_at_index;
+ libvlc_media_list_view_constructor_func_t pf_constructor;
libvlc_media_list_view_release_func_t pf_release;
/* Notification callback */
libvlc_media_list_view_count_func_t pf_count,
libvlc_media_list_view_item_at_index_func_t pf_item_at_index,
libvlc_media_list_view_children_at_index_func_t pf_children_at_index,
+ libvlc_media_list_view_constructor_func_t pf_constructor,
libvlc_media_list_view_release_func_t pf_release,
void * this_view_data,
libvlc_exception_t * p_e ) );
libvlc_media_list_view_count_func_t pf_count,
libvlc_media_list_view_item_at_index_func_t pf_item_at_index,
libvlc_media_list_view_children_at_index_func_t pf_children_at_index,
+ libvlc_media_list_view_constructor_func_t pf_constructor,
libvlc_media_list_view_release_func_t pf_release,
void * this_view_data,
libvlc_exception_t * p_e )
p_mlv->pf_count = pf_count;
p_mlv->pf_item_at_index = pf_item_at_index;
p_mlv->pf_children_at_index = pf_children_at_index;
+ p_mlv->pf_constructor = pf_constructor;
p_mlv->pf_release = pf_release;
p_mlv->p_this_view_data = this_view_data;
return p_mlist;
}
+/**************************************************************************
+ * libvlc_media_list_view_children_for_item (Public)
+ **************************************************************************/
+libvlc_media_list_view_t *
+libvlc_media_list_view_children_for_item( libvlc_media_list_view_t * p_mlv,
+ libvlc_media_descriptor_t * p_md,
+ libvlc_exception_t * p_e)
+{
+ (void)p_e;
+ libvlc_media_list_t * p_mlist;
+ libvlc_media_list_view_t * ret;
+
+ p_mlist = libvlc_media_descriptor_subitems(p_md, p_e);
+ if(!p_mlist) return NULL;
+
+ ret = p_mlv->pf_constructor( p_mlist, p_e );
+ libvlc_media_list_release( p_mlist );
+
+ return ret;
+}
+
/* Limited to four args, because it should be enough */
#define AN_SELECT( collapser, dec1, dec2, dec3, dec4, p, ...) p