Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2765)

Unified Diff: device/sensors/public/interfaces/sensor.mojom

Issue 2078433002: [sensors] Introduce Generic Sensor API interfaces (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cap frequency to 60Hz. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/sensors/public/interfaces/sensor.mojom
diff --git a/device/sensors/public/interfaces/sensor.mojom b/device/sensors/public/interfaces/sensor.mojom
new file mode 100644
index 0000000000000000000000000000000000000000..adbf7396fb3b301b0895cc376a22593d417c4550
--- /dev/null
+++ b/device/sensors/public/interfaces/sensor.mojom
@@ -0,0 +1,64 @@
+// Copyright 2016 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.
+
+module device.mojom;
+
+// Types of supported sensors
+enum SensorType {
+ FIRST = 1,
+ AMBIENT_LIGHT = FIRST,
+ PROXIMITY,
+ ACCELEROMETER,
+ GYROSCOPE,
+ PRESSURE,
+ LAST = PRESSURE // Note: LAST is also equal to the types count.
+};
+
+// Reporting mode supported by the Sensor.
+// ON_CHANGE - client will be notified through OnSensorReadingChanged() signal
+// whenever sensor reading is changed.
+// CONTINUOUS - sensor will continuously update its reading with frequency
+// specified in SensorConfiguration.frequency.
+// OnSensorReadingChanged() signal is not sent to the client for
+// sensors with CONTINUOUS reporting mode.
+enum ReportingMode {
+ ON_CHANGE,
+ CONTINUOUS
+};
+
+struct SensorConfiguration {
+ // Frequency in Hz
+ double frequency;
Tom Sepez 2016/07/11 17:40:03 Are there better limits for this than just the ran
Mikhail 2016/07/12 08:26:50 Here we cap frequency to 60Hz https://codereview.c
+ // TODO(shalamov): Add map<string, union> for sensor specific configuration.
+};
+
+// Interface for controlling the Sensor.
+interface Sensor {
+ // Requests sensor to start reading sensor data with specified
+ // SensorConfiguration.
+ // Sensor holds the list of added configurations and it always polls
+ // the platform (and updates the shared buffer) at the maxiumum frequency
+ // among the obtained from the stored configurations, so that all clients
+ // can have sensor data in time.
+ AddConfiguration(SensorConfiguration configuration) => (bool success);
+
+ // Requests sensor to stop reading sensor data for specified
+ // SensorConfiguration.
+ // This call excludes |configuration| from the Sensor's list making it
+ // reconsider the the shared buffer udpate frequency. If there are no
+ // configurations left in the Sensor's configuration list it stops polling
+ // sensor data from the platform and update the shared buffer.
+ RemoveConfiguration(SensorConfiguration configuration) => (bool success);
+};
+
+// Interface that client of the Sensor interface must implement to observe
+// sensor reading changes and error conditions.
+interface SensorClient {
+ // Signals SensorClient when there is an error.
+ RaiseError();
+
+ // Signals SensorClient when reading has been changed (only for sensors with
+ // ReportingMode::ON_CHANGE).
+ SensorReadingChanged();
+};

Powered by Google App Engine
This is Rietveld 408576698