aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppTuneItem.h
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2020-06-22 22:57:44 +0200
committerLinus Jahn <lnj@kaidan.im>2021-08-22 16:09:02 +0200
commitd4f5a0c418bf30c8e2d125957adff0e5ff731e54 (patch)
treedac8305ffdaa2b3e0b67d9419326a0feee08ce41 /src/base/QXmppTuneItem.h
parentdaa3385a3d0b14202cb6cdadaaca72c93614ecc6 (diff)
downloadqxmpp-d4f5a0c418bf30c8e2d125957adff0e5ff731e54.tar.gz
Implement XEP-0118: User Tune: Add PubSub item
Diffstat (limited to 'src/base/QXmppTuneItem.h')
-rw-r--r--src/base/QXmppTuneItem.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/base/QXmppTuneItem.h b/src/base/QXmppTuneItem.h
new file mode 100644
index 00000000..da7345d5
--- /dev/null
+++ b/src/base/QXmppTuneItem.h
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2008-2021 The QXmpp developers
+ *
+ * Author:
+ * Linus Jahn
+ *
+ * Source:
+ * https://github.com/qxmpp-project/qxmpp
+ *
+ * This file is a part of QXmpp library.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ */
+
+#ifndef QXMPPTUNEITEM_H
+#define QXMPPTUNEITEM_H
+
+#include "QXmppPubSubItem.h"
+
+#include <QSharedDataPointer>
+
+class QXmppTuneItemPrivate;
+class QUrl;
+
+class QXMPP_EXPORT QXmppTuneItem : public QXmppPubSubItem
+{
+public:
+ QXmppTuneItem();
+ QXmppTuneItem(const QXmppTuneItem &other);
+ ~QXmppTuneItem();
+
+ QXmppTuneItem &operator=(const QXmppTuneItem &other);
+
+ QString artist() const;
+ void setArtist(const QString &artist);
+
+ quint16 length() const;
+ void setLength(quint16 length);
+
+ quint8 rating() const;
+ void setRating(quint8 rating);
+
+ QString source() const;
+ void setSource(const QString &source);
+
+ QString title() const;
+ void setTitle(const QString &title);
+
+ QString track() const;
+ void setTrack(const QString &track);
+
+ QUrl uri() const;
+ void setUri(const QUrl &uri);
+
+ static bool isItem(const QDomElement &itemElement);
+
+protected:
+ /// \cond
+ void parsePayload(const QDomElement &payloadElement) override;
+ void serializePayload(QXmlStreamWriter *writer) const override;
+ /// \endcond
+
+private:
+ QSharedDataPointer<QXmppTuneItemPrivate> d;
+};
+
+Q_DECLARE_METATYPE(QXmppTuneItem)
+
+#endif // QXMPPTUNEITEM_H