| OLD | NEW |
| 1 // Copyright (c) 2011 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 // |
| 11 // Developed by: Daniel Griscom | 11 // Developed by: Daniel Griscom |
| (...skipping 29 matching lines...) Expand all Loading... |
| 41 // | 41 // |
| 42 // For more information about SMSLib, see | 42 // For more information about SMSLib, see |
| 43 // <http://www.suitable.com/tools/smslib.html> | 43 // <http://www.suitable.com/tools/smslib.html> |
| 44 // or contact | 44 // or contact |
| 45 // Daniel Griscom | 45 // Daniel Griscom |
| 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 #ifndef CONTENT_BROWSER_DEVICE_ORIENTATION_ACCELEROMETER_MAC_H_ | 51 #ifndef SUDDEN_MOTION_SENSOR_H_ |
| 52 #define CONTENT_BROWSER_DEVICE_ORIENTATION_ACCELEROMETER_MAC_H_ | 52 #define SUDDEN_MOTION_SENSOR_H_ |
| 53 #pragma once | 53 #pragma once |
| 54 | 54 |
| 55 #include <vector> | 55 #include <vector> |
| 56 | 56 |
| 57 #include <IOKit/IOKitLib.h> | 57 #include <IOKit/IOKitLib.h> |
| 58 | 58 |
| 59 #include "base/compiler_specific.h" | |
| 60 #include "content/browser/device_orientation/data_fetcher.h" | |
| 61 | |
| 62 namespace device_orientation { | |
| 63 | |
| 64 // Provides an easy-to-use interface to retrieve data | 59 // Provides an easy-to-use interface to retrieve data |
| 65 // from the MacBook family accelerometer. | 60 // from the MacBook family accelerometer. |
| 66 class AccelerometerMac : public DataFetcher { | 61 class SuddenMotionSensor { |
| 67 public: | 62 public: |
| 68 static DataFetcher* Create(); | 63 static SuddenMotionSensor* Create(); |
| 69 | 64 bool ReadSensorValues(float axes[3]); |
| 70 // Implement DataFetcher. | 65 ~SuddenMotionSensor(); |
| 71 virtual bool GetOrientation(Orientation* orientation) OVERRIDE; | |
| 72 | |
| 73 virtual ~AccelerometerMac(); | |
| 74 | 66 |
| 75 private: | 67 private: |
| 76 AccelerometerMac(); | 68 SuddenMotionSensor(); |
| 77 bool Init(); | 69 bool Init(); |
| 78 | 70 |
| 79 // Extend the sign of an integer of size bytes to a 32-bit one. | 71 // Extend the sign of an integer of size bytes to a 32-bit one. |
| 80 static int ExtendSign(int value, size_t size); | 72 static int ExtendSign(int value, size_t size); |
| 81 | 73 |
| 82 struct GenericMacbookSensor; | 74 struct GenericMacbookSensor; |
| 83 struct SensorDescriptor; | 75 struct SensorDescriptor; |
| 84 struct AxisData; | 76 struct AxisData; |
| 85 | 77 |
| 86 // Generic sensor data and list of supported sensors. | 78 // Generic sensor data and list of supported sensors. |
| 87 static const GenericMacbookSensor kGenericSensor; | 79 static const GenericMacbookSensor kGenericSensor; |
| 88 static const SensorDescriptor kSupportedSensors[]; | 80 static const SensorDescriptor kSupportedSensors[]; |
| 89 | 81 |
| 90 // Local sensor if supported, else NULL. | 82 // Local sensor if supported, else NULL. |
| 91 const SensorDescriptor* sensor_; | 83 const SensorDescriptor* sensor_; |
| 92 | 84 |
| 93 // IOKit connection to the local sensor. | 85 // IOKit connection to the local sensor. |
| 94 io_connect_t io_connection_; | 86 io_connect_t io_connection_; |
| 95 | 87 |
| 96 // Input memory used for sensor I/O. | 88 // Input memory used for sensor I/O. |
| 97 std::vector<char> input_record_; | 89 std::vector<char> input_record_; |
| 98 | 90 |
| 99 // Output memory used for sensor I/O. | 91 // Output memory used for sensor I/O. |
| 100 std::vector<char> output_record_; | 92 std::vector<char> output_record_; |
| 101 }; | 93 }; |
| 102 | 94 |
| 103 } // namespace device_orientation | 95 #endif // SUDDEN_MOTION_SENSOR_H_ |
| 104 | |
| 105 #endif // CONTENT_BROWSER_DEVICE_ORIENTATION_ACCELEROMETER_MAC_H_ | |
| OLD | NEW |