| Index: chromeos/accelerometer/accelerometer_reader.cc
|
| diff --git a/chromeos/accelerometer/accelerometer_reader.cc b/chromeos/accelerometer/accelerometer_reader.cc
|
| index b08494d31e7a5e32fde42f4aca068f8bd7983076..340ba18856cddb06727db4dac7781ba448c1fc05 100644
|
| --- a/chromeos/accelerometer/accelerometer_reader.cc
|
| +++ b/chromeos/accelerometer/accelerometer_reader.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chromeos/accelerometer/accelerometer_reader.h"
|
|
|
| +#include <string>
|
| +
|
| #include "base/bind.h"
|
| #include "base/files/file_util.h"
|
| #include "base/location.h"
|
| @@ -181,24 +183,33 @@ AccelerometerReader::ConfigurationData::ConfigurationData()
|
| AccelerometerReader::ConfigurationData::~ConfigurationData() {
|
| }
|
|
|
| -AccelerometerReader::AccelerometerReader(
|
| - scoped_refptr<base::TaskRunner> blocking_task_runner,
|
| - AccelerometerReader::Delegate* delegate)
|
| - : task_runner_(blocking_task_runner),
|
| - delegate_(delegate),
|
| - configuration_(new AccelerometerReader::Configuration()),
|
| +AccelerometerReader::AccelerometerReader()
|
| + : configuration_(new AccelerometerReader::Configuration()),
|
| weak_factory_(this) {
|
| - DCHECK(task_runner_.get());
|
| - DCHECK(delegate_);
|
| +}
|
| +
|
| +AccelerometerReader::~AccelerometerReader() {
|
| +}
|
| +
|
| +void AccelerometerReader::Initialize(
|
| + scoped_refptr<base::TaskRunner> blocking_task_runner) {
|
| + DCHECK(blocking_task_runner.get());
|
| + task_runner_ = blocking_task_runner;
|
| // Asynchronously detect and initialize the accelerometer to avoid delaying
|
| // startup.
|
| - base::PostTaskAndReplyWithResult(task_runner_.get(), FROM_HERE,
|
| + base::PostTaskAndReplyWithResult(
|
| + task_runner_.get(), FROM_HERE,
|
| base::Bind(&DetectAndReadAccelerometerConfiguration, configuration_),
|
| base::Bind(&AccelerometerReader::OnInitialized,
|
| weak_factory_.GetWeakPtr(), configuration_));
|
| }
|
|
|
| -AccelerometerReader::~AccelerometerReader() {
|
| +void AccelerometerReader::AddObserver(Observer* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void AccelerometerReader::RemoveObserver(Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| }
|
|
|
| void AccelerometerReader::OnInitialized(
|
| @@ -241,7 +252,7 @@ void AccelerometerReader::OnDataRead(
|
| values[configuration_->data.index[i][2]] *
|
| configuration_->data.scale[i][2]);
|
| }
|
| - delegate_->HandleAccelerometerUpdate(update_);
|
| + FOR_EACH_OBSERVER(Observer, observers_, OnAccelerometerUpdated(update_));
|
| }
|
|
|
| // Trigger another read after the current sampling delay.
|
|
|