diff -r e4ebb16b39ea -r 603d3f8b6302 examples/sensors/panoramaWithSense/magnetometercontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/sensors/panoramaWithSense/magnetometercontroller.cpp Mon Oct 04 01:37:06 2010 +0300 @@ -0,0 +1,40 @@ + + +#include "magnetometercontroller.h" +#include "view.h" + +MagnetometerController::MagnetometerController(): m_width(View::m_imageWidth){ + setDataRate(&m_magnetometer); + m_magnetometer.setProperty("returnGeoValues", true); + doStart(); +} + + +MagnetometerController::~MagnetometerController(){ + disconnect(&m_magnetometer); +} + + +void MagnetometerController::update() +{ + qreal azimuth = -m_magnetometer.reading()->z(); + azimuth = azimuth<0?360+azimuth:azimuth; + m_x = (int)(-azimuth * m_width/360); + + + //TODO: consider provide y values based on x and y +} + + + + +void MagnetometerController::doStart(){ + m_magnetometer.start(); + connect(&m_magnetometer, SIGNAL(readingChanged()), this, SLOT(update())); +} + + +void MagnetometerController::doStop(){ + m_magnetometer.disconnect(); + m_magnetometer.stop(); +}