blob: 5270eca003f2a6b16794c2ab377328437dbfc53c [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "modules/sensor/MagnetometerReading.h"
#include "modules/sensor/MagnetometerReadingInit.h"
#include "wtf/CurrentTime.h"
namespace blink {
namespace {
device::SensorReading ToReadingData(const MagnetometerReadingInit& init) {
device::SensorReading result;
result.timestamp = WTF::monotonicallyIncreasingTime();
if (init.hasX())
result.values[0] = init.x();
if (init.hasY())
result.values[1] = init.y();
if (init.hasZ())
result.values[2] = init.z();
return result;
}
} // namespace
MagnetometerReading::MagnetometerReading(const MagnetometerReadingInit& init)
: SensorReading(ToReadingData(init)) {}
MagnetometerReading::MagnetometerReading(const device::SensorReading& data)
: SensorReading(data) {}
MagnetometerReading::~MagnetometerReading() = default;
double MagnetometerReading::x() const {
return data().values[0];
}
double MagnetometerReading::y() const {
return data().values[1];
}
double MagnetometerReading::z() const {
return data().values[2];
}
bool MagnetometerReading::isReadingUpdated(
const device::SensorReading& previous) const {
return previous.values[0] != x() || previous.values[1] != y() ||
previous.values[2] != z();
}
DEFINE_TRACE(MagnetometerReading) {
SensorReading::trace(visitor);
}
} // namespace blink