qtmobility/examples/sensors/panorama/accelerometercontroller.cpp
changeset 11 06b8e2af4411
child 14 6fbed849b4f4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobility/examples/sensors/panorama/accelerometercontroller.cpp	Fri Jun 11 14:26:25 2010 +0300
@@ -0,0 +1,35 @@
+
+
+#include "inputcontroller.h"
+#include "accelerometercontroller.h"
+#include <QTime>
+#include <QDebug>
+
+AccelerometerController::AccelerometerController( ): TimedController(){}
+
+void AccelerometerController::startSensor()
+{
+    m_accelerometer.connectToBackend();
+    m_accelerometer.start();
+    connect(&m_accelerometer, SIGNAL(readingChanged()), this, SLOT(update()));
+    int dataRate = m_accelerometer.dataRate();
+    m_interval = dataRate>0?1000/m_accelerometer.dataRate():20;
+}
+
+void AccelerometerController::stopSensor(){ m_accelerometer.stop();}
+
+void AccelerometerController::update()
+{
+    qreal accX = m_accelerometer.reading()->x();
+    qreal accY= m_accelerometer.reading()->y();
+    m_dx = (int)(2*accX);
+    m_dy= (int)(-2*accY);
+    updateCoordinates();
+}
+
+
+void AccelerometerController::updateCoordinates(){
+    m_x +=m_dx * m_delay / m_interval;
+    m_y +=m_dy * m_delay / m_interval;
+}
+