# include "config.h"
#endif
-#include <assert.h>
#include <sys/stat.h>
+#include <errno.h>
#include <vlc_common.h>
-#include <vlc_playlist.h>
+#include <vlc_input_item.h>
#include <vlc_fs.h>
#include <vlc_strings.h>
-#include <vlc_stream.h>
#include <vlc_url.h>
#include <vlc_md5.h>
-#include "../libvlc.h"
-#include "playlist_internal.h"
+#include "art.h"
static void ArtCacheCreateDir( const char *psz_dir )
{
}
bool b_found = false;
- char *psz_filename;
+ const char *psz_filename;
while( !b_found && (psz_filename = vlc_readdir( p_dir )) )
{
if( !strncmp( psz_filename, "art", 3 ) )
if( asprintf( &psz_file, "%s" DIR_SEP "%s",
psz_path, psz_filename ) != -1 )
{
- char *psz_uri = make_URI( psz_file, "file" );
+ char *psz_uri = vlc_path2uri( psz_file, "file" );
if( psz_uri )
{
input_item_SetArtURL( p_item, psz_uri );
b_found = true;
}
- free( psz_filename );
}
/* */
}
/* */
-int playlist_SaveArt( playlist_t *p_playlist, input_item_t *p_item,
- const uint8_t *p_buffer, int i_buffer, const char *psz_type )
+int playlist_SaveArt( vlc_object_t *obj, input_item_t *p_item,
+ const void *data, size_t length, const char *psz_type )
{
char *psz_filename = ArtCacheName( p_item, psz_type );
if( !psz_filename )
return VLC_EGENERIC;
- char *psz_uri = make_URI( psz_filename, "file" );
+ char *psz_uri = vlc_path2uri( psz_filename, "file" );
if( !psz_uri )
{
free( psz_filename );
FILE *f = vlc_fopen( psz_filename, "wb" );
if( f )
{
- if( fwrite( p_buffer, i_buffer, 1, f ) != 1 )
+ if( fwrite( data, 1, length, f ) != length )
{
- msg_Err( p_playlist, "%s: %m", psz_filename );
+ msg_Err( obj, "%s: %s", psz_filename, vlc_strerror_c(errno) );
}
else
{
- msg_Dbg( p_playlist, "album art saved to %s", psz_filename );
+ msg_Dbg( obj, "album art saved to %s", psz_filename );
input_item_SetArtURL( p_item, psz_uri );
}
fclose( f );
if ( f )
{
if( fputs( "file://", f ) < 0 || fputs( psz_filename, f ) < 0 )
- msg_Err( p_playlist, "Error writing %s: %m", psz_byuidfile );
+ msg_Err( obj, "Error writing %s: %s", psz_byuidfile,
+ vlc_strerror_c(errno) );
fclose( f );
}
free( psz_byuidfile );