44 |
44 |
45 #include <qsensorbackend.h> |
45 #include <qsensorbackend.h> |
46 #include <sensormanagerinterface.h> |
46 #include <sensormanagerinterface.h> |
47 #include <abstractsensor_i.h> |
47 #include <abstractsensor_i.h> |
48 |
48 |
|
49 |
49 QTM_USE_NAMESPACE |
50 QTM_USE_NAMESPACE |
50 |
51 |
51 class maemo6sensorbase : public QSensorBackend |
52 class maemo6sensorbase : public QSensorBackend |
52 { |
53 { |
53 public: |
54 public: |
54 maemo6sensorbase(QSensor *sensor); |
55 maemo6sensorbase(QSensor *sensor); |
55 virtual ~maemo6sensorbase(); |
56 virtual ~maemo6sensorbase(); |
56 |
57 |
|
58 |
|
59 protected: |
57 virtual void start(); |
60 virtual void start(); |
58 virtual void stop(); |
61 virtual void stop(); |
59 |
|
60 protected: |
|
61 static SensorManagerInterface* m_remoteSensorManager; |
|
62 AbstractSensorChannelInterface* m_sensorInterface; |
62 AbstractSensorChannelInterface* m_sensorInterface; |
63 bool m_sensorRunning; |
|
64 |
63 |
65 static const float GRAVITY_EARTH; |
64 static const float GRAVITY_EARTH; |
66 static const float GRAVITY_EARTH_THOUSANDTH; //for speed |
65 static const float GRAVITY_EARTH_THOUSANDTH; //for speed |
67 |
66 |
68 template<typename T> |
67 template<typename T> |
69 void initSensor(QString sensorName) |
68 void initSensor(QString sensorName, bool &initDone) |
70 { |
69 { |
71 m_remoteSensorManager->loadPlugin(sensorName); |
70 |
72 m_remoteSensorManager->registerSensorInterface<T>(sensorName); |
71 if (!initDone) { |
|
72 m_remoteSensorManager->loadPlugin(sensorName); |
|
73 m_remoteSensorManager->registerSensorInterface<T>(sensorName); |
|
74 } |
73 m_sensorInterface = T::controlInterface(sensorName); |
75 m_sensorInterface = T::controlInterface(sensorName); |
74 if (!m_sensorInterface) { |
76 if (!m_sensorInterface) { |
75 m_sensorInterface = const_cast<T*>(T::listenInterface(sensorName)); |
77 m_sensorInterface = const_cast<T*>(T::listenInterface(sensorName)); |
|
78 |
76 } |
79 } |
77 } |
80 initDone = true; |
|
81 }; |
|
82 |
|
83 private: |
|
84 static SensorManagerInterface* m_remoteSensorManager; |
|
85 |
78 }; |
86 }; |
79 |
87 |
80 #endif |
88 #endif |