playlist_song: move code to playlist_check_load_song()
This commit is contained in:
parent
f703da1516
commit
f8bf3afeae
|
@ -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) {
|
||||
struct song *dest = playlist_check_load_song(song, uri, secure);
|
||||
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);
|
||||
song_free(song);
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue