Chromium Code Reviews| Index: chromeos/accelerometer/accelerometer_reader.cc |
| diff --git a/chromeos/accelerometer/accelerometer_reader.cc b/chromeos/accelerometer/accelerometer_reader.cc |
| index f84c4871120b2a9d0181bd45c6e1d80f2f0279fd..61f4ae2506f00f9feb822db89fd36b3eebb4f6ac 100644 |
| --- a/chromeos/accelerometer/accelerometer_reader.cc |
| +++ b/chromeos/accelerometer/accelerometer_reader.cc |
| @@ -52,6 +52,9 @@ const size_t kMaxAsciiUintLength = 21; |
| // The time to wait between reading the accelerometer. |
| const int kDelayBetweenReadsMs = 100; |
| +// The mean acceleration due to gravity on Earth. |
| +const float kMeanGravity = 9.80665f; |
|
Daniel Erat
2014/08/28 00:27:06
heh, nice constant :-P
flackr
2014/08/28 01:21:36
=) added units.
|
| + |
| // Reads |path| to the unsigned int pointed to by |value|. Returns true on |
| // success or false on failure. |
| bool ReadFileToUint(const base::FilePath& path, unsigned int* value) { |
| @@ -195,16 +198,17 @@ void AccelerometerReader::OnDataRead( |
| if (success) { |
| gfx::Vector3dF base_reading, lid_reading; |
| int16* values = reinterpret_cast<int16*>(reading->data); |
| - base_reading.set_x(values[configuration_->data.index[0]]); |
| - base_reading.set_y(values[configuration_->data.index[1]]); |
| - base_reading.set_z(values[configuration_->data.index[2]]); |
| - base_reading.Scale(1.0f / configuration_->data.base_scale); |
| - |
| - lid_reading.set_x(values[configuration_->data.index[3]]); |
| - lid_reading.set_y(values[configuration_->data.index[4]]); |
| - lid_reading.set_z(values[configuration_->data.index[5]]); |
| - lid_reading.Scale(1.0f / configuration_->data.lid_scale); |
| - delegate_->HandleAccelerometerReading(base_reading, lid_reading); |
| + float lid_scale = kMeanGravity / configuration_->data.lid_scale; |
| + update_.Set(ACCELEROMETER_SOURCE_SCREEN, |
| + -values[configuration_->data.index[4]] * lid_scale, |
| + values[configuration_->data.index[3]] * lid_scale, |
| + values[configuration_->data.index[5]] * lid_scale); |
| + float base_scale = kMeanGravity / configuration_->data.base_scale; |
| + update_.Set(ACCELEROMETER_SOURCE_ATTACHED_KEYBOARD, |
| + -values[configuration_->data.index[1]] * base_scale, |
| + -values[configuration_->data.index[0]] * base_scale, |
| + -values[configuration_->data.index[2]] * base_scale); |
| + delegate_->HandleAccelerometerUpdate(update_); |
| } |
| // Trigger another read after the current sampling delay. |