]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackchain.h
Add a function to check if a track chain forms a loop
[r2c2.git] / source / libr2c2 / trackchain.h
index 0338bab2d9d0e2dfca079b4039cbcdb9e2f51cb6..7d3c518a92842aa076350b701182b7fd6054df86 100644 (file)
@@ -4,6 +4,7 @@
 #include <set>
 #include <stdexcept>
 #include <sigc++/trackable.h>
+#include <msp/datafile/statement.h>
 #include "trackiter.h"
 
 namespace R2C2 {
@@ -38,6 +39,7 @@ public:
        sigc::signal<void, Track &> signal_track_added;
        sigc::signal<void, Track &> signal_track_removed;
 
+protected:
        Layout &layout;
        std::string name;
        TrackSet tracks;
@@ -61,9 +63,13 @@ private:
 public:
        const TrackSet &get_tracks() const { return tracks; }
        bool has_track(Track &) const;
+       bool is_loop() const;
 
 private:
        void object_removed(Object &);
+
+public:
+       virtual Msp::DataFile::Statement save_reference() const = 0;
 };
 
 } // namespace R2C2