playlist_song: move code to playlist_check_load_song()
This commit is contained in:
		@@ -83,12 +83,31 @@ apply_song_metadata(struct song *dest, const struct song *src)
 | 
			
		||||
	return tmp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static struct song *
 | 
			
		||||
playlist_check_load_song(struct song *song, const char *uri, bool secure)
 | 
			
		||||
{
 | 
			
		||||
	struct song *dest;
 | 
			
		||||
 | 
			
		||||
	if (uri_has_scheme(uri)) {
 | 
			
		||||
		dest = song_remote_new(uri);
 | 
			
		||||
	} else if (g_path_is_absolute(uri) && secure) {
 | 
			
		||||
		dest = song_file_load(uri, NULL);
 | 
			
		||||
		if (dest == NULL)
 | 
			
		||||
			return NULL;
 | 
			
		||||
	} else {
 | 
			
		||||
		dest = db_get_song(uri);
 | 
			
		||||
		if (dest == NULL)
 | 
			
		||||
			/* not found in database */
 | 
			
		||||
			return NULL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return apply_song_metadata(dest, song);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
struct song *
 | 
			
		||||
playlist_check_translate_song(struct song *song, const char *base_uri,
 | 
			
		||||
			      bool secure)
 | 
			
		||||
{
 | 
			
		||||
	struct song *dest;
 | 
			
		||||
 | 
			
		||||
	if (song_in_database(song))
 | 
			
		||||
		/* already ok */
 | 
			
		||||
		return song;
 | 
			
		||||
@@ -135,27 +154,8 @@ playlist_check_translate_song(struct song *song, const char *base_uri,
 | 
			
		||||
	else
 | 
			
		||||
		uri = g_strdup(uri);
 | 
			
		||||
 | 
			
		||||
	if (uri_has_scheme(uri)) {
 | 
			
		||||
		dest = song_remote_new(uri);
 | 
			
		||||
		g_free(uri);
 | 
			
		||||
	} else if (g_path_is_absolute(uri) && secure) {
 | 
			
		||||
		dest = song_file_load(uri, NULL);
 | 
			
		||||
		if (dest == NULL) {
 | 
			
		||||
			song_free(song);
 | 
			
		||||
			return NULL;
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		dest = db_get_song(uri);
 | 
			
		||||
		g_free(uri);
 | 
			
		||||
		if (dest == NULL) {
 | 
			
		||||
			/* not found in database */
 | 
			
		||||
			song_free(song);
 | 
			
		||||
			return dest;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	dest = apply_song_metadata(dest, song);
 | 
			
		||||
	struct song *dest = playlist_check_load_song(song, uri, secure);
 | 
			
		||||
	song_free(song);
 | 
			
		||||
 | 
			
		||||
	g_free(uri);
 | 
			
		||||
	return dest;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user