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;
|
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 *
|
struct song *
|
||||||
playlist_check_translate_song(struct song *song, const char *base_uri,
|
playlist_check_translate_song(struct song *song, const char *base_uri,
|
||||||
bool secure)
|
bool secure)
|
||||||
{
|
{
|
||||||
struct song *dest;
|
|
||||||
|
|
||||||
if (song_in_database(song))
|
if (song_in_database(song))
|
||||||
/* already ok */
|
/* already ok */
|
||||||
return song;
|
return song;
|
||||||
|
@ -135,27 +154,8 @@ playlist_check_translate_song(struct song *song, const char *base_uri,
|
||||||
else
|
else
|
||||||
uri = g_strdup(uri);
|
uri = g_strdup(uri);
|
||||||
|
|
||||||
if (uri_has_scheme(uri)) {
|
struct song *dest = playlist_check_load_song(song, uri, secure);
|
||||||
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);
|
song_free(song);
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
dest = db_get_song(uri);
|
|
||||||
g_free(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;
|
return dest;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue