Track: Begin a new Track constructor

I want to provide the Library, Artist, Album, and Genre tags to the
Track on construction to (hopefully) eliminate the Track::tag()
function.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
Anna Schumaker 2014-11-20 08:22:50 -05:00
parent 37613573e4
commit 6149c928d2
3 changed files with 25 additions and 2 deletions

View File

@ -11,4 +11,10 @@ Track :: Track()
track(0), length(0), play_count(0), last_year(0), last_month(0), last_day(0)
{}
Track :: Track(Library *library)
: _library(library)
{
_library->inc_size();
}
Library *Track :: library() { return _library; }

View File

@ -76,6 +76,13 @@ public:
/** Track constructor */
Track();
/**
* Track constructor
*
* @param library The library containing this track.
*/
Track(Library *);
/**
* Track constructor
* @param filepath Filepath of the track

View File

@ -5,7 +5,7 @@
#include <core/tags/track.h>
#include <tests/test.h>
static void test_track_tag()
static void test_track_tag_default()
{
Track track;
@ -30,8 +30,18 @@ static void test_track_tag()
test_equal(track.last_day, (unsigned)0);
}
static void test_track_tag_constructor()
{
Library *library = tags :: get_library("/home/Zelda/Music");
Track track(library);
test_equal(track.library(), library);
test_equal(track.library()->size(), (unsigned)1);
}
int main(int argc, char **argv)
{
run_test("Track Tag Test", test_track_tag);
run_test("Track Tag Default Constructor Test", test_track_tag_default);
run_test("Track Tag Constructor Test", test_track_tag_constructor);
return 0;
}