]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/route.h
Use IO::Serial in the Intellibox driver
[r2c2.git] / source / libr2c2 / route.h
index 4f5d0564934e665bbc86c9c7f0827965141e535e..5ea86be167781d3f4ca4b400b5f20bb3207c5a3c 100644 (file)
@@ -14,6 +14,26 @@ class Track;
 class TrackIter;
 class Zone;
 
+enum RouteValidityMask
+{
+       ROUTE_INVALID = 0,
+       ROUTE_LINKED = 1,
+       ROUTE_LINEAR = 2,
+       ROUTE_SMOOTH = 4,
+       ROUTE_VALID = 7
+};
+
+class bad_route: public std::logic_error
+{
+public:
+       bad_route(RouteValidityMask m): std::logic_error(get_message(m)) { }
+       virtual ~bad_route() throw() { }
+
+private:
+       static std::string get_message(RouteValidityMask);
+};
+
+
 class Route: public sigc::trackable
 {
 public:
@@ -60,7 +80,7 @@ public:
        bool has_track(Track &) const;
        void save(std::list<Msp::DataFile::Statement> &) const;
 private:
-       unsigned check_validity(Track &) const;
+       RouteValidityMask check_validity(Track &) const;
        void track_removed(Track &);
 
 public: