Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. #include <utility>
  2.  
  3. #include <utility>
  4.  
  5. #include <utility>
  6.  
  7. //
  8. // Created by Matt on 3/21/2019.
  9. //
  10.  
  11. #include <algorithm>
  12. #include <iostream>
  13. #include "Album.h"
  14.  
  15. using namespace std;
  16.  
  17. Album::Album(std::string albumName, std::string artistName) : albumName(std::move(albumName)), artistName(std::move(artistName)) {}
  18.  
  19. Album::Album() {}
  20.  
  21. int Album::getTotalTrackTime() const {
  22. int totalTime = 0;
  23. for (const auto &track : tracks) {
  24. totalTime = totalTime + track.getTime();
  25. }
  26. return totalTime;
  27. }
  28.  
  29. std::string Album::getAlbumName() const {
  30. return this->albumName;
  31. }
  32.  
  33. int Album::getTotalTracks() const {
  34. return static_cast<int>(this->tracks.size());
  35. }
  36.  
  37. std::string Album::getArtistName() const {
  38. return this->artistName;
  39. }
  40.  
  41. void Album::setAlbumName(std::string albumName) {
  42. this->albumName = std::move(albumName);
  43. }
  44.  
  45. void Album::setArtistName(std::string artistName) {
  46. this->artistName = std::move(artistName);
  47. }
  48.  
  49. void Album::addTrack(const Track& track) {
  50. this->tracks.push_back(track);
  51. }
  52.  
  53. void Album::removeTrack(Track track) {
  54. if (this->tracks.empty()) return;
  55. int indexElement = -1;
  56. for (int i = 0; i < tracks.size(); i++) {
  57. if (tracks[i].getTrackName() == track.getTrackName()) {
  58. indexElement = i;
  59. break;
  60. }
  61. }
  62. if (indexElement != -1) this->tracks.erase(tracks.begin() + indexElement);
  63. }
  64.  
  65. Track Album::getLongestTrack() {
  66. int highest = 0;
  67. int index = 0;
  68. for (int i = 0; i < tracks.size(); i++) {
  69. if (tracks[i].getTime() > highest) {
  70. highest = tracks[i].getTime();
  71. index = i;
  72. }
  73. }
  74. return tracks[index];
  75. }
  76.  
  77. bool Album::equals(Album album) {
  78. return this->albumName == album.getAlbumName() && this->artistName == album.getArtistName();
  79. }
  80.  
  81. bool Album::containsTrack(const Track track) {
  82. for (auto &i : tracks) {
  83. if (i.equals(track)) return true;
  84. }
  85. return false;
  86. }
  87.  
  88. std::string Album::toString() {
  89. return artistName + "-" + albumName;
  90. }
  91.  
  92. vector<Track> Album::getTracks() {
  93. return this->tracks;
  94. }
  95. /*
  96. int main() {
  97. Album alb("Matthew","Album");
  98. Duration dur(5, 5, 5);
  99. Track track("My first", dur);
  100. Track second("My seconds", dur);
  101. alb.addTrack(track);
  102. alb.addTrack(second);
  103. cerr << alb.getTotalTracks();
  104. cout << alb.getTotalTrackTime();
  105. cerr << alb.toString();
  106. }
  107. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement