5 Compass::Compass(QObject *parent) :
7 m_compass(new MeeGo::QmCompass(this)),
11 m_compass->setUseDeclination(true);
13 QObject::connect(m_compass, SIGNAL(dataAvailable(const MeeGo::QmCompassReading&)),
14 this, SLOT(dataAvailable(const MeeGo::QmCompassReading&)));
16 if (m_compass->requestSession(MeeGo::QmSensor::SessionTypeListen)
17 == MeeGo::QmSensor::SessionTypeNone) {
18 qDebug() << "Failed to get listen session:" << m_compass->lastError();
26 bool Compass::isActive() const {
27 return m_compass->isRunning();
30 void Compass::setActive(bool active) {
31 if (active == isActive()) {
42 emit directionValidChanged();
48 int Compass::direction() const {
52 bool Compass::isDirectionValid() const {
56 void Compass::dataAvailable(const MeeGo::QmCompassReading& value) {
57 bool degreeChanged = (m_degree != value.degrees);
58 bool validityChanged = m_valid != (value.level >= 2);
60 m_degree = value.degrees;
61 m_valid = (value.level >= 2);
63 if (validityChanged) {
64 emit directionValidChanged();
68 emit directionChanged();