diff options
author | mescalinum <mescalinum@users.sourceforge.net> | 2009-09-25 17:19:25 +0000 |
---|---|---|
committer | mescalinum <mescalinum@users.sourceforge.net> | 2009-09-25 17:19:25 +0000 |
commit | f8ac52e520aa5e20a256a3fd9a649b461f3afeef (patch) | |
tree | 25198f6081892058a8ba46b838bfa1f14076c565 /composer/Song.cpp | |
parent | 2815cb8c2ff0edd77efcc071b65fed1e60c1c6bc (diff) |
rewrite in C++
svn path=/trunk/externals/ffext/; revision=12451
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]; +} |