diff options
| author | Werner Schweer <ws.seh.de> | 2006-10-10 19:45:36 +0000 | 
|---|---|---|
| committer | Werner Schweer <ws.seh.de> | 2006-10-10 19:45:36 +0000 | 
| commit | dfcdd87e921dba40a341be45362f6394bc2650fe (patch) | |
| tree | ec2f1c08aa04759bc2d603af8b086bdb79123f49 | |
| parent | cc6d6734050893289e3fa107a5e2e203d18899a8 (diff) | |
aux send updates II
| -rw-r--r-- | muse/muse/route.cpp | 48 | ||||
| -rw-r--r-- | muse/muse/route.h | 9 | ||||
| -rw-r--r-- | muse/muse/track.cpp | 7 | 
3 files changed, 57 insertions, 7 deletions
| diff --git a/muse/muse/route.cpp b/muse/muse/route.cpp index 5e474695..3b132bc4 100644 --- a/muse/muse/route.cpp +++ b/muse/muse/route.cpp @@ -122,6 +122,13 @@ Route::Route(Track* tr, RouteType t)        type    = t;        } +Route::Route(Track* tr) +      { +      track   = tr; +      channel = -1; +      type    = TRACK; +      } +  Route::Route(Track* tr, int ch, RouteType t)        {        track   = tr; @@ -315,6 +322,7 @@ QString Route::name() const              case MIDIPORT:                    return midiDriver->portName(port);              } +      return QString("?");        }  //--------------------------------------------------------- @@ -458,9 +466,45 @@ const char* Route::tname() const  //   write  //--------------------------------------------------------- -void Route::write(Xml& xml, const char* name) +void Route::write(Xml& xml, const char* label) const        {        xml.put("<%s type=\"%s\" channel=\"%d\" stream=\"%d\" name=\"%s\"\>",  -         name, tname(), channel + 1, stream,  name().toUtf8().data()); +         label, tname(), channel + 1, stream,  name().toUtf8().data()); +      } + +//--------------------------------------------------------- +//   write +//--------------------------------------------------------- + +void Route::write(Xml& xml, const char* label, const Track* track) +      { +//      xml.put("<%s type=\"%s\" channel=\"%d\" stream=\"%d\" name=\"%s\"\>",  +//         label, tname(), channel + 1, stream,  name().toUtf8().data()); +      } + +//--------------------------------------------------------- +//   read +//--------------------------------------------------------- + +void Route::read(QDomNode node) +      { +      QDomElement e = node.toElement(); +      QString st = e.attribute("type", "TRACK"); +      if (st == "TRACK") +            type = Route::TRACK; +      else if (st == "AUDIOPORT") +            type = Route::AUDIOPORT; +      else if (st == "MIDIPORT") +            type = Route::MIDIPORT; +      else if (st == "SYNTIPORT") +            type = Route::SYNTIPORT; +      else { +            printf("Route::read(): unknown type <%s>\n", st.toLatin1().data()); +            type = Route::TRACK; +            } +      channel = e.attribute("channel","0").toInt() - 1; +      stream  = e.attribute("stream", "0").toInt(); +      QString nm = e.attribute("name");        } + diff --git a/muse/muse/route.h b/muse/muse/route.h index 37f0ea05..fe862041 100644 --- a/muse/muse/route.h +++ b/muse/muse/route.h @@ -22,6 +22,12 @@  #define __ROUTE_H__  class Track; +namespace AL { +      class Xml; +      }; +using AL::Xml; + +  typedef void* Port;  //--------------------------------------------------------- @@ -47,7 +53,8 @@ struct Route {        Route(Track*, int, RouteType);        QString name() const;        void read(QDomNode node); -      void write(Xml&, const char* name); +      void write(Xml&, const char* name) const; +      static void write(Xml&, const char* name, const Track*);        bool operator==(const Route& a) const;        bool isValid() const { return track != 0; } diff --git a/muse/muse/track.cpp b/muse/muse/track.cpp index aebb851d..dbf90c84 100644 --- a/muse/muse/track.cpp +++ b/muse/muse/track.cpp @@ -669,17 +669,16 @@ void Track::writeRouting(Xml& xml) const              for (ciRoute r = rl->begin(); r != rl->end(); ++r) {                    Route dst(name(), r->channel, Route::TRACK);                    xml.tag("Route"); -                  xml.put("<src type=\"%s\" name=\"%s\"\>", +                  xml.put("<src type=\"%s\" name=\"%s\"/>",                       Route::tname(rt), r->name().toLatin1().data()); -                  xml.put("<dst type=\"TRACK\" name=\"%s\"\>",  +                  xml.put("<dst type=\"TRACK\" name=\"%s\"/>",                        dst.name().toLatin1().data());                    xml.etag("Route");                    }              }        for (ciRoute r = _outRoutes.begin(); r != _outRoutes.end(); ++r) {              xml.tag("Route"); -            Route src(this); -            src->write(xml, "src"); +            Route::write(xml, "src", this);              r->write(xml, "dst");              xml.etag("Route");              } | 
