/*****************************************************************************
* 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$
*****************************************************************************/
#include "libvlc_internal.h"
#include <vlc/libvlc.h>
+#include "libvlc.h"
#include "vlc_arrays.h"
/*
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;
}
/**************************************************************************
if( p_mlib->i_refcount > 0 )
return;
- free( p_mlib );
+ libvlc_event_manager_release( p_mlib->p_event_manager );
+ free( p_mlib );
}
/**************************************************************************
**************************************************************************/
void libvlc_media_library_retain( libvlc_media_library_t * p_mlib )
{
- p_mlib->i_refcount++;
+ p_mlib->i_refcount++;
}
/**************************************************************************
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 );
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" );
}
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;
}
-
-/**************************************************************************
- * media_list (Public)
- **************************************************************************/
-libvlc_media_list_t *
-libvlc_media_library_media_list( libvlc_media_library_t * p_mlib,
- libvlc_exception_t * p_e )
-{
- (void)p_e;
- if( p_mlib->p_mlist )
- libvlc_media_list_retain( p_mlib->p_mlist );
- return p_mlib->p_mlist;
-}
-