]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackchain.h
Support directionality for zones
[r2c2.git] / source / libr2c2 / trackchain.h
index 7d3c518a92842aa076350b701182b7fd6054df86..7102e5659445062765793ac5d349894f36a649db 100644 (file)
@@ -23,6 +23,13 @@ public:
 class TrackChain: public sigc::trackable
 {
 public:
+       enum Direction
+       {
+               UNSPECIFIED,
+               UP,
+               DOWN
+       };
+
        typedef std::set<Track *> TrackSet;
 
 protected:
@@ -63,6 +70,8 @@ private:
 public:
        const TrackSet &get_tracks() const { return tracks; }
        bool has_track(Track &) const;
+       virtual TrackIter iter_for(Track &, Direction) const;
+       TrackIter get_end(unsigned) const;
        bool is_loop() const;
 
 private:
@@ -72,6 +81,10 @@ public:
        virtual Msp::DataFile::Statement save_reference() const = 0;
 };
 
+
+void operator<<(Msp::LexicalConverter &, TrackChain::Direction);
+void operator>>(const Msp::LexicalConverter &, TrackChain::Direction &);
+
 } // namespace R2C2
 
 #endif