Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <utility>
- #include <utility>
- #include <utility>
- //
- // Created by Matt on 3/21/2019.
- //
- #include <algorithm>
- #include <iostream>
- #include "Album.h"
- using namespace std;
- Album::Album(std::string albumName, std::string artistName) : albumName(std::move(albumName)), artistName(std::move(artistName)) {}
- Album::Album() {}
- int Album::getTotalTrackTime() const {
- int totalTime = 0;
- for (const auto &track : tracks) {
- totalTime = totalTime + track.getTime();
- }
- return totalTime;
- }
- std::string Album::getAlbumName() const {
- return this->albumName;
- }
- int Album::getTotalTracks() const {
- return static_cast<int>(this->tracks.size());
- }
- std::string Album::getArtistName() const {
- return this->artistName;
- }
- void Album::setAlbumName(std::string albumName) {
- this->albumName = std::move(albumName);
- }
- void Album::setArtistName(std::string artistName) {
- this->artistName = std::move(artistName);
- }
- void Album::addTrack(const Track& track) {
- this->tracks.push_back(track);
- }
- void Album::removeTrack(Track track) {
- if (this->tracks.empty()) return;
- int indexElement = -1;
- for (int i = 0; i < tracks.size(); i++) {
- if (tracks[i].getTrackName() == track.getTrackName()) {
- indexElement = i;
- break;
- }
- }
- if (indexElement != -1) this->tracks.erase(tracks.begin() + indexElement);
- }
- Track Album::getLongestTrack() {
- int highest = 0;
- int index = 0;
- for (int i = 0; i < tracks.size(); i++) {
- if (tracks[i].getTime() > highest) {
- highest = tracks[i].getTime();
- index = i;
- }
- }
- return tracks[index];
- }
- bool Album::equals(Album album) {
- return this->albumName == album.getAlbumName() && this->artistName == album.getArtistName();
- }
- bool Album::containsTrack(const Track track) {
- for (auto &i : tracks) {
- if (i.equals(track)) return true;
- }
- return false;
- }
- std::string Album::toString() {
- return artistName + "-" + albumName;
- }
- vector<Track> Album::getTracks() {
- return this->tracks;
- }
- /*
- int main() {
- Album alb("Matthew","Album");
- Duration dur(5, 5, 5);
- Track track("My first", dur);
- Track second("My seconds", dur);
- alb.addTrack(track);
- alb.addTrack(second);
- cerr << alb.getTotalTracks();
- cout << alb.getTotalTrackTime();
- cerr << alb.toString();
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement