diff options
| author | Jonah BrĂ¼chert <jbb.prv@gmx.de> | 2020-03-22 22:24:26 +0100 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2020-03-28 18:07:47 +0100 |
| commit | 1ac7b9d2a25d50b7680bd75ff68f29055b196d80 (patch) | |
| tree | 9adf6bbeefd37ed2fe1dbd23592d321183c6e87b /src/base/QXmppJingleIq.cpp | |
| parent | 88451aa1597afd0a1a1c3b3fb59d5a95d3011736 (diff) | |
| download | qxmpp-1ac7b9d2a25d50b7680bd75ff68f29055b196d80.tar.gz | |
base: Convert to QStringLiteral
Two new macros were added:
* QBL (short alias for QByteArrayLiteral)
* QSL (short alias for QStringLiteral)
Diffstat (limited to 'src/base/QXmppJingleIq.cpp')
| -rw-r--r-- | src/base/QXmppJingleIq.cpp | 254 |
1 files changed, 127 insertions, 127 deletions
diff --git a/src/base/QXmppJingleIq.cpp b/src/base/QXmppJingleIq.cpp index ea95c0e0..b37c75cd 100644 --- a/src/base/QXmppJingleIq.cpp +++ b/src/base/QXmppJingleIq.cpp @@ -96,12 +96,12 @@ static QByteArray parseFingerprint(const QString &fingerprint) static QString addressToSdp(const QHostAddress &host) { - return QString("IN %1 %2").arg(host.protocol() == QAbstractSocket::IPv6Protocol ? "IP6" : "IP4", host.toString()); + return QSL("IN %1 %2").arg(host.protocol() == QAbstractSocket::IPv6Protocol ? QSL("IP6") : QSL("IP4"), host.toString()); } static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sdp) { - if (!sdp.startsWith("candidate:")) + if (!sdp.startsWith(QSL("candidate:"))) return false; const QStringList bits = sdp.mid(10).split(" "); @@ -115,12 +115,12 @@ static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sd candidate->setHost(QHostAddress(bits[4])); candidate->setPort(bits[5].toInt()); for (int i = 6; i < bits.size() - 1; i += 2) { - if (bits[i] == "typ") { + if (bits[i] == QSL("typ")) { bool ok; candidate->setType(QXmppJingleCandidate::typeFromString(bits[i + 1], &ok)); if (!ok) return false; - } else if (bits[i] == "generation") { + } else if (bits[i] == QSL("generation")) { candidate->setGeneration(bits[i + 1].toInt()); } else { qWarning() << "Candidate SDP contains unknown attribute" << bits[i]; @@ -132,7 +132,7 @@ static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sd static QString candidateToSdp(const QXmppJingleCandidate &candidate) { - return QString("candidate:%1 %2 %3 %4 %5 %6 typ %7 generation %8").arg(candidate.foundation(), QString::number(candidate.component()), candidate.protocol(), QString::number(candidate.priority()), candidate.host().toString(), QString::number(candidate.port()), QXmppJingleCandidate::typeToString(candidate.type()), QString::number(candidate.generation())); + return QSL("candidate:%1 %2 %3 %4 %5 %6 typ %7 generation %8").arg(candidate.foundation(), QString::number(candidate.component()), candidate.protocol(), QString::number(candidate.priority()), candidate.host().toString(), QString::number(candidate.port()), QXmppJingleCandidate::typeToString(candidate.type()), QString::number(candidate.generation())); } class QXmppJingleIqContentPrivate : public QSharedData @@ -356,43 +356,43 @@ void QXmppJingleIq::Content::setTransportFingerprintSetup(const QString &setup) /// \cond void QXmppJingleIq::Content::parse(const QDomElement &element) { - d->creator = element.attribute("creator"); - d->disposition = element.attribute("disposition"); - d->name = element.attribute("name"); - d->senders = element.attribute("senders"); + d->creator = element.attribute(QSL("creator")); + d->disposition = element.attribute(QSL("disposition")); + d->name = element.attribute(QSL("name")); + d->senders = element.attribute(QSL("senders")); // description - QDomElement descriptionElement = element.firstChildElement("description"); + QDomElement descriptionElement = element.firstChildElement(QSL("description")); d->descriptionType = descriptionElement.namespaceURI(); - d->descriptionMedia = descriptionElement.attribute("media"); - d->descriptionSsrc = descriptionElement.attribute("ssrc").toULong(); - QDomElement child = descriptionElement.firstChildElement("payload-type"); + d->descriptionMedia = descriptionElement.attribute(QSL("media")); + d->descriptionSsrc = descriptionElement.attribute(QSL("ssrc")).toULong(); + QDomElement child = descriptionElement.firstChildElement(QSL("payload-type")); while (!child.isNull()) { QXmppJinglePayloadType payload; payload.parse(child); d->payloadTypes << payload; - child = child.nextSiblingElement("payload-type"); + child = child.nextSiblingElement(QSL("payload-type")); } // transport - QDomElement transportElement = element.firstChildElement("transport"); + QDomElement transportElement = element.firstChildElement(QSL("transport")); d->transportType = transportElement.namespaceURI(); - d->transportUser = transportElement.attribute("ufrag"); - d->transportPassword = transportElement.attribute("pwd"); - child = transportElement.firstChildElement("candidate"); + d->transportUser = transportElement.attribute(QSL("ufrag")); + d->transportPassword = transportElement.attribute(QSL("pwd")); + child = transportElement.firstChildElement(QSL("candidate")); while (!child.isNull()) { QXmppJingleCandidate candidate; candidate.parse(child); d->transportCandidates << candidate; - child = child.nextSiblingElement("candidate"); + child = child.nextSiblingElement(QSL("candidate")); } - child = transportElement.firstChildElement("fingerprint"); + child = transportElement.firstChildElement(QSL("fingerprint")); /// XEP-0320 if (!child.isNull()) { d->transportFingerprint = parseFingerprint(child.text()); - d->transportFingerprintHash = child.attribute("hash"); - d->transportFingerprintSetup = child.attribute("setup"); + d->transportFingerprintHash = child.attribute(QSL("hash")); + d->transportFingerprintSetup = child.attribute(QSL("setup")); } } @@ -401,19 +401,19 @@ void QXmppJingleIq::Content::toXml(QXmlStreamWriter *writer) const if (d->creator.isEmpty() || d->name.isEmpty()) return; - writer->writeStartElement("content"); - helperToXmlAddAttribute(writer, "creator", d->creator); - helperToXmlAddAttribute(writer, "disposition", d->disposition); - helperToXmlAddAttribute(writer, "name", d->name); - helperToXmlAddAttribute(writer, "senders", d->senders); + writer->writeStartElement(QSL("content")); + helperToXmlAddAttribute(writer, QSL("creator"), d->creator); + helperToXmlAddAttribute(writer, QSL("disposition"), d->disposition); + helperToXmlAddAttribute(writer, QSL("name"), d->name); + helperToXmlAddAttribute(writer, QSL("senders"), d->senders); // description if (!d->descriptionType.isEmpty() || !d->payloadTypes.isEmpty()) { - writer->writeStartElement("description"); + writer->writeStartElement(QSL("description")); writer->writeDefaultNamespace(d->descriptionType); - helperToXmlAddAttribute(writer, "media", d->descriptionMedia); + helperToXmlAddAttribute(writer, QSL("media"), d->descriptionMedia); if (d->descriptionSsrc) - writer->writeAttribute("ssrc", QString::number(d->descriptionSsrc)); + writer->writeAttribute(QSL("ssrc"), QString::number(d->descriptionSsrc)); for (const auto &payload : d->payloadTypes) payload.toXml(writer); writer->writeEndElement(); @@ -421,19 +421,19 @@ void QXmppJingleIq::Content::toXml(QXmlStreamWriter *writer) const // transport if (!d->transportType.isEmpty() || !d->transportCandidates.isEmpty()) { - writer->writeStartElement("transport"); + writer->writeStartElement(QSL("transport")); writer->writeDefaultNamespace(d->transportType); - helperToXmlAddAttribute(writer, "ufrag", d->transportUser); - helperToXmlAddAttribute(writer, "pwd", d->transportPassword); + helperToXmlAddAttribute(writer, QSL("ufrag"), d->transportUser); + helperToXmlAddAttribute(writer, QSL("pwd"), d->transportPassword); for (const auto &candidate : d->transportCandidates) candidate.toXml(writer); // XEP-0320 if (!d->transportFingerprint.isEmpty() && !d->transportFingerprintHash.isEmpty()) { - writer->writeStartElement("fingerprint"); + writer->writeStartElement(QSL("fingerprint")); writer->writeDefaultNamespace(ns_jingle_dtls); - writer->writeAttribute("hash", d->transportFingerprintHash); - writer->writeAttribute("setup", d->transportFingerprintSetup); + writer->writeAttribute(QSL("hash"), d->transportFingerprintHash); + writer->writeAttribute(QSL("setup"), d->transportFingerprintSetup); writer->writeCharacters(formatFingerprint(d->transportFingerprint)); writer->writeEndElement(); } @@ -449,25 +449,25 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) for (auto &line : sdp.split('\n')) { if (line.endsWith('\r')) line.resize(line.size() - 1); - if (line.startsWith("a=")) { + if (line.startsWith(QSL("a="))) { int idx = line.indexOf(':'); const QString attrName = idx != -1 ? line.mid(2, idx - 2) : line.mid(2); const QString attrValue = idx != -1 ? line.mid(idx + 1) : ""; - if (attrName == "candidate") { + if (attrName == QSL("candidate")) { QXmppJingleCandidate candidate; if (!candidateParseSdp(&candidate, line.mid(2))) { qWarning() << "Could not parse candidate" << line; return false; } addTransportCandidate(candidate); - } else if (attrName == "fingerprint") { + } else if (attrName == QSL("fingerprint")) { const QStringList bits = attrValue.split(' '); if (bits.size() > 1) { d->transportFingerprintHash = bits[0]; d->transportFingerprint = parseFingerprint(bits[1]); } - } else if (attrName == "fmtp") { + } else if (attrName == QSL("fmtp")) { int spIdx = attrValue.indexOf(' '); if (spIdx == -1) { qWarning() << "Could not parse payload parameters" << line; @@ -478,8 +478,8 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) for (auto &payload : payloads) { if (payload.id() == id) { QMap<QString, QString> params; - if (payload.name() == "telephone-event") { - params.insert("events", paramStr); + if (payload.name() == QSL("telephone-event")) { + params.insert(QSL("events"), paramStr); } else { for (const auto &p : paramStr.split(QRegExp(";\\s*"))) { QStringList bits = p.split('='); @@ -490,7 +490,7 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) payload.setParameters(params); } } - } else if (attrName == "rtpmap") { + } else if (attrName == QSL("rtpmap")) { // payload type map const QStringList bits = attrValue.split(' '); if (bits.size() != 2) @@ -510,13 +510,13 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) payload.setChannels(args[2].toInt()); } } - } else if (attrName == "ice-ufrag") { + } else if (attrName == QSL("ice-ufrag")) { d->transportUser = attrValue; - } else if (attrName == "ice-pwd") { + } else if (attrName == QSL("ice-pwd")) { d->transportPassword = attrValue; - } else if (attrName == "setup") { + } else if (attrName == QSL("setup")) { d->transportFingerprintSetup = attrValue; - } else if (attrName == "ssrc") { + } else if (attrName == QSL("ssrc")) { const QStringList bits = attrValue.split(' '); if (bits.isEmpty()) { qWarning() << "Could not parse ssrc" << line; @@ -524,7 +524,7 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) } d->descriptionSsrc = bits[0].toULong(); } - } else if (line.startsWith("m=")) { + } else if (line.startsWith(QSL("m="))) { // FIXME: what do we do with the profile (bits[2]) ? QStringList bits = line.mid(2).split(' '); if (bits.size() < 3) { @@ -587,32 +587,32 @@ QString QXmppJingleIq::Content::toSdp() const // payload parameters QStringList paramList; const QMap<QString, QString> params = payload.parameters(); - if (payload.name() == "telephone-event") { - if (params.contains("events")) - paramList << params.value("events"); + if (payload.name() == QSL("telephone-event")) { + if (params.contains(QSL("events"))) + paramList << params.value(QSL("events")); } else { QMap<QString, QString>::const_iterator i; for (i = params.begin(); i != params.end(); ++i) - paramList << i.key() + "=" + i.value(); + paramList << i.key() + QSL("=") + i.value(); } if (!paramList.isEmpty()) - attrs << "a=fmtp:" + QByteArray::number(payload.id()) + " " + paramList.join("; "); + attrs << QSL("a=fmtp:") + QByteArray::number(payload.id()) + QSL(" ") + paramList.join("; "); } - sdp << QString("m=%1 %2 RTP/AVP%3").arg(d->descriptionMedia, QString::number(localRtpPort), payloads); - sdp << QString("c=%1").arg(addressToSdp(localRtpAddress)); + sdp << QSL("m=%1 %2 RTP/AVP%3").arg(d->descriptionMedia, QString::number(localRtpPort), payloads); + sdp << QSL("c=%1").arg(addressToSdp(localRtpAddress)); sdp += attrs; // transport for (const auto &candidate : d->transportCandidates) - sdp << QString("a=%1").arg(candidateToSdp(candidate)); + sdp << QSL("a=%1").arg(candidateToSdp(candidate)); if (!d->transportUser.isEmpty()) - sdp << QString("a=ice-ufrag:%1").arg(d->transportUser); + sdp << QSL("a=ice-ufrag:%1").arg(d->transportUser); if (!d->transportPassword.isEmpty()) - sdp << QString("a=ice-pwd:%1").arg(d->transportPassword); + sdp << QSL("a=ice-pwd:%1").arg(d->transportPassword); if (!d->transportFingerprint.isEmpty() && !d->transportFingerprintHash.isEmpty()) - sdp << QString("a=fingerprint:%1 %2").arg(d->transportFingerprintHash, formatFingerprint(d->transportFingerprint)); + sdp << QSL("a=fingerprint:%1 %2").arg(d->transportFingerprintHash, formatFingerprint(d->transportFingerprint)); if (!d->transportFingerprintSetup.isEmpty()) - sdp << QString("a=setup:%1").arg(d->transportFingerprintSetup); + sdp << QSL("a=setup:%1").arg(d->transportFingerprintSetup); return sdp.join("\r\n") + "\r\n"; } @@ -655,7 +655,7 @@ void QXmppJingleIq::Reason::setType(QXmppJingleIq::Reason::Type type) /// \cond void QXmppJingleIq::Reason::parse(const QDomElement &element) { - m_text = element.firstChildElement("text").text(); + m_text = element.firstChildElement(QSL("text")).text(); for (int i = AlternativeSession; i <= UnsupportedTransports; i++) { if (!element.firstChildElement(jingle_reasons[i]).isNull()) { m_type = static_cast<Type>(i); @@ -669,9 +669,9 @@ void QXmppJingleIq::Reason::toXml(QXmlStreamWriter *writer) const if (m_type < AlternativeSession || m_type > UnsupportedTransports) return; - writer->writeStartElement("reason"); + writer->writeStartElement(QSL("reason")); if (!m_text.isEmpty()) - helperToXmlAddTextElement(writer, "text", m_text); + helperToXmlAddTextElement(writer, QSL("text"), m_text); writer->writeEmptyElement(jingle_reasons[m_type]); writer->writeEndElement(); } @@ -845,56 +845,56 @@ void QXmppJingleIq::setSid(const QString &sid) /// \cond bool QXmppJingleIq::isJingleIq(const QDomElement &element) { - QDomElement jingleElement = element.firstChildElement("jingle"); + QDomElement jingleElement = element.firstChildElement(QSL("jingle")); return (jingleElement.namespaceURI() == ns_jingle); } void QXmppJingleIq::parseElementFromChild(const QDomElement &element) { - QDomElement jingleElement = element.firstChildElement("jingle"); - const QString action = jingleElement.attribute("action"); + QDomElement jingleElement = element.firstChildElement(QSL("jingle")); + const QString action = jingleElement.attribute(QSL("action")); for (int i = ContentAccept; i <= TransportReplace; i++) { if (action == jingle_actions[i]) { d->action = static_cast<Action>(i); break; } } - d->initiator = jingleElement.attribute("initiator"); - d->responder = jingleElement.attribute("responder"); - d->sid = jingleElement.attribute("sid"); + d->initiator = jingleElement.attribute(QSL("initiator")); + d->responder = jingleElement.attribute(QSL("responder")); + d->sid = jingleElement.attribute(QSL("sid")); // content d->contents.clear(); - QDomElement contentElement = jingleElement.firstChildElement("content"); + QDomElement contentElement = jingleElement.firstChildElement(QSL("content")); while (!contentElement.isNull()) { QXmppJingleIq::Content content; content.parse(contentElement); addContent(content); - contentElement = contentElement.nextSiblingElement("content"); + contentElement = contentElement.nextSiblingElement(QSL("content")); } - QDomElement reasonElement = jingleElement.firstChildElement("reason"); + QDomElement reasonElement = jingleElement.firstChildElement(QSL("reason")); d->reason.parse(reasonElement); // ringing - QDomElement ringingElement = jingleElement.firstChildElement("ringing"); + QDomElement ringingElement = jingleElement.firstChildElement(QSL("ringing")); d->ringing = (ringingElement.namespaceURI() == ns_jingle_rtp_info); } void QXmppJingleIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("jingle"); + writer->writeStartElement(QSL("jingle")); writer->writeDefaultNamespace(ns_jingle); - helperToXmlAddAttribute(writer, "action", jingle_actions[d->action]); - helperToXmlAddAttribute(writer, "initiator", d->initiator); - helperToXmlAddAttribute(writer, "responder", d->responder); - helperToXmlAddAttribute(writer, "sid", d->sid); + helperToXmlAddAttribute(writer, QSL("action"), jingle_actions[d->action]); + helperToXmlAddAttribute(writer, QSL("initiator"), d->initiator); + helperToXmlAddAttribute(writer, QSL("responder"), d->responder); + helperToXmlAddAttribute(writer, QSL("sid"), d->sid); for (const auto &content : d->contents) content.toXml(writer); d->reason.toXml(writer); // ringing if (d->ringing) { - writer->writeStartElement("ringing"); + writer->writeStartElement(QSL("ringing")); writer->writeDefaultNamespace(ns_jingle_rtp_info); writer->writeEndElement(); } @@ -1133,44 +1133,44 @@ bool QXmppJingleCandidate::isNull() const /// \cond void QXmppJingleCandidate::parse(const QDomElement &element) { - d->component = element.attribute("component").toInt(); - d->foundation = element.attribute("foundation"); - d->generation = element.attribute("generation").toInt(); - d->host = QHostAddress(element.attribute("ip")); - d->id = element.attribute("id"); - d->network = element.attribute("network").toInt(); - d->port = element.attribute("port").toInt(); - d->priority = element.attribute("priority").toInt(); - d->protocol = element.attribute("protocol"); - d->type = typeFromString(element.attribute("type")); + d->component = element.attribute(QSL("component")).toInt(); + d->foundation = element.attribute(QSL("foundation")); + d->generation = element.attribute(QSL("generation")).toInt(); + d->host = QHostAddress(element.attribute(QSL("ip"))); + d->id = element.attribute(QSL("id")); + d->network = element.attribute(QSL("network")).toInt(); + d->port = element.attribute(QSL("port")).toInt(); + d->priority = element.attribute(QSL("priority")).toInt(); + d->protocol = element.attribute(QSL("protocol")); + d->type = typeFromString(element.attribute(QSL("type"))); } void QXmppJingleCandidate::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("candidate"); - helperToXmlAddAttribute(writer, "component", QString::number(d->component)); - helperToXmlAddAttribute(writer, "foundation", d->foundation); - helperToXmlAddAttribute(writer, "generation", QString::number(d->generation)); - helperToXmlAddAttribute(writer, "id", d->id); - helperToXmlAddAttribute(writer, "ip", d->host.toString()); - helperToXmlAddAttribute(writer, "network", QString::number(d->network)); - helperToXmlAddAttribute(writer, "port", QString::number(d->port)); - helperToXmlAddAttribute(writer, "priority", QString::number(d->priority)); - helperToXmlAddAttribute(writer, "protocol", d->protocol); - helperToXmlAddAttribute(writer, "type", typeToString(d->type)); + writer->writeStartElement(QSL("candidate")); + helperToXmlAddAttribute(writer, QSL("component"), QString::number(d->component)); + helperToXmlAddAttribute(writer, QSL("foundation"), d->foundation); + helperToXmlAddAttribute(writer, QSL("generation"), QString::number(d->generation)); + helperToXmlAddAttribute(writer, QSL("id"), d->id); + helperToXmlAddAttribute(writer, QSL("ip"), d->host.toString()); + helperToXmlAddAttribute(writer, QSL("network"), QString::number(d->network)); + helperToXmlAddAttribute(writer, QSL("port"), QString::number(d->port)); + helperToXmlAddAttribute(writer, QSL("priority"), QString::number(d->priority)); + helperToXmlAddAttribute(writer, QSL("protocol"), d->protocol); + helperToXmlAddAttribute(writer, QSL("type"), typeToString(d->type)); writer->writeEndElement(); } QXmppJingleCandidate::Type QXmppJingleCandidate::typeFromString(const QString &typeStr, bool *ok) { QXmppJingleCandidate::Type type; - if (typeStr == "host") + if (typeStr == QSL("host")) type = HostType; - else if (typeStr == "prflx") + else if (typeStr == QSL("prflx")) type = PeerReflexiveType; - else if (typeStr == "srflx") + else if (typeStr == QSL("srflx")) type = ServerReflexiveType; - else if (typeStr == "relay") + else if (typeStr == QSL("relay")) type = RelayedType; else { qWarning() << "Unknown candidate type" << typeStr; @@ -1188,16 +1188,16 @@ QString QXmppJingleCandidate::typeToString(QXmppJingleCandidate::Type type) QString typeStr; switch (type) { case HostType: - typeStr = "host"; + typeStr = QSL("host"); break; case PeerReflexiveType: - typeStr = "prflx"; + typeStr = QSL("prflx"); break; case ServerReflexiveType: - typeStr = "srflx"; + typeStr = QSL("srflx"); break; case RelayedType: - typeStr = "relay"; + typeStr = QSL("relay"); break; } return typeStr; @@ -1360,40 +1360,40 @@ void QXmppJinglePayloadType::setPtime(unsigned int ptime) /// \cond void QXmppJinglePayloadType::parse(const QDomElement &element) { - d->id = element.attribute("id").toInt(); - d->name = element.attribute("name"); - d->channels = element.attribute("channels").toInt(); + d->id = element.attribute(QSL("id")).toInt(); + d->name = element.attribute(QSL("name")); + d->channels = element.attribute(QSL("channels")).toInt(); if (!d->channels) d->channels = 1; - d->clockrate = element.attribute("clockrate").toInt(); - d->maxptime = element.attribute("maxptime").toInt(); - d->ptime = element.attribute("ptime").toInt(); + d->clockrate = element.attribute(QSL("clockrate")).toInt(); + d->maxptime = element.attribute(QSL("maxptime")).toInt(); + d->ptime = element.attribute(QSL("ptime")).toInt(); - QDomElement child = element.firstChildElement("parameter"); + QDomElement child = element.firstChildElement(QSL("parameter")); while (!child.isNull()) { - d->parameters.insert(child.attribute("name"), child.attribute("value")); - child = child.nextSiblingElement("parameter"); + d->parameters.insert(child.attribute(QSL("name")), child.attribute(QSL("value"))); + child = child.nextSiblingElement(QSL("parameter")); } } void QXmppJinglePayloadType::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("payload-type"); - helperToXmlAddAttribute(writer, "id", QString::number(d->id)); - helperToXmlAddAttribute(writer, "name", d->name); + writer->writeStartElement(QSL("payload-type")); + helperToXmlAddAttribute(writer, QSL("id"), QString::number(d->id)); + helperToXmlAddAttribute(writer, QSL("name"), d->name); if (d->channels > 1) - helperToXmlAddAttribute(writer, "channels", QString::number(d->channels)); + helperToXmlAddAttribute(writer, QSL("channels"), QString::number(d->channels)); if (d->clockrate > 0) - helperToXmlAddAttribute(writer, "clockrate", QString::number(d->clockrate)); + helperToXmlAddAttribute(writer, QSL("clockrate"), QString::number(d->clockrate)); if (d->maxptime > 0) - helperToXmlAddAttribute(writer, "maxptime", QString::number(d->maxptime)); + helperToXmlAddAttribute(writer, QSL("maxptime"), QString::number(d->maxptime)); if (d->ptime > 0) - helperToXmlAddAttribute(writer, "ptime", QString::number(d->ptime)); + helperToXmlAddAttribute(writer, QSL("ptime"), QString::number(d->ptime)); for (const auto &key : d->parameters.keys()) { - writer->writeStartElement("parameter"); - writer->writeAttribute("name", key); - writer->writeAttribute("value", d->parameters.value(key)); + writer->writeStartElement(QSL("parameter")); + writer->writeAttribute(QSL("name"), key); + writer->writeAttribute(QSL("value"), d->parameters.value(key)); writer->writeEndElement(); } writer->writeEndElement(); |
