aboutsummaryrefslogtreecommitdiff
path: root/composer/Song.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'composer/Song.hpp')
-rw-r--r--composer/Song.hpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/composer/Song.hpp b/composer/Song.hpp
new file mode 100644
index 0000000..ead7285
--- /dev/null
+++ b/composer/Song.hpp
@@ -0,0 +1,31 @@
+#ifndef COMPOSER_SONG_H_INCLUDED
+#define COMPOSER_SONG_H_INCLUDED
+
+#include <map>
+#include <string>
+
+#include <m_pd.h>
+
+#include "Track.hpp"
+
+using std::map;
+using std::string;
+
+class Song
+{
+private:
+ static map<string,Song *> byname;
+public:
+ static Song *byName(string songName);
+private:
+ string name;
+ map<string,Track *> tracks;
+protected:
+ Song(string songName);
+public:
+ void print();
+ Track *getTrackByName(string trackName);
+ inline const string &getName() {return name;}
+};
+
+#endif // COMPOSER_SONG_H_INCLUDED