diff options
author | Lorn Potter <lorn.potter@gmail.com> | 2021-01-06 07:30:03 +1000 |
---|---|---|
committer | Juha Vuolle <juha.vuolle@insta.fi> | 2021-04-19 13:29:47 +0300 |
commit | 45c8ae3232df8955644697ee88c4321f26bb5cf2 (patch) | |
tree | 77edea26c249ce6bb8a921fe67c266d3c95e094a /src/sensors/gestures | |
parent | 5a8aa096dc61336ac95734e8cc61f106e359c865 (diff) |
QtSensors initial cmake support
This commit introduces the bare minimum cmake support that should
unblock the CI and allow further verification and development on most
platforms: macOS, Linux, Win, iOS and Android.
Some clarifications:
* The support for sensorfw backend is very preliminary and can
be enabled later if needed (no Qt6 version of the sensorfw).
* The simulator backend is dropped as obsolete / unnecessary.
* Three examples are currently commented out and shall be ported with
a later commit.
Task-number: QTBUG-92502
Change-Id: Id523d43ed3ef177010dc73afc5812ed374cff0dd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'src/sensors/gestures')
-rw-r--r-- | src/sensors/gestures/qsensorgesturemanagerprivate.cpp | 59 | ||||
-rw-r--r-- | src/sensors/gestures/qsensorgesturemanagerprivate_p.h | 14 | ||||
-rw-r--r-- | src/sensors/gestures/qsensorgesturerecognizer.cpp | 17 | ||||
-rw-r--r-- | src/sensors/gestures/simulatorgesturescommon.cpp | 121 | ||||
-rw-r--r-- | src/sensors/gestures/simulatorgesturescommon_p.h | 92 |
5 files changed, 3 insertions, 300 deletions
diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp index 81e87de0..09b068d6 100644 --- a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp +++ b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp @@ -46,10 +46,6 @@ #include "qsensorgesturemanagerprivate_p.h" #include "qsensorgestureplugininterface.h" -#ifdef SIMULATOR_BUILD -#include "simulatorgesturescommon_p.h" -#endif - Q_GLOBAL_STATIC(QSensorGestureManagerPrivate, sensorGestureManagerPrivate) QT_BEGIN_NAMESPACE @@ -57,18 +53,6 @@ QT_BEGIN_NAMESPACE QSensorGestureManagerPrivate::QSensorGestureManagerPrivate(QObject *parent) : QObject(parent) { -#ifdef SIMULATOR_BUILD - SensorGesturesConnection *connection = new SensorGesturesConnection(this); - connect(connection,SIGNAL(sensorGestureDetected()), - this,SLOT(sensorGestureDetected())); - - connect(this,SIGNAL(newSensorGestures(QStringList)), - connection,SLOT(newSensorGestures(QStringList))); - - connect(this,SIGNAL(removeSensorGestures(QStringList)), - connection,SLOT(removeSensorGestures(QStringList))); -#endif - loader = new QFactoryLoader("org.qt-project.QSensorGesturePluginInterface", QLatin1String("/sensorgestures")); loadPlugins(); } @@ -189,49 +173,6 @@ QStringList QSensorGestureManagerPrivate::gestureIds() return knownIds; } -#ifdef SIMULATOR_BUILD -void QSensorGestureManagerPrivate::sensorGestureDetected() -{ - QString str = get_qtSensorGestureData(); - - Q_FOREACH (const QString &id, gestureIds()) { - QSensorGestureRecognizer *recognizer = sensorGestureRecognizer(id); - if (recognizer != 0) { - Q_FOREACH (const QString &sig, recognizer->gestureSignals()) { - if (!sig.contains(QLatin1String("detected"))) { //weed out detected signals - QString tmp; - tmp = sig.left(sig.length() - 2); - if (str == tmp) { - // named signal for c++ - QMetaObject::invokeMethod(recognizer, str.toLocal8Bit(), Qt::DirectConnection); - // detected signal for qml and c++ - QMetaObject::invokeMethod(recognizer, "detected", Qt::DirectConnection, - Q_ARG(QString, str)); - break; - - } - } - } - } - } -} - -void QSensorGestureManagerPrivate::recognizerStarted(const QSensorGestureRecognizer *recognizer) -{ - QStringList list = recognizer->gestureSignals(); - list.removeOne(QLatin1String("detected(QString)")); - Q_EMIT newSensorGestures(list); -} - -void QSensorGestureManagerPrivate::recognizerStopped(const QSensorGestureRecognizer *recognizer) -{ - QStringList list = recognizer->gestureSignals(); - list.removeOne(QLatin1String("detected(QString)")); - Q_EMIT removeSensorGestures(list); -} - -#endif - QSensorGestureManagerPrivate * QSensorGestureManagerPrivate::instance() { QSensorGestureManagerPrivate *priv = sensorGestureManagerPrivate(); diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h index 2ca4d648..e57ede49 100644 --- a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h +++ b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h @@ -86,24 +86,10 @@ public: QStringList gestureIds(); QStringList knownIds; void initPlugin(QObject *o); -#ifdef SIMULATOR_BUILD - void recognizerStarted(const QSensorGestureRecognizer *); - void recognizerStopped(const QSensorGestureRecognizer *); -#endif static QSensorGestureManagerPrivate * instance(); Q_SIGNALS: void newSensorGestureAvailable(); - -#ifdef SIMULATOR_BUILD -Q_SIGNALS: - void newSensorGestures(QStringList); - void removeSensorGestures(QStringList); - -private slots: - void sensorGestureDetected(); - -#endif }; QT_END_NAMESPACE diff --git a/src/sensors/gestures/qsensorgesturerecognizer.cpp b/src/sensors/gestures/qsensorgesturerecognizer.cpp index c992ac01..d9a367eb 100644 --- a/src/sensors/gestures/qsensorgesturerecognizer.cpp +++ b/src/sensors/gestures/qsensorgesturerecognizer.cpp @@ -39,11 +39,8 @@ #include "qsensorgesturerecognizer.h" #include "qsensorgesture_p.h" - #include "qsensorgesturemanager.h" -#ifdef SIMULATOR_BUILD -#include "qsensorgesturemanagerprivate_p.h" -#endif + QT_BEGIN_NAMESPACE /*! @@ -187,12 +184,8 @@ void QSensorGestureRecognizer::startBackend() qWarning() << "Not starting. Gesture Recognizer not initialized"; return; } - if (d_ptr->count++ == 0) { + if (d_ptr->count++ == 0) start(); -#ifdef SIMULATOR_BUILD - QSensorGestureManagerPrivate::instance()->recognizerStarted(this); -#endif - } } /*! @@ -207,12 +200,8 @@ void QSensorGestureRecognizer::stopBackend() qWarning() << "Not stopping. Gesture Recognizer not initialized"; return; } - if (--d_ptr->count == 0) { + if (--d_ptr->count == 0) stop(); -#ifdef SIMULATOR_BUILD - QSensorGestureManagerPrivate::instance()->recognizerStopped(this); -#endif - } } QT_END_NAMESPACE diff --git a/src/sensors/gestures/simulatorgesturescommon.cpp b/src/sensors/gestures/simulatorgesturescommon.cpp deleted file mode 100644 index b7860423..00000000 --- a/src/sensors/gestures/simulatorgesturescommon.cpp +++ /dev/null @@ -1,121 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "simulatorgesturescommon_p.h" - -#include <QtSimulator/version.h> -#include <QtSimulator/QtSimulator> - -#include <QDebug> -#include <QStringList> - -using namespace Simulator; - - -Q_GLOBAL_STATIC(QString, qtSensorGestureData) - -SensorGesturesConnection::SensorGesturesConnection(QObject *parent) - : QObject(parent) -{ - mConnection = new Connection(Connection::Client, QLatin1String("QtSimulator_Mobility_ServerName1.3.0.0"), - 0xbeef+1, Version(1,0,0,0), this); - mWorker = mConnection->connectToServer(Connection::simulatorHostName(true), 0xbeef+1); - - if (!mWorker) { - qWarning() << "Could not connect to server"; - return; - } - - mWorker->addReceiver(this); - mWorker->call("setRequestsSensorGestures"); -} - -SensorGesturesConnection::~SensorGesturesConnection() -{ - mWorker->call("setSensorGestures", QStringList()); - delete mWorker; -} - -void SensorGesturesConnection::setSensorGestureData(const QString &data) -{ - QString gesture = data; - if (data.contains(QLatin1String("detected"))) { - gesture.remove(QLatin1String("detected(")); - gesture.remove(QLatin1String(")")); - } - *qtSensorGestureData() = gesture; -} - -void SensorGesturesConnection::newSensorGestureDetected() -{ - emit sensorGestureDetected(); -} - -void SensorGesturesConnection::newSensorGestures(const QStringList &gestures) -{ - if (!mWorker) return; - - Q_FOREACH (const QString &gest, gestures) { - if (!gest.contains(QLatin1String("detected"))) { - QString tmp = gest.left(gest.length()-2); - if (!allGestures.contains(tmp)) { - allGestures.append(tmp); - } - } - } - - mWorker->call("setSensorGestures", allGestures); -} - -void SensorGesturesConnection::removeSensorGestures(const QStringList &gestures) -{ - Q_FOREACH (const QString &gest, gestures) { - QString tmp = gest.left(gest.length()-2); - if (allGestures.contains(tmp)) { - allGestures.removeOne(tmp); - } - } - mWorker->call("setSensorGestures", allGestures); -} - -QString get_qtSensorGestureData() -{ - return *qtSensorGestureData(); -} - diff --git a/src/sensors/gestures/simulatorgesturescommon_p.h b/src/sensors/gestures/simulatorgesturescommon_p.h deleted file mode 100644 index 63022238..00000000 --- a/src/sensors/gestures/simulatorgesturescommon_p.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SIMULATORGESTURESCOMMON_H -#define SIMULATORGESTURESCOMMON_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include <QtSimulator/connection.h> -#include <QtSimulator/connectionworker.h> -#include <QStringList> - -class QTimer; - -namespace Simulator -{ - class Connection; - class ConnectionWorker; -} - -class SensorGesturesConnection : public QObject -{ - Q_OBJECT -public: - explicit SensorGesturesConnection(QObject *parent = 0); - virtual ~SensorGesturesConnection(); - -Q_SIGNALS: - void sensorGestureDetected(); - -public slots: - void setSensorGestureData(const QString &); - void newSensorGestureDetected(); - void newSensorGestures(const QStringList &gestures); - void removeSensorGestures(const QStringList &gestures); - -private: - Simulator::Connection *mConnection; - Simulator::ConnectionWorker *mWorker; - QStringList allGestures; - -}; - -QString get_qtSensorGestureData(); - -#endif //SIMULATORGESTURESCOMMON_H - |