summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Schweer <ws.seh.de>2006-12-07 16:14:23 +0000
committerWerner Schweer <ws.seh.de>2006-12-07 16:14:23 +0000
commit00b569445cf38f20f55602c8144bc04b9198a24b (patch)
treeab2bbad73d7f6fafd154bd5eeeaa50bb07823061
parent0a1f84719373e027ff3e6a9e0f37b93d82eecc5e (diff)
xml lib updates
instrument editor updates
-rw-r--r--muse/ChangeLog2
-rw-r--r--muse/al/marker.cpp4
-rw-r--r--muse/al/pos.cpp8
-rw-r--r--muse/al/sig.cpp2
-rw-r--r--muse/al/tempo.cpp4
-rw-r--r--muse/al/xml.cpp148
-rw-r--r--muse/al/xml.h9
-rw-r--r--muse/muse/arranger/arranger.cpp4
-rw-r--r--muse/muse/conf.cpp14
-rw-r--r--muse/muse/ctrl.cpp25
-rw-r--r--muse/muse/instruments/editinstrument.cpp118
-rw-r--r--muse/muse/instruments/editinstrument.h3
-rw-r--r--muse/muse/instruments/editinstrument.ui42
-rw-r--r--muse/muse/instruments/minstrument.cpp58
-rw-r--r--muse/muse/midictrl.cpp34
-rw-r--r--muse/muse/midictrl.h1
-rw-r--r--muse/muse/midiedit/drummap.cpp2
-rw-r--r--muse/muse/midiedit/midieditor.cpp6
-rw-r--r--muse/muse/midieventbase.cpp19
-rw-r--r--muse/muse/midiplugin.cpp19
-rw-r--r--muse/muse/midirc.cpp8
-rw-r--r--muse/muse/midisynti.cpp15
-rw-r--r--muse/muse/mixer/mixer.cpp2
-rw-r--r--muse/muse/part.cpp5
-rw-r--r--muse/muse/plugin.cpp10
-rw-r--r--muse/muse/route.cpp8
-rw-r--r--muse/muse/synth.cpp16
-rw-r--r--muse/muse/waveedit/waveedit.cpp6
-rw-r--r--muse/muse/widgets/editsysexdialogbase.h203
-rw-r--r--muse/muse/widgets/editsysexdialogbase.ui236
-rw-r--r--muse/synti/deicsonze/deicsonze.cpp16
-rw-r--r--muse/synti/deicsonze/deicsonzepreset.cpp38
-rw-r--r--muse/synti/vam/vamgui.cpp6
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");
}