From 807a04ef3b864ac8f0e0f170176db7dd629f742a Mon Sep 17 00:00:00 2001 From: Jeremy LainĂ© Date: Fri, 15 Apr 2011 15:39:30 +0000 Subject: make jingle payload types capable of carying paramters --- src/QXmppJingleIq.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/QXmppJingleIq.cpp') diff --git a/src/QXmppJingleIq.cpp b/src/QXmppJingleIq.cpp index ac7abf03..976c4d2b 100644 --- a/src/QXmppJingleIq.cpp +++ b/src/QXmppJingleIq.cpp @@ -760,6 +760,20 @@ void QXmppJinglePayloadType::setName(const QString &name) m_name = name; } +/// Returns the payload parameters. + +QMap QXmppJinglePayloadType::parameters() const +{ + return m_parameters; +} + +/// Sets the payload parameters. + +void QXmppJinglePayloadType::setParameters(const QMap ¶meters) +{ + m_parameters = parameters; +} + /// Returns the packet time in milliseconds (20 by default). /// @@ -787,6 +801,12 @@ void QXmppJinglePayloadType::parse(const QDomElement &element) m_clockrate = element.attribute("clockrate").toInt(); m_maxptime = element.attribute("maxptime").toInt(); m_ptime = element.attribute("ptime").toInt(); + + QDomElement child = element.firstChildElement("parameter"); + while (!child.isNull()) { + m_parameters.insert(child.attribute("name"), child.attribute("value")); + child = child.nextSiblingElement("parameter"); + } } void QXmppJinglePayloadType::toXml(QXmlStreamWriter *writer) const @@ -802,6 +822,13 @@ void QXmppJinglePayloadType::toXml(QXmlStreamWriter *writer) const helperToXmlAddAttribute(writer, "maxptime", QString::number(m_maxptime)); if (m_ptime > 0) helperToXmlAddAttribute(writer, "ptime", QString::number(m_ptime)); + + foreach (const QString &key, m_parameters.keys()) { + writer->writeStartElement("parameter"); + writer->writeAttribute("name", key); + writer->writeAttribute("value", m_parameters.value(key)); + writer->writeEndElement(); + } writer->writeEndElement(); } -- cgit v1.2.3