song: add function song_replace_uri()

This commit is contained in:
Max Kellermann 2012-02-12 19:47:22 +01:00
parent 01b0d9eb97
commit df563db294
2 changed files with 21 additions and 0 deletions

View File

@ -61,6 +61,18 @@ song_file_new(const char *path, struct directory *parent)
return song_alloc(path, parent);
}
struct song *
song_replace_uri(struct song *old_song, const char *uri)
{
struct song *new_song = song_alloc(uri, old_song->parent);
new_song->tag = old_song->tag;
new_song->mtime = old_song->mtime;
new_song->start_ms = old_song->start_ms;
new_song->end_ms = old_song->end_ms;
g_free(old_song);
return new_song;
}
void
song_free(struct song *song)
{

View File

@ -74,6 +74,15 @@ song_file_new(const char *path, struct directory *parent);
struct song *
song_file_load(const char *path, struct directory *parent);
/**
* Replaces the URI of a song object. The given song object is
* destroyed, and a newly allocated one is returned. It does not
* update the reference within the parent directory; the caller is
* responsible for doing that.
*/
struct song *
song_replace_uri(struct song *song, const char *uri);
void
song_free(struct song *song);