aboutsummaryrefslogtreecommitdiff
path: root/composer/Track.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'composer/Track.hpp')
-rw-r--r--composer/Track.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/composer/Track.hpp b/composer/Track.hpp
new file mode 100644
index 0000000..3bd2135
--- /dev/null
+++ b/composer/Track.hpp
@@ -0,0 +1,34 @@
+#ifndef COMPOSER_TRACK_H_INCLUDED
+#define COMPOSER_TRACK_H_INCLUDED
+
+#include <string>
+#include <vector>
+
+#include <m_pd.h>
+
+using std::string;
+using std::vector;
+
+class Song;
+class Pattern;
+
+class Track
+{
+public:
+ static Track *byName(string songName, string trackName);
+private:
+ string name;
+ vector<Pattern *> patterns;
+ Song *song;
+protected:
+ Track(Song *_song, string trackName);
+public:
+ void print();
+ void addPattern(int rows, int cols, string name);
+ Pattern *getPattern(int n);
+ inline unsigned int getPatternCount() {return patterns.size();}
+ inline Song *getSong() {return song;}
+ inline const string &getName() {return name;}
+};
+
+#endif // COMPOSER_TRACK_H_INCLUDED