hal/HalSensor.h

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:272d555db8f2
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set sw=2 ts=8 et ft=cpp : */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7 #ifndef __HAL_SENSOR_H_
8 #define __HAL_SENSOR_H_
9
10 #include "mozilla/Observer.h"
11
12 namespace mozilla {
13 namespace hal {
14
15 /**
16 * Enumeration of sensor types. They are used to specify type while
17 * register or unregister an observer for a sensor of given type.
18 */
19 enum SensorType {
20 SENSOR_UNKNOWN = -1,
21 SENSOR_ORIENTATION,
22 SENSOR_ACCELERATION,
23 SENSOR_PROXIMITY,
24 SENSOR_LINEAR_ACCELERATION,
25 SENSOR_GYROSCOPE,
26 SENSOR_LIGHT,
27 NUM_SENSOR_TYPE
28 };
29
30 class SensorData;
31
32 typedef Observer<SensorData> ISensorObserver;
33
34 /**
35 * Enumeration of sensor accuracy types.
36 */
37 enum SensorAccuracyType {
38 SENSOR_ACCURACY_UNKNOWN = -1,
39 SENSOR_ACCURACY_UNRELIABLE,
40 SENSOR_ACCURACY_LOW,
41 SENSOR_ACCURACY_MED,
42 SENSOR_ACCURACY_HIGH,
43 NUM_SENSOR_ACCURACY_TYPE
44 };
45
46 class SensorAccuracy;
47
48 typedef Observer<SensorAccuracy> ISensorAccuracyObserver;
49
50 }
51 }
52
53 #include "ipc/IPCMessageUtils.h"
54
55 namespace IPC {
56 /**
57 * Serializer for SensorType
58 */
59 template <>
60 struct ParamTraits<mozilla::hal::SensorType>:
61 public ContiguousEnumSerializer<
62 mozilla::hal::SensorType,
63 mozilla::hal::SENSOR_UNKNOWN,
64 mozilla::hal::NUM_SENSOR_TYPE> {
65 };
66
67 template <>
68 struct ParamTraits<mozilla::hal::SensorAccuracyType>:
69 public ContiguousEnumSerializer<
70 mozilla::hal::SensorAccuracyType,
71 mozilla::hal::SENSOR_ACCURACY_UNKNOWN,
72 mozilla::hal::NUM_SENSOR_ACCURACY_TYPE> {
73
74 };
75 } // namespace IPC
76
77 #endif /* __HAL_SENSOR_H_ */

mercurial