|  | // Copyright 2015 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | [DartPackage="mojo_services"] | 
|  | module sensors; | 
|  |  | 
|  | enum SensorType { | 
|  | ACCELEROMETER, | 
|  | AMBIENT_TEMPERATURE, | 
|  | GAME_ROTATION_VECTOR, | 
|  | GEOMAGNETIC_ROTATION_VECTOR, | 
|  | GRAVITY, | 
|  | GYROSCOPE, | 
|  | GYROSCOPE_UNCALIBRATED, | 
|  | HEART_RATE, | 
|  | LIGHT, | 
|  | LINEAR_ACCELERATION, | 
|  | MAGNETIC_FIELD, | 
|  | MAGNETIC_FIELD_UNCALIBRATED, | 
|  | PRESSURE, | 
|  | PROXIMITY, | 
|  | RELATIVE_HUMIDITY, | 
|  | ROTATION_VECTOR, | 
|  | SIGNIFICANT_MOTION, | 
|  | STEP_COUNTER, | 
|  | STEP_DETECTOR, | 
|  | }; | 
|  |  | 
|  | struct SensorData { | 
|  | int32 accuracy; | 
|  | int64 time_stamp; | 
|  | array<float> values; | 
|  | }; | 
|  |  | 
|  | interface SensorListener { | 
|  | OnAccuracyChanged(int32 accuracy); | 
|  | OnSensorChanged(SensorData data); | 
|  | }; | 
|  |  | 
|  | interface SensorService { | 
|  | AddListener(SensorType type, SensorListener listener); | 
|  | }; |