Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(408)

Side by Side Diff: chromeos/accelerometer/accelerometer_reader.cc

Issue 822503003: Change AccelerometerReader to a Singleton (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update new dependency Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chromeos/accelerometer/accelerometer_reader.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « chromeos/accelerometer/accelerometer_reader.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698