qtmobility/examples/sensors/panorama/accelerometercontroller.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
     1 
     1 
     2 
     2 
     3 #include "inputcontroller.h"
     3 #include "inputcontroller.h"
     4 #include "accelerometercontroller.h"
     4 #include "accelerometercontroller.h"
     5 #include <QTime>
       
     6 #include <QDebug>
       
     7 
     5 
     8 AccelerometerController::AccelerometerController( ): TimedController(){}
     6 AccelerometerController::AccelerometerController(): InputController(){
     9 
       
    10 void AccelerometerController::startSensor()
       
    11 {
       
    12     m_accelerometer.connectToBackend();
     7     m_accelerometer.connectToBackend();
    13     m_accelerometer.start();
     8     m_accelerometer.start();
    14     connect(&m_accelerometer, SIGNAL(readingChanged()), this, SLOT(update()));
     9     connect(&m_accelerometer, SIGNAL(readingChanged()), this, SLOT(update()));
    15     int dataRate = m_accelerometer.dataRate();
       
    16     m_interval = dataRate>0?1000/m_accelerometer.dataRate():20;
       
    17 }
    10 }
    18 
    11 
    19 void AccelerometerController::stopSensor(){ m_accelerometer.stop();}
    12 AccelerometerController::~AccelerometerController(){
       
    13     m_accelerometer.stop();
       
    14     disconnect(&m_accelerometer);
       
    15 }
       
    16 
    20 
    17 
    21 void AccelerometerController::update()
    18 void AccelerometerController::update()
    22 {
    19 {
    23     qreal accX = m_accelerometer.reading()->x();
    20     qreal accX = m_accelerometer.reading()->x();
    24     qreal accY= m_accelerometer.reading()->y();
    21     qreal accY= m_accelerometer.reading()->y();
    25     m_dx = (int)(2*accX);
    22     m_dx = accX*3;
    26     m_dy= (int)(-2*accY);
    23     m_dy= -accY*3;
    27     updateCoordinates();
    24     updateCoordinates();
       
    25 
    28 }
    26 }
    29 
    27 
    30 
    28 
    31 void AccelerometerController::updateCoordinates(){
    29 void AccelerometerController::updateCoordinates(){
    32     m_x +=m_dx * m_delay / m_interval;
    30     m_x +=m_dx;
    33     m_y +=m_dy * m_delay / m_interval;
    31     m_y +=m_dy;
       
    32 
    34 }
    33 }
    35 
    34