1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "qmltapsensor_p.h"
5#include <QtSensors/QTapSensor>
6
7/*!
8 \qmltype TapSensor
9//! \instantiates QmlTapSensor
10 \ingroup qml-sensors_type
11 \inqmlmodule QtSensors
12 \since QtSensors 5.0
13 \inherits Sensor
14 \brief The TapSensor element reports tap and double tap events
15 along the X, Y and Z axes.
16 \internal
17
18 The TapSensor element reports tap and double tap events
19 along the X, Y and Z axes.
20
21 This element wraps the QTapSensor class. Please see the documentation for
22 QTapSensor for details.
23
24 \sa TapReading
25*/
26
27QmlTapSensor::QmlTapSensor(QObject *parent)
28 : QmlSensor(parent)
29 , m_sensor(new QTapSensor(this))
30{
31 connect(sender: m_sensor, SIGNAL(returnDoubleTapEventsChanged(bool)),
32 receiver: this, SIGNAL(returnDoubleTapEventsChanged(bool)));
33}
34
35QmlTapSensor::~QmlTapSensor()
36{
37}
38
39QmlSensorReading *QmlTapSensor::createReading() const
40{
41 return new QmlTapSensorReading(m_sensor);
42}
43
44QSensor *QmlTapSensor::sensor() const
45{
46 return m_sensor;
47}
48
49/*!
50 \qmlproperty bool TapSensor::returnDoubleTapEvents
51 This property holds a value indicating if double tap events should be reported.
52
53 Please see QTapSensor::returnDoubleTapEvents for information about this property.
54*/
55
56bool QmlTapSensor::returnDoubleTapEvents() const
57{
58 return m_sensor->returnDoubleTapEvents();
59}
60
61void QmlTapSensor::setReturnDoubleTapEvents(bool ret)
62{
63 m_sensor->setReturnDoubleTapEvents(ret);
64}
65
66/*!
67 \qmltype TapReading
68//! \instantiates QmlTapSensorReading
69 \ingroup qml-sensors_reading
70 \inqmlmodule QtSensors
71 \since QtSensors 5.0
72 \inherits SensorReading
73 \brief The TapReading element holds the most recent TapSensor reading.
74 \internal
75
76 The TapReading element holds the most recent TapSensor reading.
77
78 This element wraps the QTapReading class. Please see the documentation for
79 QTapReading for details.
80
81 This element cannot be directly created.
82*/
83
84QmlTapSensorReading::QmlTapSensorReading(QTapSensor *sensor)
85 : m_sensor(sensor)
86{
87}
88
89QmlTapSensorReading::~QmlTapSensorReading()
90{
91}
92
93/*!
94 \qmlproperty TapDirection TapReading::tapDirection
95 This property holds the direction of the tap.
96
97 Please see QTapReading::tapDirection for information about this property.
98
99 Note that TapDirection constants are exposed through the TapReading class.
100 \code
101 TapSensor {
102 onReadingChanged: {
103 if ((reading.tapDirection & TapReading.X_Both))
104 // do something
105 }
106 }
107 \endcode
108*/
109
110QTapReading::TapDirection QmlTapSensorReading::tapDirection() const
111{
112 return m_tapDirection;
113}
114
115QBindable<QTapReading::TapDirection> QmlTapSensorReading::bindableTapDirection() const
116{
117 return &m_tapDirection;
118}
119
120
121/*!
122 \qmlproperty bool TapReading::doubleTap
123 This property holds a value indicating if there was a single or double tap.
124
125 Please see QTapReading::doubleTap for information about this property.
126*/
127
128bool QmlTapSensorReading::isDoubleTap() const
129{
130 return m_isDoubleTap;
131}
132
133QBindable<bool> QmlTapSensorReading::bindableDoubleTap() const
134{
135 return &m_isDoubleTap;
136}
137
138QSensorReading *QmlTapSensorReading::reading() const
139{
140 return const_cast<QTapSensor*>(m_sensor)->reading();
141}
142
143void QmlTapSensorReading::readingUpdate()
144{
145 m_tapDirection = m_sensor->reading()->tapDirection();
146 m_isDoubleTap = m_sensor->reading()->isDoubleTap();
147}
148

source code of qtsensors/src/sensorsquick/qmltapsensor.cpp