Bug 796834 - B2G RIL: Setup data call returns fail during radio power changed. r...
[gecko.git] / hal / HalTypes.h
blobf40aaf8075d8c035b3486a899ef6997d5f742f7e
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_hal_Types_h
7 #define mozilla_hal_Types_h
9 #include "IPCMessageUtils.h"
11 namespace mozilla {
12 namespace hal {
14 /**
15 * These are defined by libhardware, specifically, hardware/libhardware/include/hardware/lights.h
16 * in the gonk subsystem.
17 * If these change and are exposed to JS, make sure nsIHal.idl is updated as well.
19 enum LightType {
20 eHalLightID_Backlight = 0,
21 eHalLightID_Keyboard = 1,
22 eHalLightID_Buttons = 2,
23 eHalLightID_Battery = 3,
24 eHalLightID_Notifications = 4,
25 eHalLightID_Attention = 5,
26 eHalLightID_Bluetooth = 6,
27 eHalLightID_Wifi = 7,
28 eHalLightID_Count = 8 // This should stay at the end
30 enum LightMode {
31 eHalLightMode_User = 0, // brightness is managed by user setting
32 eHalLightMode_Sensor = 1, // brightness is managed by a light sensor
33 eHalLightMode_Count
35 enum FlashMode {
36 eHalLightFlash_None = 0,
37 eHalLightFlash_Timed = 1, // timed flashing. Use flashOnMS and flashOffMS for timing
38 eHalLightFlash_Hardware = 2, // hardware assisted flashing
39 eHalLightFlash_Count
42 enum ShutdownMode {
43 eHalShutdownMode_Unknown = -1,
44 eHalShutdownMode_PowerOff = 0,
45 eHalShutdownMode_Reboot = 1,
46 eHalShutdownMode_Restart = 2,
47 eHalShutdownMode_Count = 3
50 class SwitchEvent;
52 enum SwitchDevice {
53 SWITCH_DEVICE_UNKNOWN = -1,
54 SWITCH_HEADPHONES,
55 SWITCH_USB,
56 NUM_SWITCH_DEVICE
59 enum SwitchState {
60 SWITCH_STATE_UNKNOWN = -1,
61 SWITCH_STATE_ON,
62 SWITCH_STATE_OFF,
63 SWITCH_STATE_HEADSET, // Headphone with microphone
64 SWITCH_STATE_HEADPHONE, // without microphone
65 NUM_SWITCH_STATE
68 typedef Observer<SwitchEvent> SwitchObserver;
70 enum ProcessPriority {
71 PROCESS_PRIORITY_BACKGROUND,
72 PROCESS_PRIORITY_FOREGROUND,
73 PROCESS_PRIORITY_MASTER,
74 NUM_PROCESS_PRIORITY
77 /**
78 * Used by ModifyWakeLock
80 enum WakeLockControl {
81 WAKE_LOCK_REMOVE_ONE = -1,
82 WAKE_LOCK_NO_CHANGE = 0,
83 WAKE_LOCK_ADD_ONE = 1,
84 NUM_WAKE_LOCK
87 enum SystemTimeChange {
88 SYS_TIME_CHANGE_UNKNOWN = -1,
89 SYS_TIME_CHANGE_CLOCK,
90 SYS_TIME_CHANGE_TZ,
91 SYS_TIME_CHANGE_GUARD
94 class FMRadioOperationInformation;
96 enum FMRadioOperation {
97 FM_RADIO_OPERATION_UNKNOWN = -1,
98 FM_RADIO_OPERATION_ENABLE,
99 FM_RADIO_OPERATION_DISABLE,
100 FM_RADIO_OPERATION_SEEK,
101 NUM_FM_RADIO_OPERATION
104 enum FMRadioOperationStatus {
105 FM_RADIO_OPERATION_STATUS_UNKNOWN = -1,
106 FM_RADIO_OPERATION_STATUS_SUCCESS,
107 FM_RADIO_OPERATION_STATUS_FAIL,
108 NUM_FM_RADIO_OPERATION_STATUS
111 enum FMRadioSeekDirection {
112 FM_RADIO_SEEK_DIRECTION_UNKNOWN = -1,
113 FM_RADIO_SEEK_DIRECTION_UP,
114 FM_RADIO_SEEK_DIRECTION_DOWN,
115 NUM_FM_RADIO_SEEK_DIRECTION
118 enum FMRadioCountry {
119 FM_RADIO_COUNTRY_UNKNOWN = -1,
120 FM_RADIO_COUNTRY_US, //USA
121 FM_RADIO_COUNTRY_EU,
122 FM_RADIO_COUNTRY_JP_STANDARD,
123 FM_RADIO_COUNTRY_JP_WIDE,
124 FM_RADIO_COUNTRY_DE, //Germany
125 FM_RADIO_COUNTRY_AW, //Aruba
126 FM_RADIO_COUNTRY_AU, //Australlia
127 FM_RADIO_COUNTRY_BS, //Bahamas
128 FM_RADIO_COUNTRY_BD, //Bangladesh
129 FM_RADIO_COUNTRY_CY, //Cyprus
130 FM_RADIO_COUNTRY_VA, //Vatican
131 FM_RADIO_COUNTRY_CO, //Colombia
132 FM_RADIO_COUNTRY_KR, //Korea
133 FM_RADIO_COUNTRY_DK, //Denmark
134 FM_RADIO_COUNTRY_EC, //Ecuador
135 FM_RADIO_COUNTRY_ES, //Spain
136 FM_RADIO_COUNTRY_FI, //Finland
137 FM_RADIO_COUNTRY_FR, //France
138 FM_RADIO_COUNTRY_GM, //Gambia
139 FM_RADIO_COUNTRY_HU, //Hungary
140 FM_RADIO_COUNTRY_IN, //India
141 FM_RADIO_COUNTRY_IR, //Iran
142 FM_RADIO_COUNTRY_IT, //Italy
143 FM_RADIO_COUNTRY_KW, //Kuwait
144 FM_RADIO_COUNTRY_LT, //Lithuania
145 FM_RADIO_COUNTRY_ML, //Mali
146 FM_RADIO_COUNTRY_MA, //Morocco
147 FM_RADIO_COUNTRY_NO, //Norway
148 FM_RADIO_COUNTRY_NZ, //New Zealand
149 FM_RADIO_COUNTRY_OM, //Oman
150 FM_RADIO_COUNTRY_PG, //Papua New Guinea
151 FM_RADIO_COUNTRY_NL, //Netherlands
152 FM_RADIO_COUNTRY_QA, //Qatar
153 FM_RADIO_COUNTRY_CZ, //Czech Republic
154 FM_RADIO_COUNTRY_UK, //United Kingdom of Great Britain and Northern Ireland
155 FM_RADIO_COUNTRY_RW, //Rwandese Republic
156 FM_RADIO_COUNTRY_SN, //Senegal
157 FM_RADIO_COUNTRY_SG, //Singapore
158 FM_RADIO_COUNTRY_SI, //Slovenia
159 FM_RADIO_COUNTRY_ZA, //South Africa
160 FM_RADIO_COUNTRY_SE, //Sweden
161 FM_RADIO_COUNTRY_CH, //Switzerland
162 FM_RADIO_COUNTRY_TW, //Taiwan
163 FM_RADIO_COUNTRY_TR, //Turkey
164 FM_RADIO_COUNTRY_UA, //Ukraine
165 FM_RADIO_COUNTRY_USER_DEFINED,
166 NUM_FM_RADIO_COUNTRY
169 typedef Observer<FMRadioOperationInformation> FMRadioObserver;
170 } // namespace hal
171 } // namespace mozilla
173 namespace IPC {
176 * Light type serializer.
178 template <>
179 struct ParamTraits<mozilla::hal::LightType>
180 : public EnumSerializer<mozilla::hal::LightType,
181 mozilla::hal::eHalLightID_Backlight,
182 mozilla::hal::eHalLightID_Count>
186 * Light mode serializer.
188 template <>
189 struct ParamTraits<mozilla::hal::LightMode>
190 : public EnumSerializer<mozilla::hal::LightMode,
191 mozilla::hal::eHalLightMode_User,
192 mozilla::hal::eHalLightMode_Count>
196 * Flash mode serializer.
198 template <>
199 struct ParamTraits<mozilla::hal::FlashMode>
200 : public EnumSerializer<mozilla::hal::FlashMode,
201 mozilla::hal::eHalLightFlash_None,
202 mozilla::hal::eHalLightFlash_Count>
206 * Serializer for ShutdownMode.
208 template <>
209 struct ParamTraits<mozilla::hal::ShutdownMode>
210 : public EnumSerializer<mozilla::hal::ShutdownMode,
211 mozilla::hal::eHalShutdownMode_Unknown,
212 mozilla::hal::eHalShutdownMode_Count>
216 * WakeLockControl serializer.
218 template <>
219 struct ParamTraits<mozilla::hal::WakeLockControl>
220 : public EnumSerializer<mozilla::hal::WakeLockControl,
221 mozilla::hal::WAKE_LOCK_REMOVE_ONE,
222 mozilla::hal::NUM_WAKE_LOCK>
226 * Serializer for SwitchState
228 template <>
229 struct ParamTraits<mozilla::hal::SwitchState>:
230 public EnumSerializer<mozilla::hal::SwitchState,
231 mozilla::hal::SWITCH_STATE_UNKNOWN,
232 mozilla::hal::NUM_SWITCH_STATE> {
236 * Serializer for SwitchDevice
238 template <>
239 struct ParamTraits<mozilla::hal::SwitchDevice>:
240 public EnumSerializer<mozilla::hal::SwitchDevice,
241 mozilla::hal::SWITCH_DEVICE_UNKNOWN,
242 mozilla::hal::NUM_SWITCH_DEVICE> {
245 template <>
246 struct ParamTraits<mozilla::hal::ProcessPriority>:
247 public EnumSerializer<mozilla::hal::ProcessPriority,
248 mozilla::hal::PROCESS_PRIORITY_BACKGROUND,
249 mozilla::hal::NUM_PROCESS_PRIORITY> {
253 * SystemTimeChange serializer.
255 template <>
256 struct ParamTraits<mozilla::hal::SystemTimeChange>
257 : public EnumSerializer<mozilla::hal::SystemTimeChange,
258 mozilla::hal::SYS_TIME_CHANGE_UNKNOWN,
259 mozilla::hal::SYS_TIME_CHANGE_GUARD>
263 * Serializer for FMRadioOperation
265 template <>
266 struct ParamTraits<mozilla::hal::FMRadioOperation>:
267 public EnumSerializer<mozilla::hal::FMRadioOperation,
268 mozilla::hal::FM_RADIO_OPERATION_UNKNOWN,
269 mozilla::hal::NUM_FM_RADIO_OPERATION>
273 * Serializer for FMRadioOperationStatus
275 template <>
276 struct ParamTraits<mozilla::hal::FMRadioOperationStatus>:
277 public EnumSerializer<mozilla::hal::FMRadioOperationStatus,
278 mozilla::hal::FM_RADIO_OPERATION_STATUS_UNKNOWN,
279 mozilla::hal::NUM_FM_RADIO_OPERATION_STATUS>
283 * Serializer for FMRadioSeekDirection
285 template <>
286 struct ParamTraits<mozilla::hal::FMRadioSeekDirection>:
287 public EnumSerializer<mozilla::hal::FMRadioSeekDirection,
288 mozilla::hal::FM_RADIO_SEEK_DIRECTION_UNKNOWN,
289 mozilla::hal::NUM_FM_RADIO_SEEK_DIRECTION>
293 * Serializer for FMRadioCountry
295 template <>
296 struct ParamTraits<mozilla::hal::FMRadioCountry>:
297 public EnumSerializer<mozilla::hal::FMRadioCountry,
298 mozilla::hal::FM_RADIO_COUNTRY_UNKNOWN,
299 mozilla::hal::NUM_FM_RADIO_COUNTRY>
301 } // namespace IPC
303 #endif // mozilla_hal_Types_h