qtmobility/plugins/sensors/maemo6/maemo6sensorbase.h
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    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