X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fzone.cpp;h=00edb5799f6d4d9b49f481f7d7ef3f76113666ce;hb=73edcbd8841752a2722fc8b3927fee2abbbba750;hp=dc0bf6ec30283a18897aadadce339f1171af94f7;hpb=d15ac13f2e170f155b4bbd124df48400c339b644;p=r2c2.git diff --git a/source/libr2c2/zone.cpp b/source/libr2c2/zone.cpp index dc0bf6e..00edb57 100644 --- a/source/libr2c2/zone.cpp +++ b/source/libr2c2/zone.cpp @@ -1,4 +1,4 @@ -#include +#include #include "block.h" #include "layout.h" #include "track.h" @@ -10,7 +10,7 @@ using namespace Msp; namespace R2C2 { Zone::Zone(Layout &l): - layout(l), + TrackChain(l), number(0) { layout.add_zone(*this); @@ -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)