aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppTuneItem.h
blob: 363a1c00ac7b7a0a61db9e7bce5ed08a199ad6d6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// SPDX-FileCopyrightText: 2020 Linus Jahn <lnj@kaidan.im>
//
// SPDX-License-Identifier: LGPL-2.1-or-later

#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