qtmobility/plugins/sensors/n900/n900filebasedsensor.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    43 
    43 
    44 n900filebasedsensor::n900filebasedsensor(QSensor *sensor)
    44 n900filebasedsensor::n900filebasedsensor(QSensor *sensor)
    45     : QSensorBackend(sensor)
    45     : QSensorBackend(sensor)
    46     , m_timerid(0)
    46     , m_timerid(0)
    47 {
    47 {
    48     setSupportedUpdatePolicies(QSensor::OccasionalUpdates |
    48 }
    49             QSensor::InfrequentUpdates |
    49 
    50             QSensor::FrequentUpdates |
    50 n900filebasedsensor::~n900filebasedsensor()
    51             QSensor::TimedUpdates |
    51 {
    52             QSensor::PolledUpdates);
       
    53 }
    52 }
    54 
    53 
    55 void n900filebasedsensor::start()
    54 void n900filebasedsensor::start()
    56 {
    55 {
    57     if (m_timerid)
    56     if (m_timerid)
    58         return;
    57         return;
    59 
    58 
    60     int interval = m_sensor->updateInterval();
    59     if (sensor()->dataRate() == 0) {
       
    60         sensorStopped();
       
    61         return;
       
    62     }
    61 
    63 
    62     switch (m_sensor->updatePolicy()) {
    64     int interval = 1000 / sensor()->dataRate();
    63     case QSensor::OccasionalUpdates:
    65     if (interval < 0)
    64         interval = 5000;
       
    65         break;
       
    66     case QSensor::InfrequentUpdates:
       
    67         interval = 1000;
    66         interval = 1000;
    68         break;
       
    69     case QSensor::Undefined: /* fall through */
       
    70     case QSensor::FrequentUpdates:
       
    71         interval = 100;
       
    72         break;
       
    73     case QSensor::TimedUpdates:
       
    74         // already set
       
    75         break;
       
    76     default:
       
    77         interval = 0;
       
    78         break;
       
    79     }
       
    80 
    67 
    81     if (interval)
    68     if (interval)
    82         m_timerid = startTimer(interval);
    69         m_timerid = startTimer(interval);
    83 }
    70 }
    84 
    71