diff options
Diffstat (limited to 'src/qtmsensors/qsensor.h')
-rw-r--r-- | src/qtmsensors/qsensor.h | 254 |
1 files changed, 0 insertions, 254 deletions
diff --git a/src/qtmsensors/qsensor.h b/src/qtmsensors/qsensor.h deleted file mode 100644 index b8a0291a..00000000 --- a/src/qtmsensors/qsensor.h +++ /dev/null @@ -1,254 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtSensors module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this -** file. Please review the following information to ensure the GNU Lesser -** General Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTM_QSENSOR_H -#define QTM_QSENSOR_H - -#include <QtCore/QObject> -#include <QtCore/QByteArray> -#include <QtCore/QMetaType> -#include <QtCore/QVariant> -#include <QtCore/QPair> - -#include "qtmsensorsglobal.h" - -QT_BEGIN_NAMESPACE -QTM_BEGIN_NAMESPACE - -class QSensorPrivate; -class QSensorReading; -class QSensorReadingPrivate; -class QSensorFilter; - -// This type is no longer used in the API but third party apps may be using it -typedef quint64 qtimestamp; - -typedef QPair<int,int> qrange; -typedef QList<qrange> qrangelist; -struct qoutputrange -{ - qreal minimum; - qreal maximum; - qreal accuracy; -}; -typedef QList<qoutputrange> qoutputrangelist; - -class QTM_SENSORS_EXPORT QSensor : public QObject -{ - friend class QSensorBackend; - - Q_OBJECT - Q_PROPERTY(QByteArray sensorid READ identifier WRITE setIdentifier) - Q_PROPERTY(QByteArray type READ type) - Q_PROPERTY(bool connectedToBackend READ isConnectedToBackend) - Q_PROPERTY(qrangelist availableDataRates READ availableDataRates) - Q_PROPERTY(int dataRate READ dataRate WRITE setDataRate) - Q_PROPERTY(QSensorReading* reading READ reading NOTIFY readingChanged) - Q_PROPERTY(bool busy READ isBusy) - Q_PROPERTY(bool active READ isActive WRITE setActive NOTIFY activeChanged) - Q_PROPERTY(qoutputrangelist outputRanges READ outputRanges) - Q_PROPERTY(int outputRange READ outputRange WRITE setOutputRange) - Q_PROPERTY(QString description READ description) - Q_PROPERTY(int error READ error NOTIFY sensorError) -#ifdef Q_QDOC - Q_PROPERTY(int maxBufferSize) - Q_PROPERTY(int efficientBufferSize) - Q_PROPERTY(int bufferSize) -#endif -public: - explicit QSensor(const QByteArray &type, QObject *parent = 0); - virtual ~QSensor(); - - QByteArray identifier() const; - void setIdentifier(const QByteArray &identifier); - - QByteArray type() const; - - Q_INVOKABLE bool connectToBackend(); - bool isConnectedToBackend() const; - - bool isBusy() const; - - void setActive(bool active); - bool isActive() const; - - qrangelist availableDataRates() const; - int dataRate() const; - void setDataRate(int rate); - - qoutputrangelist outputRanges() const; - int outputRange() const; - void setOutputRange(int index); - - QString description() const; - int error() const; - - // Filters modify the reading - void addFilter(QSensorFilter *filter); - void removeFilter(QSensorFilter *filter); - QList<QSensorFilter*> filters() const; - - // The readings are exposed via this object - QSensorReading *reading() const; - - // Information about available sensors - // These functions are implemented in qsensormanager.cpp - static QList<QByteArray> sensorTypes(); - static QList<QByteArray> sensorsForType(const QByteArray &type); - static QByteArray defaultSensorForType(const QByteArray &type); - - // These are here so we can catch dynamic properties and share - // them with the non-legacy sensor that is being wrapped - void setProperty(const char *name, const QVariant &value); - QVariant property(const char *name) const; - -public Q_SLOTS: - // Start receiving values from the sensor - bool start(); - - // Stop receiving values from the sensor - void stop(); - -Q_SIGNALS: - void busyChanged(); - void activeChanged(); - void readingChanged(); - void sensorError(int error); - void availableSensorsChanged(); - -protected: - // called by the back end - QSensorPrivate *d_func() const { return d.data(); } - -private: - void registerInstance(); - - QScopedPointer<QSensorPrivate> d; - Q_DISABLE_COPY(QSensor) -}; - -class QTM_SENSORS_EXPORT QSensorFilter -{ - friend class QSensor; -public: - virtual bool filter(QSensorReading *reading) = 0; -protected: - QSensorFilter(); - ~QSensorFilter(); - virtual void setSensor(QSensor *sensor); - QSensor *m_sensor; -}; - -class QTM_SENSORS_EXPORT QSensorReading : public QObject -{ - friend class QSensorBackend; - - Q_OBJECT - Q_PROPERTY(quint64 timestamp READ timestamp) -public: - virtual ~QSensorReading(); - - quint64 timestamp() const; - void setTimestamp(quint64 timestamp); - - // Access properties of sub-classes by numeric index - // For name-based access use QObject::property() - int valueCount() const; - QVariant value(int index) const; - -protected: - explicit QSensorReading(QObject *parent, QSensorReadingPrivate *d); - QScopedPointer<QSensorReadingPrivate> *d_ptr() { return &d; } - virtual void copyValuesFrom(QSensorReading *other); - -private: - QScopedPointer<QSensorReadingPrivate> d; - Q_DISABLE_COPY(QSensorReading) -}; - -#undef DECLARE_READING -#undef DECLARE_READING_D -#undef IMPLEMENT_READING -#undef IMPLEMENT_READING_D - -#define DECLARE_READING(classname)\ - DECLARE_READING_D(classname, classname ## Private) - -#define DECLARE_READING_D(classname, pclassname)\ - public:\ - classname(QObject *parent = 0);\ - virtual ~classname();\ - void copyValuesFrom(QSensorReading *other);\ - private:\ - QScopedPointer<pclassname> d; - -#define IMPLEMENT_READING(classname)\ - IMPLEMENT_READING_D(classname, classname ## Private) - -#define IMPLEMENT_READING_D(classname, pclassname)\ - classname::classname(QObject *parent)\ - : QSensorReading(parent, 0)\ - , d(new pclassname)\ - {}\ - classname::~classname() {}\ - void classname::copyValuesFrom(QSensorReading *_other)\ - {\ - /* No need to verify types, only called by QSensorBackend */\ - classname *other = static_cast<classname *>(_other);\ - pclassname *my_ptr = d.data();\ - pclassname *other_ptr = other->d.data();\ - /* Do a direct copy of the private class */\ - *(my_ptr) = *(other_ptr);\ - /* We need to copy the parent too */\ - QSensorReading::copyValuesFrom(_other);\ - } - -QTM_END_NAMESPACE -QT_END_NAMESPACE - -#if 0 -Q_DECLARE_METATYPE(QTM_PREPEND_NAMESPACE(qrange)) -Q_DECLARE_METATYPE(QTM_PREPEND_NAMESPACE(qrangelist)) -Q_DECLARE_METATYPE(QTM_PREPEND_NAMESPACE(qoutputrangelist)) -#endif - -#endif - |