diff options
| author | Werner Schweer <ws.seh.de> | 2006-12-07 16:14:23 +0000 | 
|---|---|---|
| committer | Werner Schweer <ws.seh.de> | 2006-12-07 16:14:23 +0000 | 
| commit | 00b569445cf38f20f55602c8144bc04b9198a24b (patch) | |
| tree | ab2bbad73d7f6fafd154bd5eeeaa50bb07823061 | |
| parent | 0a1f84719373e027ff3e6a9e0f37b93d82eecc5e (diff) | |
xml lib updates
instrument editor updates
33 files changed, 349 insertions, 742 deletions
diff --git a/muse/ChangeLog b/muse/ChangeLog index dd698c7e..ce0fa10a 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,3 +1,5 @@ +07.12 (ws) +      - xml lib cleanups  06.12 (ng) deicsonze        - fix pitchbend        - fix some logarithm volume issues diff --git a/muse/al/marker.cpp b/muse/al/marker.cpp index 2a0a4a0a..5b4ef87c 100644 --- a/muse/al/marker.cpp +++ b/muse/al/marker.cpp @@ -61,9 +61,9 @@ void MarkerList::write(Xml& xml) const        for (ciMarker i = begin(); i != end(); ++i) {              const Marker& m = i->second;        	if (m.type() == TICKS) -            	xml.tagE("marker tick=\"%d\" name=\"%s\"", m.tick(), m.name().toLatin1().data()); +            	xml.tagE(QString("marker tick=\"%1\" name=\"%2\"").arg(m.tick()).arg(m.name()));        	else -            	xml.tagE("marker sample=\"%d\" name=\"%s\"", m.frame(), m.name().toLatin1().data()); +            	xml.tagE(QString("marker sample=\"%1\" name=\"%2\"").arg(m.frame()).arg(m.name()));              }        } diff --git a/muse/al/pos.cpp b/muse/al/pos.cpp index ffd29c3b..31770727 100644 --- a/muse/al/pos.cpp +++ b/muse/al/pos.cpp @@ -289,9 +289,9 @@ void Pos::setFrame(unsigned pos)  void Pos::write(Xml& xml, const char* name) const        {        if (_type == TICKS) -            xml.tagE("%s tick=\"%d\"", name, _tick); +            xml.tagE(QString("%1 tick=\"%2\"").arg(name).arg(_tick));        else -            xml.tagE("%s frame=\"%d\"", name, _frame); +            xml.tagE(QString("%1 frame=\"%2\"").arg(name).arg(_frame));        }  //--------------------------------------------------------- @@ -373,9 +373,9 @@ void Pos::dump(int /*n*/) const  void PosLen::write(Xml& xml, const char* name) const        {        if (type() == TICKS) -            xml.tagE("%s tick=\"%d\" len=\"%d\"", name, tick(), _lenTick); +            xml.tagE(QString("%1 tick=\"%2\" len=\"%3\"").arg(name).arg(tick()).arg(_lenTick));        else -            xml.tagE("%s sample=\"%d\" len=\"%d\"", name, frame(), _lenFrame); +            xml.tagE(QString("%1 sample=\"%2\" len=\"%3\"").arg(name).arg(frame()).arg(_lenFrame));        }  //--------------------------------------------------------- diff --git a/muse/al/sig.cpp b/muse/al/sig.cpp index 449cc624..d8672200 100644 --- a/muse/al/sig.cpp +++ b/muse/al/sig.cpp @@ -372,7 +372,7 @@ void SigList::read(QDomNode node)  void SigEvent::write(Xml& xml, int at) const        { -      xml.stag("sig at=\"%d\"", at); +      xml.stag(QString("sig at=\"%1\"").arg(at));        xml.tag("tick", tick);        xml.tag("nom", sig.z);        xml.tag("denom", sig.n); diff --git a/muse/al/tempo.cpp b/muse/al/tempo.cpp index 2d607db0..7d65c732 100644 --- a/muse/al/tempo.cpp +++ b/muse/al/tempo.cpp @@ -318,7 +318,7 @@ unsigned TempoList::frame2tick(unsigned frame, int* sn) const  void TempoList::write(Xml& xml) const        { -      xml.stag("tempolist fix=\"%d\"", _tempo); +      xml.stag(QString("tempolist fix=\"%1\"").arg(_tempo));        if (_globalTempo != 100)              xml.tag("globalTempo", _globalTempo);        for (ciTEvent i = begin(); i != end(); ++i) @@ -362,7 +362,7 @@ void TempoList::read(QDomNode node)  void TEvent::write(Xml& xml, int at) const        { -      xml.stag("tempo at=\"%d\"", at); +      xml.stag(QString("tempo at=\"%1\"").arg(at));        xml.tag("tick", tick);        xml.tag("val", tempo);        xml.etag("tempo"); diff --git a/muse/al/xml.cpp b/muse/al/xml.cpp index 121922a5..329b6c0e 100644 --- a/muse/al/xml.cpp +++ b/muse/al/xml.cpp @@ -55,47 +55,17 @@ void Xml::putLevel()  void Xml::header()        { -      *this << "<?xml version=\"1.0\" encoding=\"utf8\"?>\n"; +      *this << "<?xml version=\"1.0\" encoding=\"utf8\"?>" << endl;        }  //---------------------------------------------------------  //   put  //--------------------------------------------------------- -void Xml::put(const char* format, ...) +void Xml::put(const QString& s)        { -      va_list args; -      va_start(args, format);        putLevel(); -      char buffer[BS]; -      vsnprintf(buffer, BS, format, args); -      va_end(args); -    	*this << buffer; -      *this << '\n'; -      } - -//--------------------------------------------------------- -//   nput -//--------------------------------------------------------- - -void Xml::nput(const char* format, ...) -      { -      va_list args; -      va_start(args, format); -      char buffer[BS]; -      vsnprintf(buffer, BS, format, args); -    	*this << buffer; -      va_end(args); -      } - -//--------------------------------------------------------- -//   tdata -//--------------------------------------------------------- - -void Xml::tdata(const QString& s) -      { -      putLevel(); -      *this << s << endl; +    	*this << xmlString(s) << endl;        }  //--------------------------------------------------------- @@ -103,20 +73,6 @@ void Xml::tdata(const QString& s)  //    <mops attribute="value">  //--------------------------------------------------------- -void Xml::stag(const char* format, ...) -      { -      va_list args; -      va_start(args, format); -      putLevel(); -      *this << '<'; -      char buffer[BS]; -      vsnprintf(buffer, BS, format, args); -    	*this << buffer; -      va_end(args); -      *this << '>' << endl; -      ++level; -      } -  void Xml::stag(const QString& s)        {        putLevel(); @@ -140,19 +96,6 @@ void Xml::etag(const char* s)  //    <mops attribute="value"/>  //--------------------------------------------------------- -void Xml::tagE(const char* format, ...) -      { -      va_list args; -      va_start(args, format); -      putLevel(); -      *this << '<'; -      char buffer[BS]; -      vsnprintf(buffer, BS, format, args); -    	*this << buffer; -      va_end(args); -      *this << "/>" << endl; -      } -  void Xml::tagE(const QString& s)        {        putLevel(); @@ -162,67 +105,51 @@ void Xml::tagE(const QString& s)  void Xml::tag(const char* name, int val)        {        putLevel(); -      *this << "<" << name << ">" << val << "</" << name << ">\n"; +      *this << '<' << name << '>' << val << "</" << name << '>' << endl;        }  void Xml::tag(const char* name, unsigned val)        {        putLevel(); -      *this << "<" << name << ">" << val << "</" << name << ">\n"; +      *this << '<' << name << '>' << val << "</" << name << '>' << endl;        }  void Xml::tag(const char* name, float val)        {        putLevel(); -      *this << QString("<%1>%2</%3>\n").arg(name).arg(val).arg(name); +      *this << '<' << name << '>' << val << "</" << name << '>' << endl;        }  void Xml::tag(const char* name, const double& val)        {        putLevel(); -      QString s("<%1>%2</%3>\n"); -      *this << s.arg(name).arg(val).arg(name); +      *this << '<' << name << '>' << val << "</" << name << '>' << endl;        } -void Xml::tag(const char* name, const char* s) +void Xml::tag(const char* name, const QString& val)        { -      tag(name, QString(s)); +      putLevel(); +      *this << "<" << name << ">" << xmlString(val) << "</" << name << '>' << endl;        } -//--------------------------------------------------------- -//   colorTag -//--------------------------------------------------------- -  void Xml::tag(const char* name, const QColor& color)        {        putLevel(); -      char buffer[BS]; -      snprintf(buffer, BS, "<%s r=\"%d\" g=\"%d\" b=\"%d\" />\n", -	    name, color.red(), color.green(), color.blue()); -    	*this << buffer; +    	*this << QString("<%1 r=\"%2\" g=\"%3\" b=\"%4\"/>") +         .arg(name).arg(color.red()).arg(color.green()).arg(color.blue()) << endl;        } -//--------------------------------------------------------- -//   geometryTag -//--------------------------------------------------------- -  void Xml::tag(const char* name, const QWidget* g)        {        tag(name, QRect(g->pos(), g->size()));        } -//--------------------------------------------------------- -//   qrectTag -//--------------------------------------------------------- -  void Xml::tag(const char* name, const QRect& r)        {        putLevel();     	*this << "<" << name; -      char buffer[BS]; -      snprintf(buffer, BS, " x=\"%d\" y=\"%d\" w=\"%d\" h=\"%d\" />\n", -         r.x(), r.y(), r.width(), r.height()); -    	*this << buffer; +      *this << QString(" x=\"%1\" y=\"%2\" w=\"%3\" h=\"%4\"/>") +         .arg(r.x()).arg(r.y()).arg(r.width()).arg(r.height()) << endl;        }  //--------------------------------------------------------- @@ -241,18 +168,6 @@ QString Xml::xmlString(const QString& ss)        }  //--------------------------------------------------------- -//   strTag -//--------------------------------------------------------- - -void Xml::tag(const char* name, const QString& val) -      { -      putLevel(); -      *this << "<" << name << ">"; -      *this << xmlString(val) << "</" << name << ">\n"; -      } - - -//---------------------------------------------------------  //   readGeometry  //--------------------------------------------------------- @@ -304,11 +219,8 @@ void Xml::writeProperties(const QObject* o)                          {                      	QPoint p = v.toPoint();        			putLevel(); -   				*this << "<" << name; -                        char buffer[BS]; -      			snprintf(buffer, BS, " x=\"%d\" y=\"%d\" />\n", -         			   p.x(), p.y()); -    				*this << buffer; +   				*this << "<" << name << QString(" x=\"%1\" y=\"%2\" />") +         			   .arg(p.x()).arg(p.y()) << endl;                          }                          break; @@ -367,5 +279,33 @@ void readProperties(QObject* o, QDomNode node)        if (p.isWritable())              p.write(o, v);        } + +//--------------------------------------------------------- +//   dump +//--------------------------------------------------------- + +void Xml::dump(int len, const unsigned char* p) +      { +      putLevel(); +      int col = 0; +      setFieldWidth(5); +      setNumberFlags(numberFlags() | QTextStream::ShowBase); +      setIntegerBase(16); +      for (int i = 0; i < len; ++i, ++col) { +            if (col >= 16) { +                  setFieldWidth(0); +                  *this << endl; +                  col = 0; +                  putLevel(); +                  setFieldWidth(5); +                  } +            *this << (p[i] & 0xff); +            } +      if (col) +            *this << endl << dec; +      setFieldWidth(0); +      setIntegerBase(10); +      } +  } diff --git a/muse/al/xml.h b/muse/al/xml.h index 6208e8ee..85a125b9 100644 --- a/muse/al/xml.h +++ b/muse/al/xml.h @@ -28,7 +28,6 @@ namespace AL {  //---------------------------------------------------------  class Xml : public QTextStream { -      static const int BS = 2048;        int level;     public: @@ -38,27 +37,23 @@ class Xml : public QTextStream {        void header();        void putLevel(); -      void put(const char* format, ...); -      void nput(const char* format, ...); +      void put(const QString&); -      void stag(const char* format, ...);        void stag(const QString&);        void etag(const char*);        void tagE(const QString&); -      void tagE(const char* format, ...); -      void tdata(const QString&);        void tag(const char* name, int);        void tag(const char* name, unsigned);        void tag(const char* name, const double& val);        void tag(const char* name, float val); -      void tag(const char* name, const char* val);        void tag(const char* name, const QString& s);        void tag(const char* name, const QColor& color);        void tag(const char* name, const QWidget* g);        void tag(const char* name, const QRect& r); +      void dump(int n, const unsigned char*);        void writeProperties(const QObject*);        static QString xmlString(const QString&); diff --git a/muse/muse/arranger/arranger.cpp b/muse/muse/arranger/arranger.cpp index 66076089..7ca4bb1e 100644 --- a/muse/muse/arranger/arranger.cpp +++ b/muse/muse/arranger/arranger.cpp @@ -1026,12 +1026,12 @@ void Arranger::writeStatus(Xml& xml)        for (int i = 0; i < Track::TRACK_TYPES; ++i) {              TrGroupList* gl = &glist[i]; -            xml.stag("TrackConf type=\"%d\"", i); +            xml.stag(QString("TrackConf type=\"%1\"").arg(i));              for (iTrGroup ig = gl->begin(); ig != gl->end(); ++ig) {                    TrElementList& el = *ig;                    xml.stag("group");                    for (iTrElement ie = el.begin(); ie != el.end(); ++ie) -                        xml.tagE("element id=\"%d\"", (*ie)->id); +                        xml.tagE(QString("element id=\"%1\"").arg((*ie)->id));                    xml.etag("group");                    }              xml.etag("TrackConf"); diff --git a/muse/muse/conf.cpp b/muse/muse/conf.cpp index b926ddb5..e53ea2c5 100644 --- a/muse/muse/conf.cpp +++ b/muse/muse/conf.cpp @@ -433,9 +433,9 @@ void MusE::writeGlobalConfiguration(Xml& xml) const        xml.tag("mtctype", AL::mtcType);        xml.stag("mtcoffset"); -      xml.put("%02d:%02d:%02d:%02d:%02d", -        mtcOffset.h(), mtcOffset.m(), mtcOffset.s(), -        mtcOffset.f(), mtcOffset.sf()); +      xml.put(QString("%1:%2:%3:%4:%5") +        .arg(mtcOffset.h()).arg(mtcOffset.m()).arg(mtcOffset.s()) +        .arg(mtcOffset.f()).arg(mtcOffset.sf()));        xml.etag("mtcoffset");        xml.tag("extSync", extSyncFlag); @@ -503,9 +503,9 @@ void MusE::writeConfiguration(Xml& xml) const        xml.tag("mtctype", AL::mtcType);        xml.stag("mtcoffset"); -      xml.put("%02d:%02d:%02d:%02d:%02d", -        mtcOffset.h(), mtcOffset.m(), mtcOffset.s(), -        mtcOffset.f(), mtcOffset.sf()); +      xml.put(QString("%1:%2:%3:%4:%5") +        .arg(mtcOffset.h()).arg(mtcOffset.m()).arg(mtcOffset.s()) +        .arg(mtcOffset.f()).arg(mtcOffset.sf()));        xml.etag("mtcoffset");        xml.tag("extSync", extSyncFlag);        xml.tag("genMTCSync", genMTCSync); @@ -657,7 +657,7 @@ void MidiFileConfig::cancelClicked()  void MixerConfig::write(Xml& xml, const char* name)        { -      xml.stag("%s", name); +      xml.stag(QString(name));        xml.tag("geometry",       geometry);        xml.tag("showMidiTracks",   showMidiTracks);        xml.tag("showMidiSyntiPorts", showMidiSyntiPorts); diff --git a/muse/muse/ctrl.cpp b/muse/muse/ctrl.cpp index e6f6540b..bb1a7ac2 100644 --- a/muse/muse/ctrl.cpp +++ b/muse/muse/ctrl.cpp @@ -264,17 +264,19 @@ void Ctrl::write(Xml& xml)        {        QString s("controller id=\"%1\" name=\"%2\" cur=\"%3\" type=\"%4\" min=\"%5\" max=\"%6\" default=\"%7\""); +      QString cn = Xml::xmlString(_name); +        if (empty()) {              if (_type & INT) -                  xml.tagE(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data()); +                  xml.tagE(s.arg(id()).arg(cn).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data());              else -                  xml.tagE(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data()); +                  xml.tagE(s.arg(id()).arg(cn).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data());              return;              }        if (_type & INT) -            xml.stag(s.arg(id()).arg(_name).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data()); +            xml.stag(s.arg(id()).arg(cn).arg(curVal().i).arg(_type).arg(min.i).arg(max.i).arg(_default.i).toAscii().data());        else -            xml.stag(s.arg(id()).arg(_name).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data()); +            xml.stag(s.arg(id()).arg(cn).arg(curVal().f).arg(_type).arg(min.f).arg(max.f).arg(_default.f).toAscii().data());        int i = 0;        for (ciCtrlVal ic = begin(); ic != end(); ++ic) { @@ -285,23 +287,18 @@ void Ctrl::write(Xml& xml)              if (_type & LOG)                    val.f = (val.f <= -1000.0) ? 0.0f : pow(10.0f, val.f);              if (_type & INT) { -                  xml.nput("%d %d,", time, val.i); -                  } -            else { -                  QString fval,ttime; -                  fval.setNum(val.f); -                  ttime.setNum(time); -                  QString str=ttime + " "+ fval + ","; -                  xml.nput(str.toAscii().data()); +                  xml << time << ' ' << val.i << ',';                    } +            else +                  xml << time << ' ' << val.f << ',';              ++i;              if (i >= 4) { -                  xml.nput("\n"); +                  xml << endl;                    i = 0;                    }              }        if (i) -            xml.nput("\n"); +            xml << endl;        xml.etag("controller");        } diff --git a/muse/muse/instruments/editinstrument.cpp b/muse/muse/instruments/editinstrument.cpp index 0a39e66b..90400587 100644 --- a/muse/muse/instruments/editinstrument.cpp +++ b/muse/muse/instruments/editinstrument.cpp @@ -25,6 +25,9 @@  #include "al/xml.h"  #include "gconfig.h" +extern int string2sysex(const QString& s, unsigned char** data); +extern QString sysex2string(int len, unsigned char* data); +  //---------------------------------------------------------  //   EditInstrument  //--------------------------------------------------------- @@ -47,7 +50,7 @@ EditInstrument::EditInstrument(QWidget* parent)           SLOT(patchChanged(QTreeWidgetItem*, QTreeWidgetItem*)));        instrumentChanged(instrumentList->item(0), instrumentList->item(0));        connect(listController, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)), -         SLOT(controllerChanged(QListWidgetItem*))); +         SLOT(controllerChanged(QListWidgetItem*, QListWidgetItem*)));        connect(sysexList, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),           SLOT(sysexChanged(QListWidgetItem*, QListWidgetItem*)));        connect(instrumentName, SIGNAL(textChanged(const QString&)), SLOT(instrumentNameChanged(const QString&))); @@ -63,6 +66,8 @@ EditInstrument::EditInstrument(QWidget* parent)        connect(newController, SIGNAL(clicked()), SLOT(newControllerClicked()));        connect(deleteSysex, SIGNAL(clicked()), SLOT(deleteSysexClicked()));        connect(newSysex, SIGNAL(clicked()), SLOT(newSysexClicked())); + +      connect(ctrlType,SIGNAL(activated(int)), SLOT(ctrlTypeChanged(int)));        }  //--------------------------------------------------------- @@ -519,17 +524,17 @@ void EditInstrument::instrumentChanged(QListWidgetItem* sel, QListWidgetItem* ol        foreach(const SysEx* s, instrument->sysex()) {              QListWidgetItem* item = new QListWidgetItem(s->name); -            QVariant v = QVariant::fromValue((void*)item); +            QVariant v = QVariant::fromValue((void*)s);              item->setData(Qt::UserRole, v);              sysexList->addItem(item);              } -      if (!instrument->sysex().isEmpty()) { -            sysexList->setItemSelected(sysexList->item(0), true); -            sysexChanged(sysexList->item(0), 0); -            } + +      sysexList->setItemSelected(sysexList->item(0), true); +      sysexChanged(sysexList->item(0), 0); +        if (!cl->empty()) {              listController->setItemSelected(listController->item(0), true); -            controllerChanged(listController->item(0)); +            controllerChanged(listController->item(0), 0);              }        } @@ -548,18 +553,22 @@ void EditInstrument::patchChanged(QTreeWidgetItem* sel, QTreeWidgetItem* old)              if (p->name != patchNameEdit->text()) {                    p->name = patchNameEdit->text();                    instrument->setDirty(true); +printf("patch mod 1\n");                    }              if (p->hbank != spinBoxHBank->value()) {                    p->hbank = spinBoxHBank->value();                    instrument->setDirty(true); +printf("patch mod 2\n");                    }              if (p->lbank != spinBoxLBank->value()) {                    p->hbank = spinBoxHBank->value();                    instrument->setDirty(true); +printf("patch mod 3\n");                    }              if (p->prog != spinBoxProgram->value()) {                    p->prog = spinBoxProgram->value();                    instrument->setDirty(true); +printf("patch mod 4\n");                    }              // there is no logical xor in c++              bool a = p->typ & 1; @@ -604,39 +613,52 @@ void EditInstrument::patchChanged(QTreeWidgetItem* sel, QTreeWidgetItem* old)  //   controllerChanged  //--------------------------------------------------------- -void EditInstrument::controllerChanged(QListWidgetItem* sel) +void EditInstrument::controllerChanged(QListWidgetItem* sel, QListWidgetItem* old)        { +      if (old) { +            QListWidgetItem* item = instrumentList->currentItem(); +            if (item == 0) +                  return; +            MidiInstrument* instrument = (MidiInstrument*)item->data(Qt::UserRole).value<void*>(); +            MidiController* oc = (MidiController*)old->data(Qt::UserRole).value<void*>(); +            int ctrlH = spinBoxHCtrlNo->value(); +            int ctrlL = spinBoxLCtrlNo->value(); +            MidiController::ControllerType type = (MidiController::ControllerType)ctrlType->currentIndex(); +            int num = MidiController::genNum(type, ctrlH, ctrlL); + +            if (num != oc->num()) { +                  oc->setNum(num); +                  instrument->setDirty(true); +                  } +            if (spinBoxMin->value() != oc->minVal()) { +                  oc->setMinVal(spinBoxMin->value()); +                  instrument->setDirty(true); +                  } +            if (spinBoxMax->value() != oc->maxVal()) { +                  oc->setMaxVal(spinBoxMax->value()); +                  instrument->setDirty(true); +                  } +            if (spinBoxDefault->value() != oc->initVal()) { +                  oc->setInitVal(spinBoxDefault->value()); +                  instrument->setDirty(true); +                  } +            }        if (sel == 0 || sel->data(Qt::UserRole).value<void*>() == 0) {              // patchNameEdit->setText("");              return;              }        MidiController* c = (MidiController*)sel->data(Qt::UserRole).value<void*>();        entryName->setText(c->name()); -      MidiController::ControllerType type = c->type(); -      switch(type) { -            case MidiController::Controller7: -                  spinBoxHCtrlNo->setEnabled(false); -                  break; -            case MidiController::Controller14: -            case MidiController::RPN: -            case MidiController::NRPN: -            case MidiController::RPN14: -            case MidiController::NRPN14: -                  spinBoxHCtrlNo->setEnabled(true); -                  break; -            case MidiController::Pitch: -            case MidiController::Program: -            case MidiController::Velo: -                  break; -            } -        int ctrlH = (c->num() >> 8) & 0x7f;        int ctrlL = c->num() & 0x7f; -      spinBoxType->setCurrentIndex(int(type)); +      int type = int(c->type()); +      ctrlType->setCurrentIndex(type); +      ctrlTypeChanged(type);        spinBoxHCtrlNo->setValue(ctrlH);        spinBoxLCtrlNo->setValue(ctrlL);        spinBoxMin->setValue(c->minVal());        spinBoxMax->setValue(c->maxVal()); +      spinBoxDefault->setRange(c->minVal()-1, c->maxVal());        spinBoxDefault->setValue(c->initVal());        } @@ -655,12 +677,20 @@ void EditInstrument::sysexChanged(QListWidgetItem* sel, QListWidgetItem* old)              if (sysexName->text() != so->name) {                    so->name = sysexName->text();                    instrument->setDirty(true); +printf("sysex mod 1\n");                    }              if (sysexComment->toPlainText() != so->comment) {                    so->comment = sysexComment->toPlainText();                    instrument->setDirty(true); +printf("sysex mod 2\n"); +                  } +            unsigned char* data; +            int len = string2sysex(sysexData->toPlainText(), &data); +            if (so->dataLen != len || !memcmp(data, so->data, len)) { +                  delete so->data; +                  so->data = data; +                  so->dataLen = len;                    } -            // TODO: check hex values              }        if (sel == 0) {              sysexName->setText(""); @@ -674,9 +704,11 @@ void EditInstrument::sysexChanged(QListWidgetItem* sel, QListWidgetItem* old)        sysexName->setEnabled(true);        sysexComment->setEnabled(true);        sysexData->setEnabled(true); +        SysEx* sx = (SysEx*)sel->data(Qt::UserRole).value<void*>();        sysexName->setText(sx->name);        sysexComment->setText(sx->comment); +      sysexData->setText(sysex2string(sx->dataLen, sx->data));        }  //--------------------------------------------------------- @@ -710,3 +742,33 @@ bool EditInstrument::checkDirty(MidiInstrument* i)        return n == 2;        } +//--------------------------------------------------------- +//   ctrlTypeChanged +//--------------------------------------------------------- + +void EditInstrument::ctrlTypeChanged(int idx) +      { +      MidiController::ControllerType t = (MidiController::ControllerType)idx; +      switch (t) { +            case MidiController::RPN: +            case MidiController::NRPN: +            case MidiController::Controller7: +                  spinBoxHCtrlNo->setEnabled(false); +                  spinBoxLCtrlNo->setEnabled(true); +                  break; +            case MidiController::Controller14: +            case MidiController::RPN14: +            case MidiController::NRPN14: +                  spinBoxHCtrlNo->setEnabled(true); +                  spinBoxLCtrlNo->setEnabled(true); +                  break; +            case MidiController::Pitch: +            case MidiController::Program: +                  spinBoxHCtrlNo->setEnabled(false); +                  spinBoxLCtrlNo->setEnabled(false); +                  break; +            default: +                  break; +            }       +      } + diff --git a/muse/muse/instruments/editinstrument.h b/muse/muse/instruments/editinstrument.h index f1bd7766..1b38fb26 100644 --- a/muse/muse/instruments/editinstrument.h +++ b/muse/muse/instruments/editinstrument.h @@ -42,7 +42,7 @@ class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase {        virtual void fileSaveAs();        void instrumentChanged(QListWidgetItem*, QListWidgetItem*);        void patchChanged(QTreeWidgetItem*, QTreeWidgetItem*); -      void controllerChanged(QListWidgetItem* sel); +      void controllerChanged(QListWidgetItem*, QListWidgetItem*);        void sysexChanged(QListWidgetItem*, QListWidgetItem*);        void instrumentNameChanged(const QString&);        void deletePatchClicked(); @@ -53,6 +53,7 @@ class EditInstrument : public QMainWindow, public Ui::EditInstrumentBase {        void newControllerClicked();        void deleteSysexClicked();        void newSysexClicked(); +      void ctrlTypeChanged(int);     public:        EditInstrument(QWidget* parent = 0); diff --git a/muse/muse/instruments/editinstrument.ui b/muse/muse/instruments/editinstrument.ui index 2a7b525a..7c071290 100644 --- a/muse/muse/instruments/editinstrument.ui +++ b/muse/muse/instruments/editinstrument.ui @@ -25,7 +25,22 @@        <property name="orientation" >         <enum>Qt::Horizontal</enum>        </property> -      <widget class="QListWidget" name="instrumentList" /> +      <widget class="QListWidget" name="instrumentList" > +       <property name="sizePolicy" > +        <sizepolicy> +         <hsizetype>5</hsizetype> +         <vsizetype>7</vsizetype> +         <horstretch>0</horstretch> +         <verstretch>0</verstretch> +        </sizepolicy> +       </property> +       <property name="resizeMode" > +        <enum>QListView::Adjust</enum> +       </property> +       <property name="layoutMode" > +        <enum>QListView::Batched</enum> +       </property> +      </widget>        <widget class="QWidget" name="layoutWidget" >         <layout class="QVBoxLayout" >          <property name="margin" > @@ -57,7 +72,7 @@          <item>           <widget class="QTabWidget" name="tabWidget3" >            <property name="currentIndex" > -           <number>0</number> +           <number>1</number>            </property>            <widget class="QWidget" name="tab" >             <attribute name="title" > @@ -78,7 +93,7 @@                <widget class="QTreeWidget" name="patchView" >                 <property name="sizePolicy" >                  <sizepolicy> -                 <hsizetype>7</hsizetype> +                 <hsizetype>5</hsizetype>                   <vsizetype>7</vsizetype>                   <horstretch>0</horstretch>                   <verstretch>0</verstretch> @@ -479,7 +494,7 @@ handled like normal controllers.</string>                        <number>6</number>                       </property>                       <item> -                      <widget class="QComboBox" name="spinBoxType" > +                      <widget class="QComboBox" name="ctrlType" >                         <item>                          <property name="text" >                           <string>Controller-7Bit</string> @@ -624,7 +639,7 @@ handled like normal controllers.</string>                       <item>                        <widget class="QSpinBox" name="spinBoxMax" >                         <property name="maximum" > -                        <number>16384</number> +                        <number>8388607</number>                         </property>                         <property name="minimum" >                          <number>-16385</number> @@ -642,7 +657,14 @@ handled like normal controllers.</string>                        </widget>                       </item>                       <item> -                      <widget class="QSpinBox" name="spinBoxDefault" /> +                      <widget class="QSpinBox" name="spinBoxDefault" > +                       <property name="specialValueText" > +                        <string>??</string> +                       </property> +                       <property name="minimum" > +                        <number>-1</number> +                       </property> +                      </widget>                       </item>                      </layout>                     </item> @@ -734,12 +756,18 @@ handled like normal controllers.</string>                   <widget class="QListWidget" name="sysexList" >                    <property name="sizePolicy" >                     <sizepolicy> -                    <hsizetype>1</hsizetype> +                    <hsizetype>7</hsizetype>                      <vsizetype>7</vsizetype>                      <horstretch>0</horstretch>                      <verstretch>0</verstretch>                     </sizepolicy>                    </property> +                  <property name="resizeMode" > +                   <enum>QListView::Adjust</enum> +                  </property> +                  <property name="uniformItemSizes" > +                   <bool>true</bool> +                  </property>                   </widget>                  </item>                 </layout> diff --git a/muse/muse/instruments/minstrument.cpp b/muse/muse/instruments/minstrument.cpp index 3e353a13..e4044056 100644 --- a/muse/muse/instruments/minstrument.cpp +++ b/muse/muse/instruments/minstrument.cpp @@ -34,19 +34,57 @@ MidiInstrument* genericMidiInstrument;  //   string2sysex  //--------------------------------------------------------- -int string2sysex(const QString&, unsigned char** data) +int string2sysex(const QString& s, unsigned char** data)        { -      *data = 0; -      return 0; +      const char* src = s.toLatin1().data(); +      char buffer[2048]; +      char* dst = buffer; + +      while (*src) { +            while (*src == ' ' || *src == '\n') +                  ++src; +            char* ep; +            long val = strtol(src, &ep, 16); +            if (ep == src) { +                  QMessageBox::information(0, +                     QString("MusE"), +                     QWidget::tr("Cannot convert sysex string")); +                  return 0; +                  } +            src    = ep; +            *dst++ = val; +            if (dst - buffer >= 2048) { +                  QMessageBox::information(0, +                     QString("MusE"), +                     QWidget::tr("Hex String too long (2048 bytes limit)")); +                  return 0; +                  } +            } +      int len = dst - buffer; +      unsigned char* b = new unsigned char[len+1]; +      memcpy(b, buffer, len); +      b[len] = 0; +      *data = b; +      return len;        }  //---------------------------------------------------------  //   sysex2string  //--------------------------------------------------------- -QString sysex2string(int, unsigned char*) +QString sysex2string(int len, unsigned char* data)        { -      return QString("");       +      QString d; +      QString s; +      for (int i = 0; i < len; ++i) { +            if ((i > 0) && ((i % 8)==0)) { +                  d += "\n"; +                  } +            else if (i) +                  d += " "; +            d += s.sprintf("%02x", data[i]); +            } +      return d;        }  //--------------------------------------------------------- @@ -321,14 +359,14 @@ void Patch::read(QDomNode node, bool dr, MidiInstrument* instrument)  void Patch::write(Xml& xml)        {        if (drumMap == 0) { -            QString s = QString("Patch name=\"%1\"").arg(name); +            QString s = QString("Patch name=\"%1\"").arg(Xml::xmlString(name));              if (typ != -1)                    s += QString(" mode=\"%d\"").arg(typ);              s += QString(" hbank=\"%1\" lbank=\"%2\" prog=\"%3\"").arg(hbank).arg(lbank).arg(prog);              xml.tagE(s);              return;              } -      QString s = QString("drummap name=\"%1\"").arg(name); +      QString s = QString("drummap name=\"%1\"").arg(Xml::xmlString(name));        s += QString(" hbank=\"%1\" lbank=\"%2\" prog=\"%3\"").arg(hbank).arg(lbank).arg(prog);        xml.stag(s);        for (int i = 0; i < DRUM_MAPSIZE; ++i) { @@ -559,14 +597,14 @@ void MidiInstrument::write(Xml& xml)        {        xml.header();        xml.stag("muse version=\"2.1\""); -      xml.stag("MidiInstrument name=\"%s\"", iname().toUtf8().data()); +      xml.stag(QString("MidiInstrument name=\"%1\"").arg(Xml::xmlString(iname())));        foreach(const QString& s, _categories) -            xml.tagE("Category name=\"%s\"", s.toUtf8().data()); +            xml.tagE(QString("Category name=\"%1\"").arg(Xml::xmlString(s)));        std::vector<PatchGroup>* pg = groups();        for (std::vector<PatchGroup>::iterator g = pg->begin(); g != pg->end(); ++g) { -            xml.stag("PatchGroup name=\"%s\"", g->name.toUtf8().data()); +            xml.stag(QString("PatchGroup name=\"%1\"").arg(Xml::xmlString(g->name)));              for (iPatch p = g->patches.begin(); p != g->patches.end(); ++p)                    (*p)->write(xml);              xml.etag("PatchGroup"); diff --git a/muse/muse/midictrl.cpp b/muse/muse/midictrl.cpp index b9a629d5..409316d9 100644 --- a/muse/muse/midictrl.cpp +++ b/muse/muse/midictrl.cpp @@ -245,8 +245,8 @@ void MidiController::write(Xml& xml) const        else              sl.setNum(l); -      xml.tagE("Controller name=\"%s\" type=\"%s\" h=\"%d\" l=\"%s\" min=\"%d\" max\"%d\" init=\"%d\"", -         _name.toLatin1().data(), type.toLatin1().data(), h, sl.toLatin1().data(), _minVal, _maxVal, _initVal); +      xml.tagE(QString("Controller name=\"%1\" type=\"%2\" h=\"%3\" l=\"%4\" min=\"%5\" max\"%6\" init=\"%7\"") +         .arg(Xml::xmlString(_name)).arg(type).arg(h).arg(sl).arg(_minVal).arg(_maxVal).arg(_initVal));        }  //--------------------------------------------------------- @@ -330,3 +330,33 @@ MidiController::ControllerType MidiController::type() const        return midiControllerType(num());         } +//--------------------------------------------------------- +//   genNum +//--------------------------------------------------------- + + +int MidiController::genNum(MidiController::ControllerType t, int h, int l) +      { +      int val = (h << 8) + l; +      switch(t) { +            case Controller7: +                  return l; +            case Controller14: +                  return val + CTRL_14_OFFSET; +            case RPN: +                  return l + CTRL_RPN_OFFSET; +            case NRPN: +                  return l + CTRL_NRPN_OFFSET; +            case RPN14: +                  return val + CTRL_RPN14_OFFSET; +            case NRPN14: +                  return val + CTRL_NRPN14_OFFSET; +            case Pitch: +                  return CTRL_PITCH; +            case Program: +                  return CTRL_PROGRAM; +            default: +                  return -1; +            }       +      } + diff --git a/muse/muse/midictrl.h b/muse/muse/midictrl.h index 067aad6a..4ffaa017 100644 --- a/muse/muse/midictrl.h +++ b/muse/muse/midictrl.h @@ -132,6 +132,7 @@ class MidiController {        void setMinVal(int val)             { _minVal = val;   }        void setMaxVal(int val)             { _maxVal = val;   }        ControllerType type() const; +      static int genNum(ControllerType, int, int);        };  //--------------------------------------------------------- diff --git a/muse/muse/midiedit/drummap.cpp b/muse/muse/midiedit/drummap.cpp index 2e15786b..978c7dab 100644 --- a/muse/muse/midiedit/drummap.cpp +++ b/muse/muse/midiedit/drummap.cpp @@ -187,7 +187,7 @@ void DrumMapEntry::read(QDomNode n)                    break;                    }              } -      if (anote = -1) +      if (anote == -1)              anote = enote;        } diff --git a/muse/muse/midiedit/midieditor.cpp b/muse/muse/midiedit/midieditor.cpp index 4b7fd60b..d004ef29 100644 --- a/muse/muse/midiedit/midieditor.cpp +++ b/muse/muse/midiedit/midieditor.cpp @@ -195,7 +195,7 @@ void MidiEditor::writePartList(Xml& xml) const              int trkIdx   = song->tracks()->indexOf(track);              int partIdx  = track->parts()->index(part);              xml.stag("part"); -            xml.put("%d:%d", trkIdx, partIdx); +            xml.put(QString("%1:%2").arg(trkIdx).arg(partIdx));              xml.etag("part");              }        } @@ -417,8 +417,8 @@ void MidiEditor::write(Xml& xml) const        xml.writeProperties(this);        const CtrlEditList* el = canvas()->getCtrlEditors();        for (ciCtrlEdit i = el->begin(); i != el->end(); ++i) { -            xml.tagE("CtrlEdit h=\"%d\" id=\"%d\"", -               (*i)->height(), (*i)->ctrl()->id()); +            xml.tagE(QString("CtrlEdit h=\"%1\" id=\"%2\"") +               .arg((*i)->height()).arg((*i)->ctrl()->id()));              }        xml.etag(metaObject()->className());        } diff --git a/muse/muse/midieventbase.cpp b/muse/muse/midieventbase.cpp index c98fa6ec..f37649d8 100644 --- a/muse/muse/midieventbase.cpp +++ b/muse/muse/midieventbase.cpp @@ -100,21 +100,8 @@ void MidiEventBase::write(Xml& xml, const Pos& offset) const              }        if (edata.dataLen) {              s += QString(" datalen=\"%1\"").arg(edata.dataLen); -            xml.stag(s.toLatin1().data()); -            QString data; - -            int col = 0; -            xml.putLevel(); -            for (int i = 0; i < edata.dataLen; ++i, ++col) { -                  if (col >= 16) { -                        xml.put(""); -                        col = 0; -                        xml.putLevel(); -                        } -                  xml.nput("%02x ", edata.data[i] & 0xff); -                  } -            if (col) -                  xml.put(""); +            xml.stag(s); +            xml.dump(edata.dataLen, edata.data);              xml.etag("event");              }        else { @@ -124,7 +111,7 @@ void MidiEventBase::write(Xml& xml, const Pos& offset) const                    s += QString(" b=\"%1\"").arg(b);              if (c)                    s += QString(" c=\"%1\"").arg(c); -            xml.tagE(s.toLatin1().data()); +            xml.tagE(s);              }        } diff --git a/muse/muse/midiplugin.cpp b/muse/muse/midiplugin.cpp index 22dda972..1d13828d 100644 --- a/muse/muse/midiplugin.cpp +++ b/muse/muse/midiplugin.cpp @@ -417,8 +417,8 @@ void MidiPluginI::apply(unsigned from, unsigned to, MidiEventList* il, MidiEvent  void MidiPluginI::writeConfiguration(Xml& xml)        { -      xml.stag("midiPlugin file=\"%s\" name=\"%s\"", -         _plugin->lib().toLatin1().data(), _plugin->name().toLatin1().data()); +      xml.stag(QString("midiPlugin file=\"%1\" name=\"%2\"") +         .arg(_plugin->lib()).arg(_plugin->name()));        if (_on == false)              xml.tag("on", _on);        if (mempi->hasGui()) { @@ -439,19 +439,8 @@ void MidiPluginI::writeConfiguration(Xml& xml)        const unsigned char* p;        mempi->getInitData(&len, &p);        if (len) { -            xml.stag("init len=\"%d\"", len); -            int col = 0; -            xml.putLevel(); -            for (int i = 0; i < len; ++i, ++col) { -                  if (col >= 16) { -                        xml.put(""); -                        col = 0; -                        xml.putLevel(); -                        } -                  xml.nput("%02x ", p[i] & 0xff); -                  } -            if (col) -                  xml.put(""); +            xml.stag(QString("init len=\"%1\"").arg(len)); +            xml.dump(len, p);              xml.etag("init");              }        xml.etag("midiPlugin"); diff --git a/muse/muse/midirc.cpp b/muse/muse/midirc.cpp index 20e530b4..14b69d55 100644 --- a/muse/muse/midirc.cpp +++ b/muse/muse/midirc.cpp @@ -165,12 +165,12 @@ void MidiRCList::write(Xml& xml)        {        xml.stag("midiRC");        for (iMidiRC i = begin(); i != end(); ++i) { -            xml.stag("action id=\"%d\"", i->action); +            xml.stag(QString("action id=\"%1\"").arg(i->action));              if (i->event.type() == ME_NOTEON) -                  xml.stag("noteOn pitch=\"%d\"", i->event.dataA()); +                  xml.stag(QString("noteOn pitch=\"%1\"").arg(i->event.dataA()));              else if (i->event.type() == ME_CONTROLLER) -                  xml.stag("controller no=\"%d\" val=\"%d\"", -                     i->event.dataA(), i->event.dataB()); +                  xml.stag(QString("controller no=\"%1\" val=\"%2\"") +                     .arg(i->event.dataA()).arg(i->event.dataB()));              else                    printf("remote event type %d not supported\n", i->event.type());              xml.etag("action"); diff --git a/muse/muse/midisynti.cpp b/muse/muse/midisynti.cpp index 0aa695ce..b53693af 100644 --- a/muse/muse/midisynti.cpp +++ b/muse/muse/midisynti.cpp @@ -112,19 +112,8 @@ void MidiSynti::write(Xml& xml) const        const unsigned char* p;        _synti->getInitData(&len, &p);        if (len) { -            xml.stag("init len=\"%d\"", len); -            int col = 0; -            xml.putLevel(); -            for (int i = 0; i < len; ++i, ++col) { -                  if (col >= 16) { -                        xml.put(""); -                        col = 0; -                        xml.putLevel(); -                        } -                  xml.nput("%02x ", p[i] & 0xff); -                  } -            if (col) -                  xml.put(""); +            xml.stag(QString("init len=\"%1\"").arg(len)); +            xml.dump(len, p);              xml.etag("init");              }        xml.etag("MidiSynti"); diff --git a/muse/muse/mixer/mixer.cpp b/muse/muse/mixer/mixer.cpp index f7116d43..d4835bba 100644 --- a/muse/muse/mixer/mixer.cpp +++ b/muse/muse/mixer/mixer.cpp @@ -372,7 +372,7 @@ void Mixer::showTracksChanged(QAction* id)  void Mixer::write(Xml& xml, const char* name)        { -      xml.stag("%s", name); +      xml.stag(QString(name));        xml.tag("geometry",       geometry());        xml.tag("showMidiTracks",   cfg->showMidiTracks);        xml.tag("showOutputTracks", cfg->showOutputTracks); diff --git a/muse/muse/part.cpp b/muse/muse/part.cpp index 30daed4f..419c72bb 100644 --- a/muse/muse/part.cpp +++ b/muse/muse/part.cpp @@ -210,7 +210,7 @@ void Part::write(Xml& xml)              }        if (id != -1) -            xml.stag("part cloneId=\"%d\"", id); +            xml.stag(QString("part cloneId=\"%1\"").arg(id));        else              xml.stag("part");        if (!_name.isEmpty()) @@ -227,8 +227,7 @@ void Part::write(Xml& xml)        if (_xmag != -1.0)              xml.tag("xmag", _xmag);        for (ciCtrlCanvas i = ctrlCanvasList.begin(); i != ctrlCanvasList.end(); ++i) -            xml.tagE("CtrlCanvas h=\"%d\" id=\"%d\"", -               i->height, i->ctrlId); +            xml.tagE(QString("CtrlCanvas h=\"%1\" id=\"%2\"").arg(i->height).arg(i->ctrlId));        if (_fillLen)              xml.tag("fillLen", _fillLen);        if (_mute) diff --git a/muse/muse/plugin.cpp b/muse/muse/plugin.cpp index 4703d15e..eb8d9160 100644 --- a/muse/muse/plugin.cpp +++ b/muse/muse/plugin.cpp @@ -308,11 +308,11 @@ void PluginI::writeConfiguration(Xml& xml, bool prefader)  void PluginI::writeConfiguration1(Xml& xml, bool prefader)        { -      xml.stag("plugin pre=\"%d\" file=\"%s\" label=\"%s\" channel=\"%d\"", -         prefader,  -         _plugin->lib().toLatin1().data(),  -         _plugin->label().toLatin1().data(),  -         _channel); +      xml.stag(QString("plugin pre=\"%1\" file=\"%2\" label=\"%3\" channel=\"%4\"") +         .arg(prefader) +         .arg(_plugin->lib()) +         .arg(_plugin->label()) +         .arg(_channel));  //         instances * _plugin->inports());        if (_on == false)              xml.tag("on", _on); diff --git a/muse/muse/route.cpp b/muse/muse/route.cpp index 127a2f4c..7808a088 100644 --- a/muse/muse/route.cpp +++ b/muse/muse/route.cpp @@ -345,11 +345,11 @@ const char* RouteNode::tname() const  void RouteNode::write(Xml& xml, const char* label) const        {        if (channel != -1) -            xml.put("<%s type=\"%s\" channel=\"%d\" name=\"%s\"/>",  -               label, tname(), channel + 1, name().toUtf8().data()); +            xml.put(QString("<%1 type=\"%2\" channel=\"%3\" name=\"%4\"/>") +               .arg(label).arg(tname()).arg(channel + 1).arg(name()));        else -            xml.put("<%s type=\"%s\" name=\"%s\"/>",  -               label, tname(), name().toUtf8().data()); +            xml.put(QString("<%1 type=\"%2\" name=\"%3\"/>") +               .arg(label).arg(tname()).arg(name()));        }  //--------------------------------------------------------- diff --git a/muse/muse/synth.cpp b/muse/muse/synth.cpp index 208b24f4..1701c6df 100644 --- a/muse/muse/synth.cpp +++ b/muse/muse/synth.cpp @@ -401,19 +401,9 @@ void MessSynthIF::write(Xml& xml) const        _mess->getInitData(&len, &p);        if (len) {              xml.stag("midistate"); -            xml.stag("event type=\"%d\" datalen=\"%d\"", Sysex, len); +            xml.stag(QString("event type=\"%1\" datalen=\"%2\"").arg(Sysex).arg(len));              int col = 0; -            xml.putLevel(); -            for (int i = 0; i < len; ++i, ++col) { -                  if (col >= 16) { -                        xml.put(""); -                        col = 0; -                        xml.putLevel(); -                        } -                  xml.nput("%02x ", p[i] & 0xff); -                  } -            if (col) -                  xml.put(""); +            xml.dump(len, p);              xml.etag("event");              xml.etag("midistate");              } @@ -583,8 +573,6 @@ bool MessSynthIF::putEvent(const MidiEvent& ev)                    printf("MidiOut<%s>", synti->name().toLatin1().data());                    ev.dump();                    } -if (rv) -      printf("SYNT BUSY\n");              }        return rv;        } diff --git a/muse/muse/waveedit/waveedit.cpp b/muse/muse/waveedit/waveedit.cpp index c54265a0..3bfbbe40 100644 --- a/muse/muse/waveedit/waveedit.cpp +++ b/muse/muse/waveedit/waveedit.cpp @@ -273,15 +273,15 @@ void WaveEdit::write(Xml& xml) const              int trkIdx   = song->tracks()->indexOf(track);              int partIdx  = track->parts()->index(part);              xml.stag("part"); -            xml.put("%d:%d", trkIdx, partIdx); +            xml.put(QString("%1:%2").arg(trkIdx).arg(partIdx));              xml.etag("part");              }        xml.stag(metaObject()->className());        xml.writeProperties(this);        const CtrlEditList* el = view->getCtrlEditors();        for (ciCtrlEdit i = el->begin(); i != el->end(); ++i) { -            xml.tagE("CtrlEdit h=\"%d\" id=\"%d\"", -               (*i)->height(), (*i)->ctrl()->id()); +            xml.tagE(QString("CtrlEdit h=\"%1\" id=\"%2\"") +               .arg((*i)->height()).arg((*i)->ctrl()->id()));              }        xml.etag(metaObject()->className());        } diff --git a/muse/muse/widgets/editsysexdialogbase.h b/muse/muse/widgets/editsysexdialogbase.h deleted file mode 100644 index b00b09b6..00000000 --- a/muse/muse/widgets/editsysexdialogbase.h +++ /dev/null @@ -1,203 +0,0 @@ -#ifndef EDITSYSEXDIALOGBASE_H -#define EDITSYSEXDIALOGBASE_H - -#include <qvariant.h> - - -#include <Qt3Support/Q3ListBox> -#include <Qt3Support/Q3TextEdit> -#include <QtCore/QVariant> -#include <QtGui/QAction> -#include <QtGui/QApplication> -#include <QtGui/QButtonGroup> -#include <QtGui/QDialog> -#include <QtGui/QHBoxLayout> -#include <QtGui/QLabel> -#include <QtGui/QPushButton> -#include <QtGui/QSpacerItem> -#include <QtGui/QVBoxLayout> -#include "awl/posedit.h" -#include <awl::posedit.h> -#include <Qt3Support/Q3MimeSourceFactory> - -class Ui_EditSysexDialogBase -{ -public: -    QVBoxLayout *vboxLayout; -    QHBoxLayout *hboxLayout; -    QVBoxLayout *vboxLayout1; -    QLabel *textLabel1; -    Q3ListBox *sysexList; -    QVBoxLayout *vboxLayout2; -    QHBoxLayout *hboxLayout1; -    QLabel *TextLabel1; -    Awl::PosEdit *pos; -    QSpacerItem *spacerItem; -    Q3TextEdit *edit; -    QLabel *TextLabel2; -    Q3TextEdit *comment; -    QHBoxLayout *hboxLayout2; -    QPushButton *buttonAdd; -    QSpacerItem *spacerItem1; -    QPushButton *buttonOk; -    QPushButton *buttonCancel; - -    void setupUi(QDialog *EditSysexDialogBase) -    { -    EditSysexDialogBase->setObjectName(QString::fromUtf8("EditSysexDialogBase")); -    EditSysexDialogBase->resize(QSize(667, 556).expandedTo(EditSysexDialogBase->minimumSizeHint())); -    EditSysexDialogBase->setSizeGripEnabled(true); -    vboxLayout = new QVBoxLayout(EditSysexDialogBase); -    vboxLayout->setSpacing(6); -    vboxLayout->setMargin(11); -    vboxLayout->setObjectName(QString::fromUtf8("vboxLayout")); -    hboxLayout = new QHBoxLayout(); -    hboxLayout->setSpacing(6); -    hboxLayout->setMargin(0); -    hboxLayout->setObjectName(QString::fromUtf8("hboxLayout")); -    vboxLayout1 = new QVBoxLayout(); -    vboxLayout1->setSpacing(6); -    vboxLayout1->setMargin(0); -    vboxLayout1->setObjectName(QString::fromUtf8("vboxLayout1")); -    textLabel1 = new QLabel(EditSysexDialogBase); -    textLabel1->setObjectName(QString::fromUtf8("textLabel1")); -    QSizePolicy sizePolicy((QSizePolicy::Policy)4, (QSizePolicy::Policy)5); -    sizePolicy.setHorizontalStretch(0); -    sizePolicy.setVerticalStretch(0); -    sizePolicy.setHeightForWidth(textLabel1->sizePolicy().hasHeightForWidth()); -    textLabel1->setSizePolicy(sizePolicy); - -    vboxLayout1->addWidget(textLabel1); - -    sysexList = new Q3ListBox(EditSysexDialogBase); -    sysexList->setObjectName(QString::fromUtf8("sysexList")); -    QSizePolicy sizePolicy1((QSizePolicy::Policy)4, (QSizePolicy::Policy)7); -    sizePolicy1.setHorizontalStretch(0); -    sizePolicy1.setVerticalStretch(0); -    sizePolicy1.setHeightForWidth(sysexList->sizePolicy().hasHeightForWidth()); -    sysexList->setSizePolicy(sizePolicy1); - -    vboxLayout1->addWidget(sysexList); - - -    hboxLayout->addLayout(vboxLayout1); - -    vboxLayout2 = new QVBoxLayout(); -    vboxLayout2->setSpacing(6); -    vboxLayout2->setMargin(0); -    vboxLayout2->setObjectName(QString::fromUtf8("vboxLayout2")); -    hboxLayout1 = new QHBoxLayout(); -    hboxLayout1->setSpacing(6); -    hboxLayout1->setMargin(0); -    hboxLayout1->setObjectName(QString::fromUtf8("hboxLayout1")); -    TextLabel1 = new QLabel(EditSysexDialogBase); -    TextLabel1->setObjectName(QString::fromUtf8("TextLabel1")); - -    hboxLayout1->addWidget(TextLabel1); - -    pos = new Awl::PosEdit(EditSysexDialogBase); -    pos->setObjectName(QString::fromUtf8("pos")); - -    hboxLayout1->addWidget(pos); - -    spacerItem = new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - -    hboxLayout1->addItem(spacerItem); - - -    vboxLayout2->addLayout(hboxLayout1); - -    edit = new Q3TextEdit(EditSysexDialogBase); -    edit->setObjectName(QString::fromUtf8("edit")); - -    vboxLayout2->addWidget(edit); - -    TextLabel2 = new QLabel(EditSysexDialogBase); -    TextLabel2->setObjectName(QString::fromUtf8("TextLabel2")); - -    vboxLayout2->addWidget(TextLabel2); - -    comment = new Q3TextEdit(EditSysexDialogBase); -    comment->setObjectName(QString::fromUtf8("comment")); - -    vboxLayout2->addWidget(comment); - - -    hboxLayout->addLayout(vboxLayout2); - - -    vboxLayout->addLayout(hboxLayout); - -    hboxLayout2 = new QHBoxLayout(); -    hboxLayout2->setSpacing(6); -    hboxLayout2->setMargin(0); -    hboxLayout2->setObjectName(QString::fromUtf8("hboxLayout2")); -    buttonAdd = new QPushButton(EditSysexDialogBase); -    buttonAdd->setObjectName(QString::fromUtf8("buttonAdd")); -    QSizePolicy sizePolicy2((QSizePolicy::Policy)1, (QSizePolicy::Policy)0); -    sizePolicy2.setHorizontalStretch(0); -    sizePolicy2.setVerticalStretch(0); -    sizePolicy2.setHeightForWidth(buttonAdd->sizePolicy().hasHeightForWidth()); -    buttonAdd->setSizePolicy(sizePolicy2); - -    hboxLayout2->addWidget(buttonAdd); - -    spacerItem1 = new QSpacerItem(350, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - -    hboxLayout2->addItem(spacerItem1); - -    buttonOk = new QPushButton(EditSysexDialogBase); -    buttonOk->setObjectName(QString::fromUtf8("buttonOk")); -    buttonOk->setAutoDefault(true); -    buttonOk->setDefault(true); - -    hboxLayout2->addWidget(buttonOk); - -    buttonCancel = new QPushButton(EditSysexDialogBase); -    buttonCancel->setObjectName(QString::fromUtf8("buttonCancel")); -    buttonCancel->setAutoDefault(true); - -    hboxLayout2->addWidget(buttonCancel); - - -    vboxLayout->addLayout(hboxLayout2); - -    retranslateUi(EditSysexDialogBase); - -    QMetaObject::connectSlotsByName(EditSysexDialogBase); -    } // setupUi - -    void retranslateUi(QDialog *EditSysexDialogBase) -    { -    EditSysexDialogBase->setWindowTitle(QApplication::translate("EditSysexDialogBase", "MusE: Enter SysEx", 0, QApplication::UnicodeUTF8)); -    textLabel1->setText(QApplication::translate("EditSysexDialogBase", "Known SysEx:", 0, QApplication::UnicodeUTF8)); -    TextLabel1->setText(QApplication::translate("EditSysexDialogBase", "TimePosition:", 0, QApplication::UnicodeUTF8)); -    TextLabel2->setText(QApplication::translate("EditSysexDialogBase", "Comment:", 0, QApplication::UnicodeUTF8)); -    buttonAdd->setText(QApplication::translate("EditSysexDialogBase", "Add", 0, QApplication::UnicodeUTF8)); -    buttonOk->setText(QApplication::translate("EditSysexDialogBase", "OK", 0, QApplication::UnicodeUTF8)); -    buttonOk->setShortcut(QApplication::translate("EditSysexDialogBase", "", 0, QApplication::UnicodeUTF8)); -    buttonCancel->setText(QApplication::translate("EditSysexDialogBase", "Cancel", 0, QApplication::UnicodeUTF8)); -    buttonCancel->setShortcut(QApplication::translate("EditSysexDialogBase", "", 0, QApplication::UnicodeUTF8)); -    Q_UNUSED(EditSysexDialogBase); -    } // retranslateUi - -}; - -namespace Ui { -    class EditSysexDialogBase: public Ui_EditSysexDialogBase {}; -} // namespace Ui - -class EditSysexDialogBase : public QDialog, public Ui::EditSysexDialogBase -{ -    Q_OBJECT - -public: -    EditSysexDialogBase(QWidget* parent = 0, const char* name = 0, bool modal = false, Qt::WFlags fl = 0); -    ~EditSysexDialogBase(); - -protected slots: -    virtual void languageChange(); - -}; - -#endif // EDITSYSEXDIALOGBASE_H diff --git a/muse/muse/widgets/editsysexdialogbase.ui b/muse/muse/widgets/editsysexdialogbase.ui deleted file mode 100644 index 227d2b16..00000000 --- a/muse/muse/widgets/editsysexdialogbase.ui +++ /dev/null @@ -1,236 +0,0 @@ -<ui version="4.0" > - <author></author> - <comment></comment> - <exportmacro></exportmacro> - <class>EditSysexDialogBase</class> - <widget class="QDialog" name="EditSysexDialogBase" > -  <property name="geometry" > -   <rect> -    <x>0</x> -    <y>0</y> -    <width>667</width> -    <height>556</height> -   </rect> -  </property> -  <property name="windowTitle" > -   <string>MusE: Enter SysEx</string> -  </property> -  <property name="sizeGripEnabled" > -   <bool>true</bool> -  </property> -  <layout class="QVBoxLayout" > -   <property name="margin" > -    <number>11</number> -   </property> -   <property name="spacing" > -    <number>6</number> -   </property> -   <item> -    <layout class="QHBoxLayout" > -     <property name="margin" > -      <number>0</number> -     </property> -     <property name="spacing" > -      <number>6</number> -     </property> -     <item> -      <layout class="QVBoxLayout" > -       <property name="margin" > -        <number>0</number> -       </property> -       <property name="spacing" > -        <number>6</number> -       </property> -       <item> -        <widget class="QLabel" name="textLabel1" > -         <property name="sizePolicy" > -          <sizepolicy> -           <hsizetype>4</hsizetype> -           <vsizetype>5</vsizetype> -           <horstretch>0</horstretch> -           <verstretch>0</verstretch> -          </sizepolicy> -         </property> -         <property name="text" > -          <string>Known SysEx:</string> -         </property> -        </widget> -       </item> -       <item> -        <widget class="Q3ListBox" name="sysexList" > -         <property name="sizePolicy" > -          <sizepolicy> -           <hsizetype>4</hsizetype> -           <vsizetype>7</vsizetype> -           <horstretch>0</horstretch> -           <verstretch>0</verstretch> -          </sizepolicy> -         </property> -        </widget> -       </item> -      </layout> -     </item> -     <item> -      <layout class="QVBoxLayout" > -       <property name="margin" > -        <number>0</number> -       </property> -       <property name="spacing" > -        <number>6</number> -       </property> -       <item> -        <layout class="QHBoxLayout" > -         <property name="margin" > -          <number>0</number> -         </property> -         <property name="spacing" > -          <number>6</number> -         </property> -         <item> -          <widget class="QLabel" name="TextLabel1" > -           <property name="text" > -            <string>TimePosition:</string> -           </property> -          </widget> -         </item> -         <item> -          <widget class="Awl::PosEdit" name="pos" /> -         </item> -         <item> -          <spacer> -           <property name="orientation" > -            <enum>Qt::Horizontal</enum> -           </property> -           <property name="sizeType" > -            <enum>QSizePolicy::Expanding</enum> -           </property> -           <property name="sizeHint" > -            <size> -             <width>20</width> -             <height>20</height> -            </size> -           </property> -          </spacer> -         </item> -        </layout> -       </item> -       <item> -        <widget class="Q3TextEdit" name="edit" /> -       </item> -       <item> -        <widget class="QLabel" name="TextLabel2" > -         <property name="text" > -          <string>Comment:</string> -         </property> -        </widget> -       </item> -       <item> -        <widget class="Q3TextEdit" name="comment" /> -       </item> -      </layout> -     </item> -    </layout> -   </item> -   <item> -    <layout class="QHBoxLayout" > -     <property name="margin" > -      <number>0</number> -     </property> -     <property name="spacing" > -      <number>6</number> -     </property> -     <item> -      <widget class="QPushButton" name="buttonAdd" > -       <property name="sizePolicy" > -        <sizepolicy> -         <hsizetype>1</hsizetype> -         <vsizetype>0</vsizetype> -         <horstretch>0</horstretch> -         <verstretch>0</verstretch> -        </sizepolicy> -       </property> -       <property name="text" > -        <string>Add</string> -       </property> -      </widget> -     </item> -     <item> -      <spacer> -       <property name="orientation" > -        <enum>Qt::Horizontal</enum> -       </property> -       <property name="sizeType" > -        <enum>QSizePolicy::Expanding</enum> -       </property> -       <property name="sizeHint" > -        <size> -         <width>350</width> -         <height>20</height> -        </size> -       </property> -      </spacer> -     </item> -     <item> -      <widget class="QPushButton" name="buttonOk" > -       <property name="text" > -        <string>OK</string> -       </property> -       <property name="shortcut" > -        <string/> -       </property> -       <property name="autoDefault" > -        <bool>true</bool> -       </property> -       <property name="default" > -        <bool>true</bool> -       </property> -      </widget> -     </item> -     <item> -      <widget class="QPushButton" name="buttonCancel" > -       <property name="text" > -        <string>Cancel</string> -       </property> -       <property name="shortcut" > -        <string/> -       </property> -       <property name="autoDefault" > -        <bool>true</bool> -       </property> -      </widget> -     </item> -    </layout> -   </item> -  </layout> - </widget> - <layoutdefault spacing="6" margin="11" /> - <pixmapfunction>qPixmapFromMimeSource</pixmapfunction> - <customwidgets> -  <customwidget> -   <class>Awl::PosEdit</class> -   <extends>QWidget</extends> -   <header>awl::posedit.h</header> -   <container>1</container> -   <pixmap></pixmap> -  </customwidget> -  <customwidget> -   <class>Q3TextEdit</class> -   <extends></extends> -   <header>q3textedit.h</header> -   <container>0</container> -   <pixmap></pixmap> -  </customwidget> -  <customwidget> -   <class>Q3ListBox</class> -   <extends></extends> -   <header>q3listbox.h</header> -   <container>0</container> -   <pixmap></pixmap> -  </customwidget> - </customwidgets> - <includes> -  <include location="local" >awl/posedit.h</include> - </includes> - <resources/> - <connections/> -</ui> diff --git a/muse/synti/deicsonze/deicsonze.cpp b/muse/synti/deicsonze/deicsonze.cpp index 05b388cd..db033da1 100644 --- a/muse/synti/deicsonze/deicsonze.cpp +++ b/muse/synti/deicsonze/deicsonze.cpp @@ -2111,12 +2111,12 @@ void DeicsOnze::writeConfiguration(AL::Xml* xml) {    //xml->intTag(NBRVOICESSTR, (int)_global.nbrVoices);    //xml->strTag(CHANNELNUMSTR, (_global.channelNum==-1?ALLSTR:    //                            str.setNum(_global.channelNum+1))); -  xml->tag(QUALITYSTR, (_global.quality==high?HIGHSTR: +  xml->tag(QUALITYSTR, QString((_global.quality==high?HIGHSTR:  			   (_global.quality==middle?MIDDLESTR: -			    (_global.quality==low?LOWSTR:ULTRALOWSTR)))); +			    (_global.quality==low?LOWSTR:ULTRALOWSTR)))));    xml->tag(FONTSIZESTR, _global.fontSize); -  xml->tag(SAVECONFIGSTR, (_saveConfig?YESSTRDEI:NOSTRDEI)); -  xml->tag(SAVEONLYUSEDSTR, (_saveOnlyUsed?YESSTRDEI:NOSTRDEI));   +  xml->tag(SAVECONFIGSTR, QString((_saveConfig?YESSTRDEI:NOSTRDEI))); +  xml->tag(SAVEONLYUSEDSTR, QString((_saveOnlyUsed?YESSTRDEI:NOSTRDEI)));    xml->tag(TEXTCOLORSTR,  		reinterpret_cast<const QColor &>(*_gui->tColor));    xml->tag(BACKGROUNDCOLORSTR, @@ -2125,10 +2125,10 @@ void DeicsOnze::writeConfiguration(AL::Xml* xml) {  		reinterpret_cast<const QColor &>(*_gui->etColor));    xml->tag(EDITBACKGROUNDCOLORSTR,  		reinterpret_cast<const QColor &>(*_gui->ebColor)); -  xml->tag(ISINITSETSTR, (_isInitSet?YESSTRDEI:NOSTRDEI)); -  xml->tag(INITSETPATHSTR, _initSetPath.toAscii().data()); -  xml->tag(ISBACKGROUNDPIXSTR, (_isBackgroundPix?YESSTRDEI:NOSTRDEI)); -  xml->tag(BACKGROUNDPIXPATHSTR, _backgroundPixPath.toAscii().data()); +  xml->tag(ISINITSETSTR, QString((_isInitSet?YESSTRDEI:NOSTRDEI))); +  xml->tag(INITSETPATHSTR, QString(_initSetPath)); +  xml->tag(ISBACKGROUNDPIXSTR, QString((_isBackgroundPix?YESSTRDEI:NOSTRDEI))); +  xml->tag(BACKGROUNDPIXPATHSTR, _backgroundPixPath);    xml->etag(DEICSONZECONFIGURATIONSTR);  } diff --git a/muse/synti/deicsonze/deicsonzepreset.cpp b/muse/synti/deicsonze/deicsonzepreset.cpp index c6597000..7be54d78 100644 --- a/muse/synti/deicsonze/deicsonzepreset.cpp +++ b/muse/synti/deicsonze/deicsonzepreset.cpp @@ -554,7 +554,7 @@ void Set::readSet(QDomNode setNode) {  //---------------------------------------------------------  void Set::writeSet(AL::Xml* xml, bool onlyUsed) {      xml->stag("deicsOnzeSet version=\"1.0\""); -    xml->tag("setName",_setName.c_str()); +    xml->tag("setName", QString(_setName.c_str()));      for(std::vector<Category*>::iterator i=_categoryVector.begin();  	i!=_categoryVector.end(); i++) (*i)->writeCategory(xml, onlyUsed);      xml->etag("deicsOnzeSet"); @@ -590,7 +590,7 @@ void Category::readCategory(QDomNode catNode) {  void Category::writeCategory(AL::Xml* xml, bool onlyUsed) {      if((!onlyUsed || _isUsed)) {  	xml->stag("deicsOnzeCategory version=\"1.0\""); -	xml->tag("categoryName",_categoryName.c_str()); +	xml->tag("categoryName", QString(_categoryName.c_str()));  	xml->tag("hbank", _hbank);  	for(std::vector<Subcategory*>::iterator i=_subcategoryVector.begin();  	    i!=_subcategoryVector.end(); i++) @@ -629,7 +629,7 @@ void Subcategory::readSubcategory(QDomNode subNode) {  void Subcategory::writeSubcategory(AL::Xml* xml, bool onlyUsed) {      if((!onlyUsed || _isUsed)) {  	xml->stag("deicsOnzeSubcategory version=\"1.0\""); -	xml->tag("subcategoryName",_subcategoryName.c_str()); +	xml->tag("subcategoryName", QString(_subcategoryName.c_str()));  	xml->tag("lbank", _lbank);  	for(std::vector<Preset*>::iterator i=_presetVector.begin();  	    i!=_presetVector.end(); i++) (*i)->writePreset(xml, onlyUsed); @@ -911,14 +911,14 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	xml->stag("deicsOnzePreset version=\"1.0\"");  	//algorithm -	xml->tag(ALGSTR, (algorithm==FIRST? "FIRST": +	xml->tag(ALGSTR, QString((algorithm==FIRST? "FIRST":  			     (algorithm==SECOND? "SECOND":  			      (algorithm==THIRD? "THIRD":  			       (algorithm==FOURTH? "FOURTH":  				(algorithm==FIFTH? "FIFTH":  				 (algorithm==SIXTH? "SIXTH":  				  (algorithm==SEVENTH? "SEVENTH": -				   "EIGHTH")))))))); +				   "EIGHTH")))))))));  	//feedback  	xml->tag(FEEDBACKSTR, feedback);  	//quick edit @@ -929,14 +929,14 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	//xml->tag(RELEASESTR, release);  	//lfo  	xml->stag("lfo"); -	xml->tag(WAVESTR, (lfo.wave==SAWUP? "SAWUP": +	xml->tag(WAVESTR, QString((lfo.wave==SAWUP? "SAWUP":  			      (lfo.wave==SQUARE? "SQUARE": -			       (lfo.wave==TRIANGL? "TRIANGL":"SHOLD")))); +			       (lfo.wave==TRIANGL? "TRIANGL":"SHOLD")))));  	xml->tag(SPEEDSTR, lfo.speed);  	xml->tag(DELAYSTR, lfo.delay);  	xml->tag(PMODDEPTHSTR, lfo.pModDepth);  	xml->tag(AMODDEPTHSTR, lfo.aModDepth); -	xml->tag(SYNCSTR, (lfo.sync==true? "on":"off")); +	xml->tag(SYNCSTR, QString((lfo.sync==true? "on":"off")));  	xml->etag("lfo");  	//sensitivity  	xml->stag("sensitivity"); @@ -944,7 +944,7 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	xml->tag(AMSSTR, sensitivity.amplitude);  	for(int i=0; i<NBROP; i++) {  	    sprintf(s, AMESTR "%d",i+1); -	    xml->tag(s, (sensitivity.ampOn[i]==true? "on":"off")); +	    xml->tag(s, QString((sensitivity.ampOn[i]==true? "on":"off")));  	}  	for(int i=0; i<NBROP; i++) {  	    sprintf(s,EBSSTR "%d",i+1); @@ -963,7 +963,7 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	}  	for(int i=0; i<NBROP; i++) {  	    sprintf(s, FIXSTR "%d",i+1); -	    xml->tag(s, (frequency[i].isFix==true? "yes":"no")); +	    xml->tag(s, QString((frequency[i].isFix==true? "yes":"no")));  	}  	for(int i=0; i<NBROP; i++) {  	    sprintf(s, FIXRANGESTR "%d",i+1); @@ -973,13 +973,13 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	//oscWave  	for(int i=0; i<NBROP; i++) {  	    sprintf(s, OSWSTR "%d",i+1); -	    xml->tag(s, (oscWave[i]==W1?"W1": +	    xml->tag(s, QString((oscWave[i]==W1?"W1":  			    (oscWave[i]==W2?"W2":  			     (oscWave[i]==W3?"W3":  			      (oscWave[i]==W4?"W4":  			       (oscWave[i]==W5?"W5":  				(oscWave[i]==W6?"W6": -				 (oscWave[i]==W7?"W7":"W8")))))))); +				 (oscWave[i]==W7?"W7":"W8")))))))));  	}  	//detune  	for(int i=0; i<NBROP; i++) { @@ -1010,9 +1010,9 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	}  	for(int i=0; i<NBROP; i++) {  	    sprintf(s, SHFTSTR "%d",i+1); -	    xml->tag(s, (eg[i].egShift==VOF?"VOF": +	    xml->tag(s, QString((eg[i].egShift==VOF?"VOF":  			    (eg[i].egShift==V48?"V48": -			     (eg[i].egShift==V24?"V24":"V12")))); +			     (eg[i].egShift==V24?"V24":"V12")))));  	}  	xml->etag("eg");  	//pitchEg @@ -1043,12 +1043,12 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	//function  	xml->stag("function");  	xml->tag(TRANSPOSESTR, function.transpose); -	xml->tag(POLYMODESTR, (function.mode==POLY? "POLY":"MONO")); +	xml->tag(POLYMODESTR, QString((function.mode==POLY? "POLY":"MONO")));  	xml->tag(PBENDRANGESTR, function.pBendRange); -	xml->tag(PORTAMODESTR, (function.portamento==FINGER? -	       "FINGER":"FULL")); +	xml->tag(PORTAMODESTR, QString((function.portamento==FINGER? +	       "FINGER":"FULL")));  	xml->tag(PORTATIMESTR, function.portamentoTime); -	xml->tag(FSWSTR, (function.footSw==POR? "POR":"SUS")); +	xml->tag(FSWSTR, QString((function.footSw==POR? "POR":"SUS")));  	xml->tag(FCVOLUMESTR, function.fcVolume);  	xml->tag(FCPITCHSTR, function.fcPitch);  	xml->tag(FCAMPLITUDESTR, function.fcAmplitude); @@ -1067,7 +1067,7 @@ void Preset::writePreset(AL::Xml* xml, bool onlyUsed) {  	//globalDetune  	//xml->tag("globalDetune", globalDetune);  	//preset name -	xml->tag("name", name.c_str()); +	xml->tag("name", QString(name.c_str()));  	//bank prog  	xml->tag("prog",prog); diff --git a/muse/synti/vam/vamgui.cpp b/muse/synti/vam/vamgui.cpp index 2787650d..c4d93672 100644 --- a/muse/synti/vam/vamgui.cpp +++ b/muse/synti/vam/vamgui.cpp @@ -8,7 +8,7 @@  //	(Many) parts of this file was taken from Werner Schweer's GUI  //	for his organ soft synth.  // -//  (C) Copyright 2002 Jotsif Lindman Hönlund (jotsif@linux.nu) +//  (C) Copyright 2002 Jotsif Lindman Hölund (jotsif@linux.nu)  //  // This program is free software; you can redistribute it and/or  // modify it under the terms of the GNU General Public License @@ -140,9 +140,9 @@ void Preset::readConfiguration(QDomNode /*node*/)  void Preset::writeConfiguration(Xml& xml)  { -	xml.stag("preset name=\"%s\"", name.toLatin1().data()); +	xml.stag(QString("preset name=\"%1\"").arg(name));  	for (int i = 0; i < NUM_CONTROLLER; ++i) { -		xml.tagE("control idx=\"%d\" val=\"%d\"", i, ctrl[i]); +		xml.tagE(QString("control idx=\"%1\" val=\"%2\"").arg(i).arg(ctrl[i]));  	}  	xml.etag("preset");  }  | 
