static char *ArtCacheName( input_item_t *p_item, const char *psz_type ) { char *psz_path = ArtCachePath( p_item ); if( !psz_path ) return NULL; ArtCacheCreateDir( psz_path ); char *psz_ext = filename_sanitize( psz_type ? psz_type : "" ); char *psz_filename; if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 ) psz_filename = NULL; free( psz_ext ); free( psz_path ); return psz_filename; }
int playlist_FindArtInCache( input_item_t *p_item ) { char *psz_path = ArtCachePath( p_item ); if( !psz_path ) return VLC_EGENERIC; /* Check if file exists */ DIR *p_dir = utf8_opendir( psz_path ); if( !p_dir ) { free( psz_path ); return VLC_EGENERIC; } bool b_found = false; char *psz_filename; while( !b_found && (psz_filename = utf8_readdir( p_dir )) ) { if( !strncmp( psz_filename, "art", 3 ) ) { char *psz_file; if( asprintf( &psz_file, "%s" DIR_SEP "%s", psz_path, psz_filename ) != -1 ) { char *psz_uri = make_URI( psz_file ); if( psz_uri ) { input_item_SetArtURL( p_item, psz_uri ); free( psz_uri ); } free( psz_file ); } b_found = true; } free( psz_filename ); } /* */ closedir( p_dir ); free( psz_path ); return b_found ? VLC_SUCCESS : VLC_EGENERIC; }
static char *ArtCacheName( input_item_t *p_item, const char *psz_type ) { char *psz_path = ArtCachePath( p_item ); char *psz_ext = strdup( psz_type ? psz_type : "" ); char *psz_filename = NULL; if( unlikely( !psz_path || !psz_ext ) ) goto end; ArtCacheCreateDir( psz_path ); filename_sanitize( psz_ext ); if( asprintf( &psz_filename, "%s" DIR_SEP "art%s", psz_path, psz_ext ) < 0 ) psz_filename = NULL; end: free( psz_ext ); free( psz_path ); return psz_filename; }