aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppJingleIq.h
diff options
context:
space:
mode:
authorTibor Csötönyi <work@taibsu.de>2023-05-03 15:26:55 +0200
committerLinus Jahn <lnj@kaidan.im>2023-05-14 23:51:42 +0200
commit4d0aaabef3d2458e622e61170f3fcb8d80092aee (patch)
treedd496c4dcf33f55e1e7ae39931edeeab0753bdea /src/base/QXmppJingleIq.h
parentfbb96a37f1c118c14fd158173e0d691022183ee3 (diff)
downloadqxmpp-4d0aaabef3d2458e622e61170f3fcb8d80092aee.tar.gz
Extract JingleIq::Description to own class
Description will be used by JingleMessageInitiationElement as well
Diffstat (limited to 'src/base/QXmppJingleIq.h')
-rw-r--r--src/base/QXmppJingleIq.h41
1 files changed, 32 insertions, 9 deletions
diff --git a/src/base/QXmppJingleIq.h b/src/base/QXmppJingleIq.h
index f5da136c..20a827ba 100644
--- a/src/base/QXmppJingleIq.h
+++ b/src/base/QXmppJingleIq.h
@@ -1,5 +1,6 @@
// SPDX-FileCopyrightText: 2010 Jeremy Lainé <jeremy.laine@m4x.org>
// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de>
+// SPDX-FileCopyrightText: 2023 Tibor Csötönyi <work@taibsu.de>
//
// SPDX-License-Identifier: LGPL-2.1-or-later
@@ -13,6 +14,7 @@
#include <QHostAddress>
class QXmppJingleCandidatePrivate;
+class QXmppJingleDescriptionPrivate;
class QXmppJingleIqContentPrivate;
class QXmppJingleIqPrivate;
class QXmppJinglePayloadTypePrivate;
@@ -237,6 +239,34 @@ private:
QSharedDataPointer<QXmppJinglePayloadTypePrivate> d;
};
+class QXMPP_EXPORT QXmppJingleDescription
+{
+public:
+ QXmppJingleDescription();
+ QXMPP_PRIVATE_DECLARE_RULE_OF_SIX(QXmppJingleDescription)
+
+ QString media() const;
+ void setMedia(const QString &media);
+
+ quint32 ssrc() const;
+ void setSsrc(quint32 ssrc);
+
+ QString type() const;
+ void setType(const QString &type);
+
+ void addPayloadType(const QXmppJinglePayloadType &payload);
+ const QList<QXmppJinglePayloadType> &payloadTypes() const;
+ void setPayloadTypes(const QList<QXmppJinglePayloadType> &payloadTypes);
+
+ /// \cond
+ void parse(const QDomElement &element);
+ void toXml(QXmlStreamWriter *writer) const;
+ /// \endcond
+
+private:
+ QSharedDataPointer<QXmppJingleDescriptionPrivate> d;
+};
+
///
/// \brief The QXmppJingleCandidate class represents a transport candidate
/// as specified by \xep{0176}: Jingle ICE-UDP Transport Method.
@@ -397,11 +427,8 @@ public:
void setSenders(const QString &senders);
// XEP-0167: Jingle RTP Sessions
- QString descriptionMedia() const;
- void setDescriptionMedia(const QString &media);
-
- quint32 descriptionSsrc() const;
- void setDescriptionSsrc(quint32 ssrc);
+ QXmppJingleDescription description() const;
+ void setDescription(const QXmppJingleDescription &description);
bool isRtpMultiplexingSupported() const;
void setRtpMultiplexingSupported(bool isRtpMultiplexingSupported);
@@ -409,10 +436,6 @@ public:
std::optional<QXmppJingleRtpEncryption> rtpEncryption() const;
void setRtpEncryption(const std::optional<QXmppJingleRtpEncryption> &rtpEncryption);
- void addPayloadType(const QXmppJinglePayloadType &payload);
- QList<QXmppJinglePayloadType> payloadTypes() const;
- void setPayloadTypes(const QList<QXmppJinglePayloadType> &payloadTypes);
-
void addTransportCandidate(const QXmppJingleCandidate &candidate);
QList<QXmppJingleCandidate> transportCandidates() const;
void setTransportCandidates(const QList<QXmppJingleCandidate> &candidates);