]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/zone.cpp
Improve the interface and algorithms of BlockAllocator
[r2c2.git] / source / libr2c2 / zone.cpp
index 4b95da54efb375053facd900ea705831a8e12dfc..72712a2f1d74a6d911faa967c01d948d4d133cbe 100644 (file)
@@ -1,11 +1,4 @@
-/* $Id$
-
-This file is part of R²C²
-Copyright © 2010  Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
-#include <msp/strings/formatter.h>
+#include <msp/strings/format.h>
 #include "block.h"
 #include "layout.h"
 #include "track.h"
@@ -53,7 +46,7 @@ string Zone::get_name() const
 void Zone::add_track(Track &track)
 {
        if(!is_valid(track))
-               throw InvalidParameterValue("Can't add track to zone");
+               throw logic_error("unconnected");
 
        tracks.insert(&track);
 }
@@ -77,7 +70,7 @@ bool Zone::add_tracks(const TrackSet &trks)
                if(!ok)
                {
                        if(first)
-                               throw InvalidParameterValue("Cound not add any tracks to zone");
+                               throw logic_error("unconnected");
                        return pending.empty();
                }
 
@@ -85,6 +78,11 @@ bool Zone::add_tracks(const TrackSet &trks)
        }
 }
 
+bool Zone::has_track(Track &t) const
+{
+       return tracks.count(&t);
+}
+
 void Zone::save(list<DataFile::Statement> &st) const
 {
        st.push_back((DataFile::Statement("group"), group));