examples/sensors/panoramaWithSense/magnetometercontroller.cpp
changeset 5 603d3f8b6302
equal deleted inserted replaced
3:e4ebb16b39ea 5:603d3f8b6302
       
     1 
       
     2 
       
     3 #include "magnetometercontroller.h"
       
     4 #include "view.h"
       
     5 
       
     6 MagnetometerController::MagnetometerController(): m_width(View::m_imageWidth){
       
     7     setDataRate(&m_magnetometer);
       
     8     m_magnetometer.setProperty("returnGeoValues", true);
       
     9     doStart();
       
    10 }
       
    11 
       
    12 
       
    13 MagnetometerController::~MagnetometerController(){
       
    14     disconnect(&m_magnetometer);
       
    15 }
       
    16 
       
    17 
       
    18 void MagnetometerController::update()
       
    19 {
       
    20     qreal azimuth = -m_magnetometer.reading()->z();
       
    21     azimuth = azimuth<0?360+azimuth:azimuth;
       
    22     m_x = (int)(-azimuth * m_width/360);
       
    23 
       
    24 
       
    25     //TODO: consider provide y values based on x and y
       
    26 }
       
    27 
       
    28 
       
    29 
       
    30 
       
    31 void MagnetometerController::doStart(){
       
    32     m_magnetometer.start();
       
    33     connect(&m_magnetometer, SIGNAL(readingChanged()), this, SLOT(update()));
       
    34 }
       
    35 
       
    36 
       
    37 void MagnetometerController::doStop(){
       
    38     m_magnetometer.disconnect();
       
    39     m_magnetometer.stop();
       
    40 }