本文整理汇总了C++中Xml::nput方法的典型用法代码示例。如果您正苦于以下问题:C++ Xml::nput方法的具体用法?C++ Xml::nput怎么用?C++ Xml::nput使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xml
的用法示例。
在下文中一共展示了Xml::nput方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writeProperties
void AudioTrack::writeProperties(int level, Xml& xml) const
{
Track::writeProperties(level, xml);
xml.intTag(level, "prefader", prefader());
xml.intTag(level, "sendMetronome", sendMetronome());
xml.intTag(level, "automation", int(automationType()));
if (hasAuxSend())
{
QHashIterator<qint64, AuxInfo> iter(_auxSend);
while (iter.hasNext())
{
iter.next();
Track* t = song->findTrackByIdAndType(iter.key(), Track::AUDIO_AUX);
//Write it out only if the AUX track still exists
if(t)
{
bool pre = iter.value().first;
double val = iter.value().second;
QString s("<auxSend trackId=\"%1\" pre=\"%2\">%3</auxSend>\n");
xml.nput(level, s.arg(iter.key()).arg(pre).arg(val).toAscii().constData());
}
}
}
if (_wantsAutomation == false)
{
// _wantsAutomation is only set on fake midi automation tracks. on those, we don't need to save the plugins (synth) config
for (ciPluginI ip = _efxPipe->begin(); ip != _efxPipe->end(); ++ip)
{
if (*ip)
(*ip)->writeConfiguration(level, xml);
}
}
for (ciCtrlList icl = _controller.begin(); icl != _controller.end(); ++icl)
{
const CtrlList* cl = icl->second;
QString s= QString("controller id=\"%1\" cur=\"%2\"").arg(cl->id()).arg(cl->curVal()).toAscii().constData();
s += QString(" color=\"%1\" visible=\"%2\"").arg(cl->color().name()).arg(cl->isVisible());
xml.tag(level++, s.toAscii().constData());
int i = 0;
for (ciCtrl ic = cl->begin(); ic != cl->end(); ++ic)
{
QString s("%1 %2, ");
xml.nput(level, s.arg(ic->second.getFrame()).arg(ic->second.val).toAscii().constData());
++i;
if (i >= 4)
{
xml.put(level, "");
i = 0;
}
}
if (i)
xml.put(level, "");
xml.etag(--level, "controller");
}
}
示例2: write
void KeyMap::write(int level, Xml& xml)/*{{{*/
{
xml.nput(level, "<KeyMap key=\"%d\"", key);
xml.nput(" program=\"%d\"", program);
xml.nput(" hasProgram=\"%d\"", hasProgram);
xml.nput(" comment=\"%s\"", Xml::xmlString(comment).toLatin1().constData());
xml.nput(" pname=\"%s\"", Xml::xmlString(pname).toLatin1().constData());
xml.put(" />");
}/*}}}*/
示例3: write
void MidiInstrument::write(int level, Xml& xml)
{
xml.header();
xml.tag(level, "muse version=\"1.0\"");
level++;
xml.nput(level, "<MidiInstrument name=\"%s\"", Xml::xmlString(iname()).toLatin1().constData());
if(_nullvalue != -1)
{
QString nv;
nv.setNum(_nullvalue);
xml.nput(" nullparam=\"%s\"", nv.toLatin1().constData());
}
xml.put(">");
level++;
for (ciPatchGroup g = pg.begin(); g != pg.end(); ++g) {
PatchGroup* pgp = *g;
const PatchList& pl = pgp->patches;
xml.tag(level, "PatchGroup name=\"%s\"", Xml::xmlString(pgp->name).toLatin1().constData());
level++;
for (ciPatch p = pl.begin(); p != pl.end(); ++p)
(*p)->write(level, xml);
level--;
xml.etag(level, "PatchGroup");
}
for (iMidiController ic = _controller->begin(); ic != _controller->end(); ++ic)
ic->second->write(level, xml);
if(!_sysex.isEmpty())
{
int j = _sysex.size();
for(int i = 0; i < j; ++i)
_sysex.at(i)->write(level, xml);
}
xml.tag(level++, "Init");
for(ciEvent ev=_midiInit->begin(); ev != _midiInit->end(); ++ev)
ev->second.write(level, xml, MusECore::Pos(0, true));
xml.etag(--level, "Init");
// -------------
// TODO: What about _midiReset, _midiState, and _initScript ?
// -------------
writeDrummaps(level, xml);
level--;
xml.etag(level, "MidiInstrument");
level--;
xml.etag(level, "muse");
}
示例4: write
void PosLen::write(int level, Xml& xml, const char* name) const
{
xml.nput(level++, "<%s ", name);
switch(type()) {
case TICKS:
xml.nput("tick=\"%d\" len=\"%d\"", tick(), _lenTick);
break;
case FRAMES:
xml.nput("sample=\"%d\" len=\"%d\"", frame(), _lenFrame);
break;
}
xml.put(" />", name);
}
示例5: write
void CtrlListList::write(int level, Xml& xml) const
{
for (ciCtrlList icl = begin(); icl != end(); ++icl) {
const CtrlList* cl = icl->second;
QString s= QString("controller id=\"%1\" cur=\"%2\"").arg(cl->id()).arg(cl->curVal()).toAscii().constData();
s += QString(" color=\"%1\" visible=\"%2\"").arg(cl->color().name()).arg(cl->isVisible());
xml.tag(level++, s.toAscii().constData());
int i = 0;
for (ciCtrl ic = cl->begin(); ic != cl->end(); ++ic) {
QString s("%1 %2, ");
xml.nput(level, s.arg(ic->second.frame).arg(ic->second.val).toAscii().constData());
++i;
if (i >= 4) {
xml.put(level, "");
i = 0;
}
}
if (i)
xml.put(level, "");
xml.etag(level--, "controller");
}
_midi_controls.write(level, xml);
}
示例6: write
void Patch::write(int level, Xml& xml)
{
xml.nput(level, "<Patch name=\"%s\"", Xml::xmlString(name).toLatin1().constData());
//if(typ != -1)
// xml.nput(" mode=\"%d\"", typ); // Obsolete
if(hbank != -1)
xml.nput(" hbank=\"%d\"", hbank);
if(lbank != -1)
xml.nput(" lbank=\"%d\"", lbank);
xml.nput(" prog=\"%d\"", prog);
if(drum)
xml.nput(" drum=\"%d\"", int(drum));
xml.put(" />");
}
示例7: write
void Patch::write(int level, Xml& xml)
{
xml.nput(level, "<Patch name=\"%s\"", Xml::xmlString(name).toLatin1().constData());
if (typ != -1)
xml.nput(" mode=\"%d\"", typ);
if (hbank != -1)
xml.nput(" hbank=\"%d\"", hbank);
if (lbank != -1)
xml.nput(" lbank=\"%d\"", lbank);
xml.nput(" prog=\"%d\"", prog);
if (drum)
xml.nput(" drum=\"%d\"", int(drum));
if(!keys.isEmpty())
{
QString keyString;
for(int i = 0; i < keys.size(); ++i)
{
keyString.append(QString::number(keys.at(i)));
if(i < (keys.size() - 1))
keyString.append(" ");
}
xml.nput(" keys=\"%s\"", keyString.toUtf8().constData());
}
if(!keyswitches.isEmpty())
{
QString keyString;
for(int i = 0; i < keyswitches.size(); ++i)
{
keyString.append(QString::number(keyswitches.at(i)));
if(i < (keyswitches.size() - 1))
keyString.append(" ");
}
xml.nput(" keyswitches=\"%s\"", keyString.toUtf8().constData());
}
xml.put(" />");
}
示例8: writeDrummaps
void MidiInstrument::writeDrummaps(int level, Xml& xml) const
{
xml.tag(level++, "Drummaps");
for (std::list<patch_drummap_mapping_t>::const_iterator it=patch_drummap_mapping.begin();
it!=patch_drummap_mapping.end(); it++)
{
xml.tag(level++, "entry");
const patch_collection_t* ap = &it->affected_patches;
QString tmp="<patch_collection ";
if (ap->first_program==ap->last_program)
tmp+="prog=\""+QString::number(ap->first_program)+"\" ";
else if (! (ap->first_program==0 && ap->last_program>=127))
tmp+="prog=\""+QString::number(ap->first_program)+"-"+QString::number(ap->last_program)+"\" ";
if (ap->first_lbank==ap->last_lbank)
tmp+="lbank=\""+QString::number(ap->first_lbank)+"\" ";
else if (! (ap->first_lbank==0 && ap->last_lbank>=127))
tmp+="lbank=\""+QString::number(ap->first_lbank)+"-"+QString::number(ap->last_lbank)+"\" ";
if (ap->first_hbank==ap->last_hbank)
tmp+="hbank=\""+QString::number(ap->first_hbank)+"\" ";
else if (! (ap->first_hbank==0 && ap->last_hbank>=127))
tmp+="hbank=\""+QString::number(ap->first_hbank)+"-"+QString::number(ap->last_hbank)+"\" ";
tmp+="/>\n";
xml.nput(level, tmp.toLatin1().data());
write_new_style_drummap(level, xml, "drummap", it->drummap);
xml.etag(--level, "entry");
}
xml.etag(--level, "Drummaps");
}
示例9: write
void MidiController::write(int level, Xml& xml) const
{
ControllerType t = midiControllerType(_num);
if(t == Velo)
return;
QString type(int2ctrlType(t));
int h = (_num >> 8) & 0x7f;
int l = _num & 0x7f;
QString sl;
if (isPerNoteController())
sl = "pitch";
else
sl.setNum(l);
xml.nput(level, "<Controller name=\"%s\"", Xml::xmlString(_name).toLatin1().constData());
if(t != Controller7)
xml.nput(" type=\"%s\"", type.toLatin1().constData());
int mn = 0;
int mx = 0;
switch (t)
{
case RPN:
case NRPN:
xml.nput(" h=\"%d\"", h);
xml.nput(" l=\"%s\"", sl.toLatin1().constData());
mx = 127;
break;
case Controller7:
xml.nput(" l=\"%s\"", sl.toLatin1().constData());
mx = 127;
break;
case Controller14:
case RPN14:
case NRPN14:
xml.nput(" h=\"%d\"", h);
xml.nput(" l=\"%s\"", sl.toLatin1().constData());
mx = 16383;
break;
case Pitch:
mn = -8192;
mx = 8191;
break;
case PolyAftertouch:
mn = 0;
mx = 127;
break;
case Aftertouch:
mn = 0;
mx = 127;
break;
case Program:
case Velo: // Cannot happen
break;
}
if(t == Program)
{
if(_initVal != CTRL_VAL_UNKNOWN && _initVal != 0xffffff)
xml.nput(" init=\"0x%x\"", _initVal);
}
else
{
if(_minVal != mn)
xml.nput(" min=\"%d\"", _minVal);
if(_maxVal != mx)
xml.nput(" max=\"%d\"", _maxVal);
if(_initVal != CTRL_VAL_UNKNOWN)
xml.nput(" init=\"%d\"", _initVal);
}
if(_showInTracks != (ShowInDrum | ShowInMidi))
xml.nput(" showType=\"%d\"", _showInTracks);
xml.put(" />");
}
示例10: write
void MidiEventBase::write(int level, Xml& xml, const Pos& offset, bool /*forcePath*/) const
{
xml.nput(level++, "<event tick=\"%d\"", tick() + offset.tick());
switch (type())
{
case Note:
xml.nput(" len=\"%d\"", lenTick());
break;
default:
xml.nput(" type=\"%d\"", type());
break;
}
// Changed by T356. BUG: *.oom does not save meta event types - ID: 2879426
if (a)
xml.nput(" a=\"%d\"", a);
if (b)
xml.nput(" b=\"%d\"", b);
if (c)
xml.nput(" c=\"%d\"", c);
if (edata.dataLen)
{
xml.nput(" datalen=\"%d\">\n", edata.dataLen);
xml.nput(level, "");
for (int i = 0; i < edata.dataLen; ++i)
xml.nput("%02x ", edata.data[i] & 0xff);
xml.nput("\n");
xml.tag(level, "/event");
}
else
{
//if (a)
// xml.nput(" a=\"%d\"", a);
//if (b)
// xml.nput(" b=\"%d\"", b);
//if (c)
// xml.nput(" c=\"%d\"", c);
xml.nput(" />\n");
}
}