X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fcontrol%2Fmedia_library.c;h=a85c1b92e333063f1c5d48f61124cb75732b8249;hb=a4270c7dc8ac4e35ecdfe320c2a78142e3170905;hp=f66fb36bc1c2202cdfeaffe80c449b7438589847;hpb=2fd7e5c05021036e5a1f07a8fa64f4d2080683fe;p=vlc diff --git a/src/control/media_library.c b/src/control/media_library.c index f66fb36bc1..a85c1b92e3 100644 --- a/src/control/media_library.c +++ b/src/control/media_library.c @@ -1,6 +1,6 @@ /***************************************************************************** * tree.c: libvlc tags tree functions - * Create a tree of the 'tags' of a media_list's media_descriptors. + * Create a tree of the 'tags' of a media_list's medias. ***************************************************************************** * Copyright (C) 2007 the VideoLAN team * $Id$ @@ -23,6 +23,7 @@ *****************************************************************************/ #include "libvlc_internal.h" #include +#include "libvlc.h" #include "vlc_arrays.h" /* @@ -40,21 +41,21 @@ libvlc_media_library_t * libvlc_media_library_new( libvlc_instance_t * p_inst, libvlc_exception_t * p_e ) { - (void)p_e; + (void)p_e; libvlc_media_library_t * p_mlib; - p_mlib = malloc(sizeof(libvlc_media_library_t)); + p_mlib = malloc(sizeof(libvlc_media_library_t)); - if( !p_mlib ) - return NULL; + if( !p_mlib ) + return NULL; - p_mlib->p_libvlc_instance = p_inst; + p_mlib->p_libvlc_instance = p_inst; p_mlib->i_refcount = 1; p_mlib->p_mlist = NULL; p_mlib->p_event_manager = libvlc_event_manager_new( p_mlib, p_inst, p_e ); - return p_mlib; + return p_mlib; } /************************************************************************** @@ -67,7 +68,8 @@ void libvlc_media_library_release( libvlc_media_library_t * p_mlib ) if( p_mlib->i_refcount > 0 ) return; - free( p_mlib ); + libvlc_event_manager_release( p_mlib->p_event_manager ); + free( p_mlib ); } /************************************************************************** @@ -75,7 +77,7 @@ void libvlc_media_library_release( libvlc_media_library_t * p_mlib ) **************************************************************************/ void libvlc_media_library_retain( libvlc_media_library_t * p_mlib ) { - p_mlib->i_refcount++; + p_mlib->i_refcount++; } /************************************************************************** @@ -87,21 +89,23 @@ void libvlc_media_library_load( libvlc_media_library_t * p_mlib, libvlc_exception_t * p_e ) { - const char *psz_homedir = p_mlib->p_libvlc_instance->p_libvlc_int->psz_homedir; + char *psz_datadir = config_GetUserDataDir(); char * psz_uri; - if( !psz_homedir ) + if( !psz_datadir ) /* XXX: i doubt that this can ever happen */ { - libvlc_exception_raise( p_e, "Can't get HOME DIR" ); + libvlc_exception_raise( p_e, "Can't get data directory" ); return; } - if( asprintf( &psz_uri, "file/xspf-open://%s" DIR_SEP CONFIG_DIR DIR_SEP - "ml.xsp", psz_homedir ) == -1 ) + if( asprintf( &psz_uri, "file/xspf-open://%s" DIR_SEP "ml.xsp", + psz_datadir ) == -1 ) { + free( psz_datadir ); libvlc_exception_raise( p_e, "Can't get create the path" ); return; } + free( psz_datadir ); if( p_mlib->p_mlist ) libvlc_media_list_release( p_mlib->p_mlist ); @@ -121,6 +125,7 @@ void libvlc_media_library_save( libvlc_media_library_t * p_mlib, libvlc_exception_t * p_e ) { + (void)p_mlib; libvlc_exception_raise( p_e, "Not supported" ); } @@ -131,7 +136,7 @@ libvlc_media_list_t * libvlc_media_library_media_list( libvlc_media_library_t * p_mlib, libvlc_exception_t * p_e ) { - (void)p_e; + (void)p_e; if( p_mlib->p_mlist ) libvlc_media_list_retain( p_mlib->p_mlist ); return p_mlib->p_mlist;