1 // Copyright (c) 2013 Intel Corporation. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "xwalk/tizen/mobile/sensor/sensor_provider.h"
7 #include "base/logging.h"
8 #include "xwalk/tizen/mobile/sensor/tizen_platform_sensor.h"
13 bool SensorProvider::initialized_ = false;
15 SensorProvider* SensorProvider::GetInstance() {
17 instance_.reset(new TizenPlatformSensor());
18 if (!instance_->Initialize())
21 return instance_.get();
24 SensorProvider::SensorProvider()
25 : last_rotation_(gfx::Display::ROTATE_0) {
28 SensorProvider::~SensorProvider() {
32 void SensorProvider::AddObserver(Observer* observer) {
33 observers_.insert(observer);
36 void SensorProvider::RemoveObserver(Observer* observer) {
37 observers_.erase(observer);
40 void SensorProvider::OnRotationChanged(gfx::Display::Rotation rotation) {
41 last_rotation_ = rotation;
43 std::set<Observer*>::iterator it;
44 for (it = observers_.begin(); it != observers_.end(); ++it)
45 (*it)->OnRotationChanged(rotation);
48 void SensorProvider::OnOrientationChanged(float alpha,
51 std::set<Observer*>::iterator it;
52 for (it = observers_.begin(); it != observers_.end(); ++it)
53 (*it)->OnOrientationChanged(alpha, beta, gamma);
56 void SensorProvider::OnAccelerationChanged(
57 float raw_x, float raw_y, float raw_z,
58 float x, float y, float z) {
59 std::set<Observer*>::iterator it;
60 for (it = observers_.begin(); it != observers_.end(); ++it)
61 (*it)->OnAccelerationChanged(raw_x, raw_y, raw_z, x, y, z);
64 void SensorProvider::OnRotationRateChanged(float alpha,
67 std::set<Observer*>::iterator it;
68 for (it = observers_.begin(); it != observers_.end(); ++it)
69 (*it)->OnRotationRateChanged(alpha, beta, gamma);
72 scoped_ptr<SensorProvider> SensorProvider::instance_;