/** * @file * Copyright 2014 (c) Anna Schumaker. */ #include #include Track :: Track() : GenericTag(), _album(NULL), _artist(NULL), _genre(NULL), _library(NULL), _count(0), _length(0), _track(0), last_year(0), last_month(0), last_day(0) {} Track :: Track(Album *album, Artist *artist, Genre *genre, Library *library, const std::string &name, unsigned int length, unsigned int track) : GenericTag(name), _album(album), _artist(artist), _genre(genre), _library(library), _count(0), _length(length), _track(track) { _library->inc_size(); } Track :: ~Track() { if (_library) _library->dec_size(); } Album *Track :: album() { return _album; } Artist *Track :: artist() { return _artist; } Genre *Track :: genre() { return _genre; } Library *Track :: library() { return _library; } unsigned int Track :: count() { return _count; } unsigned int Track :: length() { return _length; } unsigned int Track :: track() { return _track; } const std::string Track :: length_str() const { std::stringstream ss; unsigned int minutes = _length / 60; unsigned int seconds = _length % 60; ss << minutes << ":"; if (seconds < 10) ss << 0; ss << seconds; return ss.str(); }