Track: Add a function for removing specific tracks from the track_db
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
d5fc2a4de0
commit
9dfec9934c
|
@ -170,6 +170,11 @@ Track *tags :: get_track(const unsigned int index)
|
||||||
return track_db.at(index);
|
return track_db.at(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tags :: remove_track(Track *track)
|
||||||
|
{
|
||||||
|
track_db.remove(track->index());
|
||||||
|
}
|
||||||
|
|
||||||
void tags :: commit_track_db()
|
void tags :: commit_track_db()
|
||||||
{
|
{
|
||||||
track_db.save();
|
track_db.save();
|
||||||
|
|
|
@ -151,6 +151,13 @@ namespace tags
|
||||||
*/
|
*/
|
||||||
Track *get_track(const unsigned int);
|
Track *get_track(const unsigned int);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called to remove a Track tag from the database.
|
||||||
|
*
|
||||||
|
* @param track The Track tag to be removed.
|
||||||
|
*/
|
||||||
|
void remove_track(Track *);
|
||||||
|
|
||||||
/** Called to write the track_db to disk. */
|
/** Called to write the track_db to disk. */
|
||||||
void commit_track_db();
|
void commit_track_db();
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,9 +81,16 @@ static void test_track_tag_destructor()
|
||||||
test_equal(library->size(), (unsigned)0);
|
test_equal(library->size(), (unsigned)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_track_tag_lookup()
|
static void test_track_tag_load_db(unsigned int size)
|
||||||
{
|
{
|
||||||
Database<Track> track_db("track.db", false);
|
Database<Track> track_db("track.db", false);
|
||||||
|
track_db.load();
|
||||||
|
test_equal(track_db.size(), size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_track_tag_lookup()
|
||||||
|
{
|
||||||
|
unsigned int index;
|
||||||
Track *a, *b;
|
Track *a, *b;
|
||||||
|
|
||||||
a = tags :: add_track(album, artist, genre, library,
|
a = tags :: add_track(album, artist, genre, library,
|
||||||
|
@ -97,15 +104,25 @@ static void test_track_tag_lookup()
|
||||||
"Legend of Zelda Medley", 288, 13);
|
"Legend of Zelda Medley", 288, 13);
|
||||||
test_equal(b, (Track *)NULL);
|
test_equal(b, (Track *)NULL);
|
||||||
|
|
||||||
|
b = tags :: add_track(album, artist, genre, library,
|
||||||
|
MUSIC_DIR + "/Hyrule Symphony/12 - Ocarina Medley.mp3",
|
||||||
|
"Ocarina Medley", 232, 12);
|
||||||
|
test_not_equal(b, a);
|
||||||
|
|
||||||
test_equal(tags :: get_track(a->index()), a);
|
test_equal(tags :: get_track(a->index()), a);
|
||||||
test_equal(tags :: get_track(a->index() + 1), (Track *)NULL);
|
test_equal(tags :: get_track(a->index() + 1), b);
|
||||||
|
test_equal(tags :: get_track(a->index() + 2), (Track *)NULL);
|
||||||
track_db.load();
|
|
||||||
test_equal(track_db.size(), (unsigned)0);
|
|
||||||
|
|
||||||
|
test_track_tag_load_db(0);
|
||||||
tags :: commit_track_db();
|
tags :: commit_track_db();
|
||||||
track_db.load();
|
test_track_tag_load_db(2);
|
||||||
test_equal(track_db.size(), (unsigned)1);
|
|
||||||
|
index = a->index();
|
||||||
|
tags :: remove_track(a);
|
||||||
|
test_equal(tags :: get_track(index), (Track *)NULL);
|
||||||
|
test_track_tag_load_db(2);
|
||||||
|
tags :: commit_track_db();
|
||||||
|
test_track_tag_load_db(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_track_tag_functional()
|
static void test_track_tag_functional()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user