summaryrefslogtreecommitdiffstats
path: root/examples/nfc/annotatedurl/annotatedurl.h
blob: 887e82d5661d8a6fa6a39ad782896bf787fffc3c (plain)
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
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#ifndef ANNOTATEDURL_H
#define ANNOTATEDURL_H

#include <QtNfc/qndeffilter.h>
#include <QtNfc/qndefmessage.h>
#include <QtNfc/qnearfieldmanager.h>

#include <QtCore/qobject.h>

QT_FORWARD_DECLARE_CLASS(QNearFieldTarget)
QT_FORWARD_DECLARE_CLASS(QPixmap)
QT_FORWARD_DECLARE_CLASS(QUrl)

//! [0]
class AnnotatedUrl : public QObject
{
    Q_OBJECT

public:
    explicit AnnotatedUrl(QObject *parent = 0);
    ~AnnotatedUrl();

    void startDetection();

signals:
    void annotatedUrl(const QUrl &url, const QString &title, const QPixmap &pixmap);
    void nfcStateChanged(bool enabled);
    void tagError(const QString &error);

public slots:
    void targetDetected(QNearFieldTarget *target);
    void targetLost(QNearFieldTarget *target);
    void handleMessage(const QNdefMessage &message, QNearFieldTarget *target);
    void handlePolledNdefMessage(QNdefMessage message);
    void handleAdapterStateChange(QNearFieldManager::AdapterState state);

private:
    QNearFieldManager *manager;
    QNdefFilter messageFilter;
};
//! [0]

#endif // ANNOTATEDURL_H