| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chromeos/accelerometer/accelerometer_reader.h" | 5 #include "chromeos/accelerometer/accelerometer_reader.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| 11 #include "base/location.h" | 11 #include "base/location.h" |
| 12 #include "base/memory/singleton.h" |
| 12 #include "base/message_loop/message_loop.h" | 13 #include "base/message_loop/message_loop.h" |
| 13 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
| 14 #include "base/strings/string_util.h" | 15 #include "base/strings/string_util.h" |
| 15 #include "base/strings/stringprintf.h" | 16 #include "base/strings/stringprintf.h" |
| 16 #include "base/task_runner.h" | 17 #include "base/task_runner.h" |
| 17 #include "base/task_runner_util.h" | 18 #include "base/task_runner_util.h" |
| 18 #include "base/threading/sequenced_worker_pool.h" | 19 #include "base/threading/sequenced_worker_pool.h" |
| 19 | 20 |
| 20 namespace chromeos { | 21 namespace chromeos { |
| 21 | 22 |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 for (int j = 0; j < 3; ++j) { | 181 for (int j = 0; j < 3; ++j) { |
| 181 scale[i][j] = 0; | 182 scale[i][j] = 0; |
| 182 index[i][j] = -1; | 183 index[i][j] = -1; |
| 183 } | 184 } |
| 184 } | 185 } |
| 185 } | 186 } |
| 186 | 187 |
| 187 AccelerometerReader::ConfigurationData::~ConfigurationData() { | 188 AccelerometerReader::ConfigurationData::~ConfigurationData() { |
| 188 } | 189 } |
| 189 | 190 |
| 190 AccelerometerReader::AccelerometerReader() | 191 // static |
| 191 : configuration_(new AccelerometerReader::Configuration()), | 192 AccelerometerReader* AccelerometerReader::GetInstance() { |
| 192 weak_factory_(this) { | 193 return Singleton<AccelerometerReader>::get(); |
| 193 } | |
| 194 | |
| 195 AccelerometerReader::~AccelerometerReader() { | |
| 196 } | 194 } |
| 197 | 195 |
| 198 void AccelerometerReader::Initialize( | 196 void AccelerometerReader::Initialize( |
| 199 scoped_refptr<base::TaskRunner> blocking_task_runner) { | 197 scoped_refptr<base::TaskRunner> blocking_task_runner) { |
| 200 DCHECK(blocking_task_runner.get()); | 198 DCHECK(blocking_task_runner.get()); |
| 201 task_runner_ = blocking_task_runner; | 199 task_runner_ = blocking_task_runner; |
| 202 // Asynchronously detect and initialize the accelerometer to avoid delaying | 200 // Asynchronously detect and initialize the accelerometer to avoid delaying |
| 203 // startup. | 201 // startup. |
| 204 base::PostTaskAndReplyWithResult( | 202 base::PostTaskAndReplyWithResult( |
| 205 task_runner_.get(), FROM_HERE, | 203 task_runner_.get(), FROM_HERE, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 217 observers_.RemoveObserver(observer); | 215 observers_.RemoveObserver(observer); |
| 218 } | 216 } |
| 219 | 217 |
| 220 bool AccelerometerReader::IsReadingStable(const ui::AccelerometerUpdate& update, | 218 bool AccelerometerReader::IsReadingStable(const ui::AccelerometerUpdate& update, |
| 221 ui::AccelerometerSource source) { | 219 ui::AccelerometerSource source) { |
| 222 return update.has(source) && | 220 return update.has(source) && |
| 223 std::abs(update.get(source).Length() - kMeanGravity) <= | 221 std::abs(update.get(source).Length() - kMeanGravity) <= |
| 224 kDeviationFromGravityThreshold; | 222 kDeviationFromGravityThreshold; |
| 225 } | 223 } |
| 226 | 224 |
| 225 AccelerometerReader::AccelerometerReader() |
| 226 : configuration_(new AccelerometerReader::Configuration()), |
| 227 weak_factory_(this) { |
| 228 } |
| 229 |
| 230 AccelerometerReader::~AccelerometerReader() { |
| 231 } |
| 232 |
| 227 void AccelerometerReader::OnInitialized( | 233 void AccelerometerReader::OnInitialized( |
| 228 scoped_refptr<AccelerometerReader::Configuration> configuration, | 234 scoped_refptr<AccelerometerReader::Configuration> configuration, |
| 229 bool success) { | 235 bool success) { |
| 230 if (success) | 236 if (success) |
| 231 TriggerRead(); | 237 TriggerRead(); |
| 232 } | 238 } |
| 233 | 239 |
| 234 void AccelerometerReader::TriggerRead() { | 240 void AccelerometerReader::TriggerRead() { |
| 235 DCHECK(!task_runner_->RunsTasksOnCurrentThread()); | 241 DCHECK(!task_runner_->RunsTasksOnCurrentThread()); |
| 236 | 242 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 | 275 |
| 270 // Trigger another read after the current sampling delay. | 276 // Trigger another read after the current sampling delay. |
| 271 base::MessageLoop::current()->PostDelayedTask( | 277 base::MessageLoop::current()->PostDelayedTask( |
| 272 FROM_HERE, | 278 FROM_HERE, |
| 273 base::Bind(&AccelerometerReader::TriggerRead, | 279 base::Bind(&AccelerometerReader::TriggerRead, |
| 274 weak_factory_.GetWeakPtr()), | 280 weak_factory_.GetWeakPtr()), |
| 275 base::TimeDelta::FromMilliseconds(kDelayBetweenReadsMs)); | 281 base::TimeDelta::FromMilliseconds(kDelayBetweenReadsMs)); |
| 276 } | 282 } |
| 277 | 283 |
| 278 } // namespace chromeos | 284 } // namespace chromeos |
| OLD | NEW |