qtmobility/plugins/sensors/maemo6/maemo6sensorbase.h
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
--- a/qtmobility/plugins/sensors/maemo6/maemo6sensorbase.h	Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/plugins/sensors/maemo6/maemo6sensorbase.h	Wed Jun 23 19:08:38 2010 +0300
@@ -46,6 +46,7 @@
 #include <sensormanagerinterface.h>
 #include <abstractsensor_i.h>
 
+
 QTM_USE_NAMESPACE
 
 class maemo6sensorbase : public QSensorBackend
@@ -54,27 +55,34 @@
     maemo6sensorbase(QSensor *sensor);
     virtual ~maemo6sensorbase();
 
-    virtual void start();
-    virtual void stop();
 
 protected:
-    static SensorManagerInterface* m_remoteSensorManager;
+    virtual void start();
+    virtual void stop();
     AbstractSensorChannelInterface* m_sensorInterface;
-    bool m_sensorRunning;
 
     static const float GRAVITY_EARTH;
     static const float GRAVITY_EARTH_THOUSANDTH;    //for speed
 
     template<typename T>
-    void initSensor(QString sensorName)
+    void initSensor(QString sensorName, bool &initDone)
     {
-        m_remoteSensorManager->loadPlugin(sensorName);
-        m_remoteSensorManager->registerSensorInterface<T>(sensorName);
+
+        if (!initDone) {
+            m_remoteSensorManager->loadPlugin(sensorName);
+            m_remoteSensorManager->registerSensorInterface<T>(sensorName);
+        }
         m_sensorInterface = T::controlInterface(sensorName);
         if (!m_sensorInterface) {
             m_sensorInterface = const_cast<T*>(T::listenInterface(sensorName));
+
         }
-    }
+        initDone = true;
+    };
+
+private:
+    static SensorManagerInterface* m_remoteSensorManager;
+
 };
 
 #endif