Commit bb75315a authored by spiiroin's avatar spiiroin

[hybrisadaptor] Provide fallback sensor maxDelay value. JB#43020

Sensor maximum delay is available from sensors device API version 1.3
onwards. If development headers are too ancient, trying to access
maxDelay member in sensor_t structure causes compilation failures.

Use fallback value for maxDelay unless both development headers and
sensors device exposed via hal indicate that sensors device API version
1.3 features are available.
Signed-off-by: spiiroin's avatarSimo Piiroinen <simo.piiroinen@jollamobile.com>
parent e05beb11
......@@ -279,7 +279,24 @@ HybrisManager::HybrisManager(QObject *parent)
if (use) {
// min/max delay is specified in [us] -> convert to [ms]
int minDelay = (m_halSensorArray[i].minDelay + 999) / 1000;
int maxDelay = (m_halSensorArray[i].maxDelay + 999) / 1000;
int maxDelay = -1; // Assume: not defined by hal
#ifdef SENSORS_DEVICE_API_VERSION_1_3
if (m_halDevice->common.version >= SENSORS_DEVICE_API_VERSION_1_3)
maxDelay = (m_halSensorArray[i].maxDelay + 999) / 1000;
#endif
/* If HAL does not define maximum delay, we need to invent
* something that a) allows sensorfwd logic to see a range
* instead of a point, b) is unlikely to be wrong enough to
* cause problems...
*
* For now use: minDelay * 2, but at least 1000 ms.
*/
if (maxDelay < 0 && minDelay > 0) {
maxDelay = (minDelay < 500) ? 1000 : (minDelay * 2);
sensordLogD("hal does not specify maxDelay, fallback: %d ms",
maxDelay);
}
// Positive minDelay means delay /can/ be set - but depending
// on sensor hal implementation it can also mean that some
......@@ -303,6 +320,11 @@ HybrisManager::HybrisManager(QObject *parent)
halSetActive(m_halSensorArray[i].handle, true);
halSetDelay(m_halSensorArray[i].handle, delay);
sensordLogD("delay = %d [%d, %d]",
m_halSensorState[i].m_delay,
m_halSensorState[i].m_minDelay,
m_halSensorState[i].m_maxDelay);
}
m_halIndexOfType.insert(m_halSensorArray[i].type, i);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment