| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This file is based on the SMSLib library. | 5 // This file is based on the SMSLib library. |
| 6 // | 6 // |
| 7 // SMSLib Sudden Motion Sensor Access Library | 7 // SMSLib Sudden Motion Sensor Access Library |
| 8 // Copyright (c) 2010 Suitable Systems | 8 // Copyright (c) 2010 Suitable Systems |
| 9 // All rights reserved. | 9 // All rights reserved. |
| 10 // | 10 // |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 46 // Suitable Systems | 46 // Suitable Systems |
| 47 // 1 Centre Street, Suite 204 | 47 // 1 Centre Street, Suite 204 |
| 48 // Wakefield, MA 01880 | 48 // Wakefield, MA 01880 |
| 49 // (781) 665-0053 | 49 // (781) 665-0053 |
| 50 | 50 |
| 51 #include "sudden_motion_sensor_mac.h" | 51 #include "sudden_motion_sensor_mac.h" |
| 52 | 52 |
| 53 #include <math.h> | 53 #include <math.h> |
| 54 #include <sys/sysctl.h> | 54 #include <sys/sysctl.h> |
| 55 | 55 |
| 56 #include <memory> |
| 57 |
| 56 #include "base/logging.h" | 58 #include "base/logging.h" |
| 57 #include "base/mac/scoped_cftyperef.h" | 59 #include "base/mac/scoped_cftyperef.h" |
| 58 #include "base/memory/scoped_ptr.h" | |
| 59 | 60 |
| 60 struct SuddenMotionSensor::GenericMacbookSensor { | 61 struct SuddenMotionSensor::GenericMacbookSensor { |
| 61 // Name of device to be read. | 62 // Name of device to be read. |
| 62 const char* service_name; | 63 const char* service_name; |
| 63 | 64 |
| 64 // Number of bytes of the axis data. | 65 // Number of bytes of the axis data. |
| 65 int axis_size; | 66 int axis_size; |
| 66 | 67 |
| 67 // Default calibration value for zero g. | 68 // Default calibration value for zero g. |
| 68 float zero_g; | 69 float zero_g; |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 | 237 |
| 237 // Generic MacBook accelerometer sensor data, to be used for future models | 238 // Generic MacBook accelerometer sensor data, to be used for future models |
| 238 // as well as models for which it is verified to be correct. Note that this | 239 // as well as models for which it is verified to be correct. Note that this |
| 239 // configuration may have problems with inverted axes when used generically | 240 // configuration may have problems with inverted axes when used generically |
| 240 // for untested models. | 241 // for untested models. |
| 241 { "", NULL, { { 0, false }, { 2, false }, { 4, false } } } | 242 { "", NULL, { { 0, false }, { 2, false }, { 4, false } } } |
| 242 }; | 243 }; |
| 243 | 244 |
| 244 // Create a SuddenMotionSensor object and return NULL if no valid sensor found. | 245 // Create a SuddenMotionSensor object and return NULL if no valid sensor found. |
| 245 SuddenMotionSensor* SuddenMotionSensor::Create() { | 246 SuddenMotionSensor* SuddenMotionSensor::Create() { |
| 246 scoped_ptr<SuddenMotionSensor> accelerometer(new SuddenMotionSensor); | 247 std::unique_ptr<SuddenMotionSensor> accelerometer(new SuddenMotionSensor); |
| 247 return accelerometer->Init() ? accelerometer.release() : NULL; | 248 return accelerometer->Init() ? accelerometer.release() : NULL; |
| 248 } | 249 } |
| 249 | 250 |
| 250 SuddenMotionSensor::~SuddenMotionSensor() { | 251 SuddenMotionSensor::~SuddenMotionSensor() { |
| 251 IOServiceClose(io_connection_); | 252 IOServiceClose(io_connection_); |
| 252 } | 253 } |
| 253 | 254 |
| 254 SuddenMotionSensor::SuddenMotionSensor() | 255 SuddenMotionSensor::SuddenMotionSensor() |
| 255 : sensor_(NULL), | 256 : sensor_(NULL), |
| 256 io_connection_(0) { | 257 io_connection_(0) { |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 if (value & 0x00800000) | 424 if (value & 0x00800000) |
| 424 return value | 0xff000000; | 425 return value | 0xff000000; |
| 425 break; | 426 break; |
| 426 | 427 |
| 427 default: | 428 default: |
| 428 LOG(FATAL) << "Invalid integer size for sign extension: " << size; | 429 LOG(FATAL) << "Invalid integer size for sign extension: " << size; |
| 429 } | 430 } |
| 430 | 431 |
| 431 return value; | 432 return value; |
| 432 } | 433 } |
| OLD | NEW |