qtmobility/examples/sensors/panorama/magnetometercontroller.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 11 Jun 2010 14:26:25 +0300
changeset 11 06b8e2af4411
child 14 6fbed849b4f4
permissions -rw-r--r--
Revision: 201021 Kit: 2010123



#include "inputcontroller.h"
#include "magnetometercontroller.h"
#include "view.h"
#include <qmagnetometer.h>

MagnetometerController::MagnetometerController(): m_width(View::m_imageWidth){}


void MagnetometerController::startSensor()
{
    m_magnetometer.setProperty("returnGeoValues", true);
    m_magnetometer.connectToBackend();
    m_magnetometer.start();
    connect(&m_magnetometer, SIGNAL(readingChanged()), this, SLOT(update()));
}

void MagnetometerController::stopSensor() { m_magnetometer.stop();}


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
}