X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.cpp;h=23b0ac9f093f3962507473f6258c082d3bb3245a;hb=42f767669d9fa699e1fd58a62548b62f5c93a87b;hp=28b178afff15107c470cacf16b2dc9cfb674e63e;hpb=ce29d0ccf89840c9581314301de0ea2b5b261c43;p=r2c2.git diff --git a/source/libr2c2/zone.cpp b/source/libr2c2/zone.cpp index 28b178a..23b0ac9 100644 --- a/source/libr2c2/zone.cpp +++ b/source/libr2c2/zone.cpp @@ -10,15 +10,15 @@ using namespace Msp; namespace R2C2 { Zone::Zone(Layout &l): - layout(l), + TrackChain(l), number(0) { - layout.add_zone(*this); + layout.add(*this); } Zone::~Zone() { - layout.remove_zone(*this); + layout.remove(*this); } void Zone::set_name(const string &g, const string &q, unsigned n) @@ -43,41 +43,6 @@ string Zone::get_name() const return result; } -void Zone::add_track(Track &track) -{ - if(!is_valid(track)) - throw InvalidParameterValue("Can't add track to zone"); - - tracks.insert(&track); -} - -bool Zone::add_tracks(const TrackSet &trks) -{ - TrackSet pending = trks; - bool first = true; - while(1) - { - bool ok = false; - for(TrackSet::const_iterator i=pending.begin(); i!=pending.end(); ++i) - if(is_valid(**i)) - { - tracks.insert(*i); - pending.erase(i); - ok = true; - break; - } - - if(!ok) - { - if(first) - throw InvalidParameterValue("Cound not add any tracks to zone"); - return pending.empty(); - } - - first = false; - } -} - void Zone::save(list &st) const { st.push_back((DataFile::Statement("group"), group)); @@ -94,19 +59,6 @@ void Zone::save(list &st) const st.push_back((DataFile::Statement("block"), *i)); } -bool Zone::is_valid(Track &t) const -{ - if(tracks.empty()) - return true; - - const vector &links = t.get_links(); - for(vector::const_iterator i=links.begin(); i!=links.end(); ++i) - if(*i && tracks.count(*i)) - return true; - - return false; -} - Zone::Loader::Loader(Zone &z): DataFile::ObjectLoader(z)