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 "qmlrotationsensor_p.h"
5#include <QtSensors/QRotationSensor>
6
7/*!
8 \qmltype RotationSensor
9//! \instantiates QmlRotationSensor
10 \ingroup qml-sensors_type
11 \inqmlmodule QtSensors
12 \since QtSensors 5.0
13 \inherits Sensor
14 \brief The RotationSensor element reports on device rotation
15 around the X, Y and Z axes.
16
17 The RotationSensor element reports on device rotation
18 around the X, Y and Z axes.
19
20 This element wraps the QRotationSensor class. Please see the documentation for
21 QRotationSensor for details.
22
23 \sa RotationReading
24*/
25
26QmlRotationSensor::QmlRotationSensor(QObject *parent)
27 : QmlSensor(parent)
28 , m_sensor(new QRotationSensor(this))
29{
30 connect(sender: m_sensor, SIGNAL(hasZChanged(bool)), receiver: this, SIGNAL(hasZChanged(bool)));
31}
32
33QmlRotationSensor::~QmlRotationSensor()
34{
35}
36
37QmlSensorReading *QmlRotationSensor::createReading() const
38{
39 return new QmlRotationSensorReading(m_sensor);
40}
41
42QSensor *QmlRotationSensor::sensor() const
43{
44 return m_sensor;
45}
46
47/*!
48 \qmlproperty bool RotationSensor::hasZ
49 This property holds a value indicating if the z angle is available.
50
51 Please see QRotationSensor::hasZ for information about this property.
52*/
53
54bool QmlRotationSensor::hasZ() const
55{
56 return m_sensor->hasZ();
57}
58
59/*!
60 \qmltype RotationReading
61//! \instantiates QmlRotationSensorReading
62 \ingroup qml-sensors_reading
63 \inqmlmodule QtSensors
64 \since QtSensors 5.0
65 \inherits SensorReading
66 \brief The RotationReading element holds the most recent RotationSensor reading.
67
68 The RotationReading element holds the most recent RotationSensor reading.
69
70 This element wraps the QRotationReading class. Please see the documentation for
71 QRotationReading for details.
72
73 This element cannot be directly created.
74*/
75
76QmlRotationSensorReading::QmlRotationSensorReading(QRotationSensor *sensor)
77 : m_sensor(sensor)
78{
79}
80
81QmlRotationSensorReading::~QmlRotationSensorReading()
82{
83}
84
85/*!
86 \qmlproperty qreal RotationReading::x
87 This property holds the rotation around the x axis.
88
89 Please see QRotationReading::x for information about this property.
90*/
91
92qreal QmlRotationSensorReading::x() const
93{
94 return m_x;
95}
96
97QBindable<qreal> QmlRotationSensorReading::bindableX() const
98{
99 return &m_x;
100}
101
102/*!
103 \qmlproperty qreal RotationReading::y
104 This property holds the rotation around the y axis.
105
106 Please see QRotationReading::y for information about this property.
107*/
108
109qreal QmlRotationSensorReading::y() const
110{
111 return m_y;
112}
113
114QBindable<qreal> QmlRotationSensorReading::bindableY() const
115{
116 return &m_y;
117}
118
119/*!
120 \qmlproperty qreal RotationReading::z
121 This property holds the rotation around the z axis.
122
123 Please see QRotationReading::z for information about this property.
124*/
125
126qreal QmlRotationSensorReading::z() const
127{
128 return m_z;
129}
130
131QBindable<qreal> QmlRotationSensorReading::bindableZ() const
132{
133 return &m_z;
134}
135
136QSensorReading *QmlRotationSensorReading::reading() const
137{
138 return m_sensor->reading();
139}
140
141void QmlRotationSensorReading::readingUpdate()
142{
143 m_x = m_sensor->reading()->x();
144 m_y = m_sensor->reading()->y();
145 m_z = m_sensor->reading()->z();
146}
147

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