examples/sensors/panoramaWithSense/magnetometercontroller.cpp
changeset 5 603d3f8b6302
--- /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();
+}