本文整理汇总了C++中Xml::skip方法的典型用法代码示例。如果您正苦于以下问题:C++ Xml::skip方法的具体用法?C++ Xml::skip怎么用?C++ Xml::skip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Xml
的用法示例。
在下文中一共展示了Xml::skip方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: readPortChannel
static void readPortChannel(Xml& xml, int midiPort)
{
int idx = 0; //torbenh
for (;;)
{
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
break;
QString tag = xml.s1();
switch (token)
{
case Xml::TagStart:
if (tag == "controller")
{
readController(xml, midiPort, idx);
}
else
xml.skip(tag);
break;
case Xml::Attribut:
if (tag == "idx")
idx = xml.s2().toInt();
break;
case Xml::TagEnd:
if (tag == "channel")
return;
default:
break;
}
}
}
示例2: readShortCuts
void readShortCuts(Xml& xml)
{
for (;;)
{
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
break;
const QString& tag = xml.s1();
switch (token)
{
case Xml::TagStart:
{
if (tag.length())
{
int index = getShrtByTag(tag.toUtf8().constData());
if (index != -1)
{
//printf("Index: %d\n",index);
shortcuts[index].key = xml.parseInt();
//printf("shortcuts[%d].key = %d, %s\n",index, shortcuts[index].key, shortcuts[index].descr);
}
else
xml.skip(tag);
}
}
case Xml::TagEnd:
if (tag == "shortcuts")
return;
default:
break;
}
}
}
示例3: readSeqConfiguration
static void readSeqConfiguration(Xml& xml)
{
//bool updatePorts = false;
for (;;)
{
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
break;
const QString& tag = xml.s1();
switch (token)
{
case Xml::TagStart:
if (tag == "midiport")
{
//updatePorts = true;
readConfigMidiPort(xml);
}
else if (tag == "rcStop")
rcStopNote = xml.parseInt();
else if (tag == "rcEnable")
rcEnable = xml.parseInt();
else if (tag == "rcRecord")
rcRecordNote = xml.parseInt();
else if (tag == "rcGotoLeft")
rcGotoLeftMarkNote = xml.parseInt();
else if (tag == "rcPlay")
rcPlayNote = xml.parseInt();
else
xml.skip(tag);
break;
case Xml::TagEnd:
if (tag == "sequencer")
{
//All Midiports have been read so put all the unconfigured ports in the id list
//if(updatePorts)
//{
for(int i = 0; i < MIDI_PORTS; ++i)
{
MidiPort *mp = &midiPorts[i];
if(!losMidiPorts.contains(mp->id()))
losMidiPorts.insert(mp->id(), mp);
}
//}
return;
}
default:
break;
}
}
}
示例4: readController
static void readController(Xml& xml, int midiPort, int channel)
{
int id = 0;
int val = CTRL_VAL_UNKNOWN;
for (;;)
{
Xml::Token token = xml.parse();
QString tag = xml.s1();
switch (token)
{
case Xml::TagStart:
if (tag == "val")
val = xml.parseInt();
else
xml.skip(tag);
break;
case Xml::Attribut:
if (tag == "id")
id = xml.s2().toInt();
break;
case Xml::TagEnd:
if (tag == "controller")
{
MidiPort* port = &midiPorts[midiPort];
//port->addManagedController(channel, id);
val = port->limitValToInstrCtlRange(id, val);
// The value here will actually be sent to the device LATER, in MidiPort::setMidiDevice()
port->setHwCtrlState(channel, id, val);
return;
}
default:
return;
}
}
}
示例5: readConfiguration
void readConfiguration(Xml& xml, bool readOnlySequencer)/*{{{*/
{
for (;;)
{
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
break;
QString tag = xml.s1();
switch (token)
{
case Xml::TagStart:
/* the reading of configuration is split in two; read
"sequencer" and read ALL. The reason is that it is
possible to load a song without configuration. In
this case the <configuration> chapter in the song
file should be skipped. However the sub part
<sequencer> contains elements that are necessary
to preserve composition consistency. Mainly
midiport configuration and VOLUME.
*/
if (tag == "sequencer")
{
readSeqConfiguration(xml);
break;
}
else if (readOnlySequencer)
{
xml.skip(tag);
break;
}
if (tag == "theme")
config.style = xml.parse1();
else if (tag == "styleSheetFile")
config.styleSheetFile = xml.parse1();
else if (tag == "useOldStyleStopShortCut")
config.useOldStyleStopShortCut = xml.parseInt();
else if (tag == "moveArmedCheckBox")
config.moveArmedCheckBox = xml.parseInt();
else if (tag == "externalWavEditor")
config.externalWavEditor = xml.parse1();
else if (tag == "font0")
config.fonts[0].fromString(xml.parse1());
else if (tag == "font1")
config.fonts[1].fromString(xml.parse1());
else if (tag == "font2")
config.fonts[2].fromString(xml.parse1());
else if (tag == "font3")
config.fonts[3].fromString(xml.parse1());
else if (tag == "font4")
config.fonts[4].fromString(xml.parse1());
else if (tag == "font5")
config.fonts[5].fromString(xml.parse1());
else if (tag == "font6")
config.fonts[6].fromString(xml.parse1());
else if (tag == "globalAlphaBlend")
config.globalAlphaBlend = xml.parseInt();
else if (tag == "palette0")
config.palette[0] = readColor(xml);
else if (tag == "palette1")
config.palette[1] = readColor(xml);
else if (tag == "palette2")
config.palette[2] = readColor(xml);
else if (tag == "palette3")
config.palette[3] = readColor(xml);
else if (tag == "palette4")
config.palette[4] = readColor(xml);
else if (tag == "palette5")
config.palette[5] = readColor(xml);
else if (tag == "palette6")
config.palette[6] = readColor(xml);
else if (tag == "palette7")
config.palette[7] = readColor(xml);
else if (tag == "palette8")
config.palette[8] = readColor(xml);
else if (tag == "palette9")
config.palette[9] = readColor(xml);
else if (tag == "palette10")
config.palette[10] = readColor(xml);
else if (tag == "palette11")
config.palette[11] = readColor(xml);
else if (tag == "palette12")
config.palette[12] = readColor(xml);
else if (tag == "palette13")
config.palette[13] = readColor(xml);
else if (tag == "palette14")
config.palette[14] = readColor(xml);
else if (tag == "palette15")
config.palette[15] = readColor(xml);
else if (tag == "palette16")
config.palette[16] = readColor(xml);
else if (tag == "ctrlGraphFg")
config.ctrlGraphFg = readColor(xml);
else if (tag == "extendedMidi")
config.extendedMidi = xml.parseInt();
else if (tag == "midiExportDivision")
config.midiDivision = xml.parseInt();
else if (tag == "smfFormat")
config.smfFormat = xml.parseInt();
else if (tag == "exp2ByteTimeSigs")
//.........这里部分代码省略.........
示例6: readConfigMidiPort
static void readConfigMidiPort(Xml& xml)/*{{{*/
{
int idx = 0;
qint64 id = -1;
QString device;
bool isGlobal = false;
QString instrument("GM");
QList<PatchSequence*> patchSequences;
QList<QPair<int, QString> > presets;
int openFlags = 1;
int dic = 0;
int doc = 0;
int type = MidiDevice::ALSA_MIDI;
bool cachenrpn = false;
MidiDevice* dev = 0;
for (;;)
{
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
break;
QString tag = xml.s1();
switch (token)
{
case Xml::TagStart:
if (tag == "name")
{
device = xml.parse1();
if (!dev)//Look for it as an alsa or already created device
dev = midiDevices.find(device);
}
else if (tag == "type")
{
type = xml.parseInt();
}
else if (tag == "record")
{ // old
bool f = xml.parseInt();
if (f)
openFlags |= 2;
}
else if (tag == "openFlags")
openFlags = xml.parseInt();
else if (tag == "defaultInChans")
dic = xml.parseInt();
else if (tag == "defaultOutChans")
doc = xml.parseInt();
else if (tag == "instrument")
{
instrument = xml.parse1();
}
else if (tag == "channel")
{
readPortChannel(xml, idx);
}
else if (tag == "preset" || tag == "patchSequence")
{
PatchSequence* p = readMidiPortPatchSequences(xml);
if (p)
patchSequences.append(p);
}
else if(tag == "midiPreset")
{
presets.append(readMidiPortPreset(xml));
}
else if(tag == "cacheNRPN")
{
cachenrpn = xml.parseInt();
}
else
xml.skip(tag);
break;
case Xml::Attribut:
if (tag == "idx")
{//Check to see if this port is already used, and bump if so
idx = xml.s2().toInt();
int freePort = getFreeMidiPort();
if(freePort != idx)
{//Set a flag here so we know when loading tracks later that we are dealing with an old file or global inputs changed
idx = freePort;
}
}
else if(tag == "portId")
{//New style
id = xml.s2().toLongLong();
idx = getFreeMidiPort();
}
else if(tag == "isGlobalInput")
{//Find the matching input if posible and set our index to it
isGlobal = xml.s2().toInt();
}
break;
case Xml::TagEnd:
if (tag == "midiport")
{
if(isGlobal)
//.........这里部分代码省略.........