Commit f8bf3afe authored by Max Kellermann's avatar Max Kellermann

playlist_song: move code to playlist_check_load_song()

parent f703da15
......@@ -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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment