summaryrefslogtreecommitdiffstats
path: root/src/plugins/sensors/ios
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/sensors/ios')
-rw-r--r--src/plugins/sensors/ios/ios.pro56
-rw-r--r--src/plugins/sensors/ios/iosaccelerometer.h10
-rw-r--r--src/plugins/sensors/ios/iosaccelerometer.mm4
-rw-r--r--src/plugins/sensors/ios/ioscompass.h4
-rw-r--r--src/plugins/sensors/ios/iosgyroscope.h10
-rw-r--r--src/plugins/sensors/ios/iosgyroscope.mm2
-rw-r--r--src/plugins/sensors/ios/iosmagnetometer.h10
-rw-r--r--src/plugins/sensors/ios/iosmagnetometer.mm2
-rw-r--r--src/plugins/sensors/ios/iosmotionmanager.h5
-rw-r--r--src/plugins/sensors/ios/iosmotionmanager.mm2
-rw-r--r--src/plugins/sensors/ios/iosproximitysensor.h8
-rw-r--r--src/plugins/sensors/ios/main.mm18
12 files changed, 89 insertions, 42 deletions
diff --git a/src/plugins/sensors/ios/ios.pro b/src/plugins/sensors/ios/ios.pro
index b7ddb8fd..91ec3ae0 100644
--- a/src/plugins/sensors/ios/ios.pro
+++ b/src/plugins/sensors/ios/ios.pro
@@ -3,22 +3,46 @@ QT = core sensors
OTHER_FILES = plugin.json
-HEADERS += iosaccelerometer.h \
- iosmotionmanager.h \
- iosgyroscope.h \
- iosmagnetometer.h \
- ioscompass.h \
- iosproximitysensor.h
-
-OBJECTIVE_SOURCES += main.mm \
- iosaccelerometer.mm \
- iosmotionmanager.mm \
- iosgyroscope.mm \
- iosmagnetometer.mm \
- ioscompass.mm \
- iosproximitysensor.mm
-
-LIBS += -framework Foundation -framework UIKit -framework CoreMotion -framework CoreLocation
+OBJECTIVE_SOURCES += main.mm
+LIBS += -framework Foundation
+
+uikit {
+ ios {
+ HEADERS += \
+ ioscompass.h
+ OBJECTIVE_SOURCES += \
+ ioscompass.mm
+
+ DEFINES += HAVE_COMPASS
+ LIBS += -framework CoreLocation
+ }
+
+ !tvos {
+ HEADERS += \
+ iosaccelerometer.h \
+ iosgyroscope.h \
+ iosmagnetometer.h \
+ iosmotionmanager.h
+ OBJECTIVE_SOURCES += \
+ iosaccelerometer.mm \
+ iosgyroscope.mm \
+ iosmagnetometer.mm \
+ iosmotionmanager.mm
+
+ DEFINES += HAVE_COREMOTION
+ LIBS += -framework CoreMotion
+ }
+
+ !watchos {
+ HEADERS += \
+ iosproximitysensor.h
+ OBJECTIVE_SOURCES += \
+ iosproximitysensor.mm
+
+ DEFINES += HAVE_UIDEVICE
+ LIBS += -framework UIKit
+ }
+}
PLUGIN_TYPE = sensors
PLUGIN_CLASS_NAME = IOSSensorPlugin
diff --git a/src/plugins/sensors/ios/iosaccelerometer.h b/src/plugins/sensors/ios/iosaccelerometer.h
index 620015f2..4ac73a97 100644
--- a/src/plugins/sensors/ios/iosaccelerometer.h
+++ b/src/plugins/sensors/ios/iosaccelerometer.h
@@ -40,11 +40,11 @@
#ifndef IOSACCELEROMETER_H
#define IOSACCELEROMETER_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qaccelerometer.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSAccelerometer : public QSensorBackend
@@ -53,10 +53,10 @@ public:
static char const * const id;
explicit IOSAccelerometer(QSensor *sensor);
- void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) override;
- void start() Q_DECL_OVERRIDE;
- void stop() Q_DECL_OVERRIDE;
+ void start() override;
+ void stop() override;
private:
CMMotionManager *m_motionManager;
diff --git a/src/plugins/sensors/ios/iosaccelerometer.mm b/src/plugins/sensors/ios/iosaccelerometer.mm
index 2d2e27ae..d2d6e9fb 100644
--- a/src/plugins/sensors/ios/iosaccelerometer.mm
+++ b/src/plugins/sensors/ios/iosaccelerometer.mm
@@ -37,11 +37,11 @@
**
****************************************************************************/
-#include <UIKit/UIAccelerometer.h>
-
#include "iosaccelerometer.h"
#include "iosmotionmanager.h"
+#import <CoreMotion/CoreMotion.h>
+
char const * const IOSAccelerometer::id("ios.accelerometer");
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensors/ios/ioscompass.h b/src/plugins/sensors/ios/ioscompass.h
index 997b1dfa..2babc92a 100644
--- a/src/plugins/sensors/ios/ioscompass.h
+++ b/src/plugins/sensors/ios/ioscompass.h
@@ -55,8 +55,8 @@ public:
explicit IOSCompass(QSensor *sensor);
~IOSCompass();
- void start() Q_DECL_OVERRIDE;
- void stop() Q_DECL_OVERRIDE;
+ void start() override;
+ void stop() override;
void headingChanged(qreal heading, quint64 timestamp, qreal calibrationLevel);
diff --git a/src/plugins/sensors/ios/iosgyroscope.h b/src/plugins/sensors/ios/iosgyroscope.h
index d8ff04a1..0d7fea49 100644
--- a/src/plugins/sensors/ios/iosgyroscope.h
+++ b/src/plugins/sensors/ios/iosgyroscope.h
@@ -40,11 +40,11 @@
#ifndef IOSGYROSCOPE_H
#define IOSGYROSCOPE_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qgyroscope.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSGyroscope : public QSensorBackend
@@ -53,10 +53,10 @@ public:
static char const * const id;
explicit IOSGyroscope(QSensor *sensor);
- void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) override;
- void start() Q_DECL_OVERRIDE;
- void stop() Q_DECL_OVERRIDE;
+ void start() override;
+ void stop() override;
private:
CMMotionManager *m_motionManager;
diff --git a/src/plugins/sensors/ios/iosgyroscope.mm b/src/plugins/sensors/ios/iosgyroscope.mm
index 19e65e57..0cd37aea 100644
--- a/src/plugins/sensors/ios/iosgyroscope.mm
+++ b/src/plugins/sensors/ios/iosgyroscope.mm
@@ -40,6 +40,8 @@
#include "iosmotionmanager.h"
#include "iosgyroscope.h"
+#import <CoreMotion/CoreMotion.h>
+
char const * const IOSGyroscope::id("ios.gyroscope");
QT_BEGIN_NAMESPACE
diff --git a/src/plugins/sensors/ios/iosmagnetometer.h b/src/plugins/sensors/ios/iosmagnetometer.h
index 00d921e8..2c55eac3 100644
--- a/src/plugins/sensors/ios/iosmagnetometer.h
+++ b/src/plugins/sensors/ios/iosmagnetometer.h
@@ -40,11 +40,11 @@
#ifndef IOSMAGNETOMETER_H
#define IOSMAGNETOMETER_H
-#include <CoreMotion/CMMotionManager.h>
-
#include <qsensorbackend.h>
#include <qmagnetometer.h>
+@class CMMotionManager;
+
QT_BEGIN_NAMESPACE
class IOSMagnetometer : public QSensorBackend
@@ -53,10 +53,10 @@ public:
static char const * const id;
explicit IOSMagnetometer(QSensor *sensor);
- void timerEvent(QTimerEvent *) Q_DECL_OVERRIDE;
+ void timerEvent(QTimerEvent *) override;
- void start() Q_DECL_OVERRIDE;
- void stop() Q_DECL_OVERRIDE;
+ void start() override;
+ void stop() override;
void startMagnetometer();
void startDeviceMotion();
diff --git a/src/plugins/sensors/ios/iosmagnetometer.mm b/src/plugins/sensors/ios/iosmagnetometer.mm
index 98bef2dd..bfbe6e6d 100644
--- a/src/plugins/sensors/ios/iosmagnetometer.mm
+++ b/src/plugins/sensors/ios/iosmagnetometer.mm
@@ -40,6 +40,8 @@
#include "iosmotionmanager.h"
#include "iosmagnetometer.h"
+#import <CoreMotion/CoreMotion.h>
+
QT_BEGIN_NAMESPACE
char const * const IOSMagnetometer::id("ios.magnetometer");
diff --git a/src/plugins/sensors/ios/iosmotionmanager.h b/src/plugins/sensors/ios/iosmotionmanager.h
index 6e0cbd62..7c2a1b27 100644
--- a/src/plugins/sensors/ios/iosmotionmanager.h
+++ b/src/plugins/sensors/ios/iosmotionmanager.h
@@ -40,8 +40,9 @@
#ifndef IOSMOTIONMANAGER_H
#define IOSMOTIONMANAGER_H
-#import <UIKit/UIKit.h>
-#import <CoreMotion/CoreMotion.h>
+#import <Foundation/Foundation.h>
+
+@class CMMotionManager;
@interface QIOSMotionManager : NSObject {
}
diff --git a/src/plugins/sensors/ios/iosmotionmanager.mm b/src/plugins/sensors/ios/iosmotionmanager.mm
index 7db56a21..90741089 100644
--- a/src/plugins/sensors/ios/iosmotionmanager.mm
+++ b/src/plugins/sensors/ios/iosmotionmanager.mm
@@ -39,6 +39,8 @@
#include "iosmotionmanager.h"
+#import <CoreMotion/CoreMotion.h>
+
static CMMotionManager *sharedManager = nil;
@implementation QIOSMotionManager
diff --git a/src/plugins/sensors/ios/iosproximitysensor.h b/src/plugins/sensors/ios/iosproximitysensor.h
index 99f9564e..0d69391f 100644
--- a/src/plugins/sensors/ios/iosproximitysensor.h
+++ b/src/plugins/sensors/ios/iosproximitysensor.h
@@ -43,10 +43,10 @@
#include <qsensorbackend.h>
#include <qproximitysensor.h>
-QT_BEGIN_NAMESPACE
-
@class ProximitySensorCallback;
+QT_BEGIN_NAMESPACE
+
class IOSProximitySensor : public QSensorBackend
{
public:
@@ -55,8 +55,8 @@ public:
explicit IOSProximitySensor(QSensor *sensor);
~IOSProximitySensor();
- void start() Q_DECL_OVERRIDE;
- void stop() Q_DECL_OVERRIDE;
+ void start() override;
+ void stop() override;
void proximityChanged(bool close);
static bool available();
diff --git a/src/plugins/sensors/ios/main.mm b/src/plugins/sensors/ios/main.mm
index 40f84e9a..a4766c37 100644
--- a/src/plugins/sensors/ios/main.mm
+++ b/src/plugins/sensors/ios/main.mm
@@ -48,6 +48,11 @@
#include "ioscompass.h"
#include "iosproximitysensor.h"
+#import <CoreLocation/CoreLocation.h>
+#ifdef HAVE_COREMOTION
+#import <CoreMotion/CoreMotion.h>
+#endif
+
class IOSSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorBackendFactory
{
Q_OBJECT
@@ -56,30 +61,41 @@ class IOSSensorPlugin : public QObject, public QSensorPluginInterface, public QS
public:
void registerSensors()
{
+#ifdef HAVE_COREMOTION
QSensorManager::registerBackend(QAccelerometer::type, IOSAccelerometer::id, this);
if ([QIOSMotionManager sharedManager].gyroAvailable)
QSensorManager::registerBackend(QGyroscope::type, IOSGyroscope::id, this);
if ([QIOSMotionManager sharedManager].magnetometerAvailable)
QSensorManager::registerBackend(QMagnetometer::type, IOSMagnetometer::id, this);
+#endif
+#ifdef HAVE_COMPASS
if ([CLLocationManager headingAvailable])
QSensorManager::registerBackend(QCompass::type, IOSCompass::id, this);
+#endif
+#ifdef HAVE_UIDEVICE
if (IOSProximitySensor::available())
QSensorManager::registerBackend(QProximitySensor::type, IOSProximitySensor::id, this);
+#endif
}
QSensorBackend *createBackend(QSensor *sensor)
{
+#ifdef HAVE_COREMOTION
if (sensor->identifier() == IOSAccelerometer::id)
return new IOSAccelerometer(sensor);
if (sensor->identifier() == IOSGyroscope::id)
return new IOSGyroscope(sensor);
if (sensor->identifier() == IOSMagnetometer::id)
return new IOSMagnetometer(sensor);
+#endif
+#ifdef HAVE_COMPASS
if (sensor->identifier() == IOSCompass::id)
return new IOSCompass(sensor);
+#endif
+#ifdef HAVE_UIDEVICE
if (sensor->identifier() == IOSProximitySensor::id)
return new IOSProximitySensor(sensor);
-
+#endif
return 0;
}
};