--- a/qtmobility/plugins/sensors/maemo6/maemo6compass.cpp Fri Jun 11 14:26:25 2010 +0300
+++ b/qtmobility/plugins/sensors/maemo6/maemo6compass.cpp Wed Jun 23 19:08:38 2010 +0300
@@ -41,34 +41,31 @@
#include "maemo6compass.h"
-const char *maemo6compass::id("maemo6.compass");
+char const * const maemo6compass::id("maemo6.compass");
bool maemo6compass::m_initDone = false;
maemo6compass::maemo6compass(QSensor *sensor)
: maemo6sensorbase(sensor)
{
- setReading<QCompassReading>(&m_reading);
-
- if (!m_initDone) {
- initSensor<CompassSensorChannelInterface>("compasssensor");
+ const QString sensorName = "compasssensor";
+ initSensor<CompassSensorChannelInterface>(sensorName, m_initDone);
- if (m_sensorInterface) {
- QObject::connect(static_cast<CompassSensorChannelInterface*>(m_sensorInterface), SIGNAL(dataAvailable(const Compass&)), this, SLOT(dataAvailable(const Compass&)));
- } else {
- qWarning() << "Unable to initialize compass sensor.";
- }
+ if (m_sensorInterface){
+ if (!(QObject::connect(m_sensorInterface, SIGNAL(dataAvailable(const Compass&)),
+ this, SLOT(slotDataAvailable(const Compass&)))))
+ qWarning() << "Unable to connect "<< sensorName;
+ }
+ else
+ qWarning() << "Unable to initialize "<<sensorName;
- // metadata TODO accuracy
- addDataRate(43, 43); // 43Hz
- sensor->setDataRate(43);
- addOutputRange(0, 359, 1);
- setDescription(QLatin1String("Measures compass north in degrees"));
-
- m_initDone = true;
- }
+ setReading<QCompassReading>(&m_reading);
+ // metadata
+ addDataRate(1, 130); // 43 Hz
+ addOutputRange(0, 359, 1);
+ setDescription(QLatin1String("Measures compass north in degrees"));
}
-void maemo6compass::dataAvailable(const Compass& data)
+void maemo6compass::slotDataAvailable(const Compass& data)
{
// The scale for level is [0,3], where 3 is the best
// Qt: Measured as a value from 0 to 1 with higher values being better.