diff --git a/core/tags/track.cpp b/core/tags/track.cpp index 7262cbd8..30269ae5 100644 --- a/core/tags/track.cpp +++ b/core/tags/track.cpp @@ -169,3 +169,8 @@ Track *tags :: get_track(const unsigned int index) { return track_db.at(index); } + +void tags :: commit_track_db() +{ + track_db.save(); +} diff --git a/include/core/tags/track.h b/include/core/tags/track.h index f67a3bb2..54ff8e25 100644 --- a/include/core/tags/track.h +++ b/include/core/tags/track.h @@ -150,6 +150,9 @@ namespace tags * @return A matching Track tag, or NULL. */ Track *get_track(const unsigned int); + + /** Called to write the track_db to disk. */ + void commit_track_db(); } #endif /* OCARINA_CORE_TAGS_TRACK_H */ diff --git a/tests/core/tags/track.cpp b/tests/core/tags/track.cpp index 2ef41654..51c9c9d9 100644 --- a/tests/core/tags/track.cpp +++ b/tests/core/tags/track.cpp @@ -83,6 +83,7 @@ static void test_track_tag_destructor() static void test_track_tag_lookup() { + Database track_db("track.db", false); Track *a, *b; a = tags :: add_track(album, artist, genre, library, @@ -98,6 +99,13 @@ static void test_track_tag_lookup() test_equal(tags :: get_track(a->index()), a); test_equal(tags :: get_track(a->index() + 1), (Track *)NULL); + + track_db.load(); + test_equal(track_db.size(), (unsigned)0); + + tags :: commit_track_db(); + track_db.load(); + test_equal(track_db.size(), (unsigned)1); } static void test_track_tag_functional()