class TrackChain: public sigc::trackable
{
public:
+ enum Direction
+ {
+ UNSPECIFIED,
+ UP,
+ DOWN
+ };
+
typedef std::set<Track *> TrackSet;
protected:
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;
+ virtual TrackIter get_end(Direction) const { return get_end(0); }
bool is_loop() const;
private:
virtual Msp::DataFile::Statement save_reference() const = 0;
};
+
+void operator<<(Msp::LexicalConverter &, TrackChain::Direction);
+void operator>>(const Msp::LexicalConverter &, TrackChain::Direction &);
+
} // namespace R2C2
#endif