diff options
Diffstat (limited to 'composer/Song.cpp')
-rw-r--r-- | composer/Song.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/composer/Song.cpp b/composer/Song.cpp new file mode 100644 index 0000000..c793504 --- /dev/null +++ b/composer/Song.cpp @@ -0,0 +1,42 @@ +#include "Song.hpp" + +#include <iostream> + +using std::cout; +using std::cerr; +using std::endl; + +map<string,Song *> Song::byname; + +Song::Song(string songName) +: name(songName) +{ +} + +Song *Song::byName(string songName) +{ + if(byname.find(songName) == byname.end()) + byname[songName] = new Song(songName); + + return byname[songName]; +} + +void Song::print() +{ + cerr << "---- Song: " << name << " ----" << endl; + + for(map<string,Track *>::iterator i = tracks.begin(); i != tracks.end(); i++) + { + cerr << " Track[" << i->first << "]: " << i->first << endl; + } + + cerr << "---- End song (" << name << ") ----" << endl; +} + +Track *Song::getTrackByName(string trackName) +{ + if(tracks.find(trackName) == tracks.end()) + return 0; + else + return tracks[trackName]; +} |