]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackchain.h
Also use TrackChains as target locations in Timetable
[r2c2.git] / source / libr2c2 / trackchain.h
index e73e23bd11309711b909a98803410c05d8bf399e..e2d6176f2c1733ff093975d39ef5afe132bbebc4 100644 (file)
@@ -4,6 +4,7 @@
 #include <set>
 #include <stdexcept>
 #include <sigc++/trackable.h>
+#include <msp/datafile/statement.h>
 #include "trackiter.h"
 
 namespace R2C2 {
@@ -33,7 +34,14 @@ protected:
                INCOMPATIBLE
        };
 
+public:
+       sigc::signal<void, const std::string &> signal_name_changed;
+       sigc::signal<void, Track &> signal_track_added;
+       sigc::signal<void, Track &> signal_track_removed;
+
+protected:
        Layout &layout;
+       std::string name;
        TrackSet tracks;
        TrackIter ends[2];
 
@@ -41,6 +49,9 @@ protected:
 public:
        virtual ~TrackChain() { }
 
+       virtual void set_name(const std::string &);
+       const std::string &get_name() const { return name; }
+
        void add_track(Track &);
        void add_tracks(const TrackSet &);
 protected:
@@ -55,6 +66,9 @@ public:
 
 private:
        void object_removed(Object &);
+
+public:
+       virtual Msp::DataFile::Statement save_reference() const = 0;
 };
 
 } // namespace R2C2