#include <set>
#include <stdexcept>
#include <sigc++/trackable.h>
+#include <msp/datafile/statement.h>
#include "trackiter.h"
namespace R2C2 {
};
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];
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:
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