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 "ipc/IPCMessageUtils.h"
10 #include "mozilla/Observer.h"
16 * These constants specify special values for content process IDs. You can get
17 * a content process ID by calling ContentChild::GetID() or
18 * ContentParent::GetChildID().
20 const uint64_t CONTENT_PROCESS_ID_UNKNOWN
= uint64_t(-1);
21 const uint64_t CONTENT_PROCESS_ID_MAIN
= 0;
24 * These are defined by libhardware, specifically, hardware/libhardware/include/hardware/lights.h
25 * in the gonk subsystem.
26 * If these change and are exposed to JS, make sure nsIHal.idl is updated as well.
29 eHalLightID_Backlight
= 0,
30 eHalLightID_Keyboard
= 1,
31 eHalLightID_Buttons
= 2,
32 eHalLightID_Battery
= 3,
33 eHalLightID_Notifications
= 4,
34 eHalLightID_Attention
= 5,
35 eHalLightID_Bluetooth
= 6,
37 eHalLightID_Count
= 8 // This should stay at the end
40 eHalLightMode_User
= 0, // brightness is managed by user setting
41 eHalLightMode_Sensor
= 1, // brightness is managed by a light sensor
45 eHalLightFlash_None
= 0,
46 eHalLightFlash_Timed
= 1, // timed flashing. Use flashOnMS and flashOffMS for timing
47 eHalLightFlash_Hardware
= 2, // hardware assisted flashing
52 eHalShutdownMode_Unknown
= -1,
53 eHalShutdownMode_PowerOff
= 0,
54 eHalShutdownMode_Reboot
= 1,
55 eHalShutdownMode_Restart
= 2,
56 eHalShutdownMode_Count
= 3
62 SWITCH_DEVICE_UNKNOWN
= -1,
69 SWITCH_STATE_UNKNOWN
= -1,
72 SWITCH_STATE_HEADSET
, // Headphone with microphone
73 SWITCH_STATE_HEADPHONE
, // without microphone
77 typedef Observer
<SwitchEvent
> SwitchObserver
;
79 // Note that we rely on the order of this enum's entries. Higher priorities
80 // should have larger int values.
81 enum ProcessPriority
{
82 PROCESS_PRIORITY_UNKNOWN
= -1,
83 PROCESS_PRIORITY_BACKGROUND
,
84 PROCESS_PRIORITY_BACKGROUND_HOMESCREEN
,
85 PROCESS_PRIORITY_BACKGROUND_PERCEIVABLE
,
86 PROCESS_PRIORITY_FOREGROUND_KEYBOARD
,
87 // Any priority greater than or equal to FOREGROUND is considered
88 // "foreground" for the purposes of priority testing, for example
89 // CurrentProcessIsForeground().
90 PROCESS_PRIORITY_FOREGROUND
,
91 PROCESS_PRIORITY_FOREGROUND_HIGH
,
92 PROCESS_PRIORITY_MASTER
,
96 enum ProcessCPUPriority
{
97 PROCESS_CPU_PRIORITY_LOW
,
98 PROCESS_CPU_PRIORITY_NORMAL
,
99 NUM_PROCESS_CPU_PRIORITY
102 // Convert a ProcessPriority enum value (with an optional ProcessCPUPriority)
103 // to a string. The strings returned by this function are statically
104 // allocated; do not attempt to free one!
106 // If you pass an unknown process priority (or NUM_PROCESS_PRIORITY), we
107 // fatally assert in debug builds and otherwise return "???".
109 ProcessPriorityToString(ProcessPriority aPriority
);
112 ProcessPriorityToString(ProcessPriority aPriority
,
113 ProcessCPUPriority aCPUPriority
);
116 * Used by ModifyWakeLock
118 enum WakeLockControl
{
119 WAKE_LOCK_REMOVE_ONE
= -1,
120 WAKE_LOCK_NO_CHANGE
= 0,
121 WAKE_LOCK_ADD_ONE
= 1,
125 class FMRadioOperationInformation
;
127 enum FMRadioOperation
{
128 FM_RADIO_OPERATION_UNKNOWN
= -1,
129 FM_RADIO_OPERATION_ENABLE
,
130 FM_RADIO_OPERATION_DISABLE
,
131 FM_RADIO_OPERATION_SEEK
,
132 FM_RADIO_OPERATION_TUNE
,
133 NUM_FM_RADIO_OPERATION
136 enum FMRadioOperationStatus
{
137 FM_RADIO_OPERATION_STATUS_UNKNOWN
= -1,
138 FM_RADIO_OPERATION_STATUS_SUCCESS
,
139 FM_RADIO_OPERATION_STATUS_FAIL
,
140 NUM_FM_RADIO_OPERATION_STATUS
143 enum FMRadioSeekDirection
{
144 FM_RADIO_SEEK_DIRECTION_UNKNOWN
= -1,
145 FM_RADIO_SEEK_DIRECTION_UP
,
146 FM_RADIO_SEEK_DIRECTION_DOWN
,
147 NUM_FM_RADIO_SEEK_DIRECTION
150 enum FMRadioCountry
{
151 FM_RADIO_COUNTRY_UNKNOWN
= -1,
152 FM_RADIO_COUNTRY_US
, //USA
154 FM_RADIO_COUNTRY_JP_STANDARD
,
155 FM_RADIO_COUNTRY_JP_WIDE
,
156 FM_RADIO_COUNTRY_DE
, //Germany
157 FM_RADIO_COUNTRY_AW
, //Aruba
158 FM_RADIO_COUNTRY_AU
, //Australlia
159 FM_RADIO_COUNTRY_BS
, //Bahamas
160 FM_RADIO_COUNTRY_BD
, //Bangladesh
161 FM_RADIO_COUNTRY_CY
, //Cyprus
162 FM_RADIO_COUNTRY_VA
, //Vatican
163 FM_RADIO_COUNTRY_CO
, //Colombia
164 FM_RADIO_COUNTRY_KR
, //Korea
165 FM_RADIO_COUNTRY_DK
, //Denmark
166 FM_RADIO_COUNTRY_EC
, //Ecuador
167 FM_RADIO_COUNTRY_ES
, //Spain
168 FM_RADIO_COUNTRY_FI
, //Finland
169 FM_RADIO_COUNTRY_FR
, //France
170 FM_RADIO_COUNTRY_GM
, //Gambia
171 FM_RADIO_COUNTRY_HU
, //Hungary
172 FM_RADIO_COUNTRY_IN
, //India
173 FM_RADIO_COUNTRY_IR
, //Iran
174 FM_RADIO_COUNTRY_IT
, //Italy
175 FM_RADIO_COUNTRY_KW
, //Kuwait
176 FM_RADIO_COUNTRY_LT
, //Lithuania
177 FM_RADIO_COUNTRY_ML
, //Mali
178 FM_RADIO_COUNTRY_MA
, //Morocco
179 FM_RADIO_COUNTRY_NO
, //Norway
180 FM_RADIO_COUNTRY_NZ
, //New Zealand
181 FM_RADIO_COUNTRY_OM
, //Oman
182 FM_RADIO_COUNTRY_PG
, //Papua New Guinea
183 FM_RADIO_COUNTRY_NL
, //Netherlands
184 FM_RADIO_COUNTRY_QA
, //Qatar
185 FM_RADIO_COUNTRY_CZ
, //Czech Republic
186 FM_RADIO_COUNTRY_UK
, //United Kingdom of Great Britain and Northern Ireland
187 FM_RADIO_COUNTRY_RW
, //Rwandese Republic
188 FM_RADIO_COUNTRY_SN
, //Senegal
189 FM_RADIO_COUNTRY_SG
, //Singapore
190 FM_RADIO_COUNTRY_SI
, //Slovenia
191 FM_RADIO_COUNTRY_ZA
, //South Africa
192 FM_RADIO_COUNTRY_SE
, //Sweden
193 FM_RADIO_COUNTRY_CH
, //Switzerland
194 FM_RADIO_COUNTRY_TW
, //Taiwan
195 FM_RADIO_COUNTRY_TR
, //Turkey
196 FM_RADIO_COUNTRY_UA
, //Ukraine
197 FM_RADIO_COUNTRY_USER_DEFINED
,
201 typedef Observer
<FMRadioOperationInformation
> FMRadioObserver
;
203 } // namespace mozilla
208 * Light type serializer.
211 struct ParamTraits
<mozilla::hal::LightType
>
212 : public EnumSerializer
<mozilla::hal::LightType
,
213 mozilla::hal::eHalLightID_Backlight
,
214 mozilla::hal::eHalLightID_Count
>
218 * Light mode serializer.
221 struct ParamTraits
<mozilla::hal::LightMode
>
222 : public EnumSerializer
<mozilla::hal::LightMode
,
223 mozilla::hal::eHalLightMode_User
,
224 mozilla::hal::eHalLightMode_Count
>
228 * Flash mode serializer.
231 struct ParamTraits
<mozilla::hal::FlashMode
>
232 : public EnumSerializer
<mozilla::hal::FlashMode
,
233 mozilla::hal::eHalLightFlash_None
,
234 mozilla::hal::eHalLightFlash_Count
>
238 * Serializer for ShutdownMode.
241 struct ParamTraits
<mozilla::hal::ShutdownMode
>
242 : public EnumSerializer
<mozilla::hal::ShutdownMode
,
243 mozilla::hal::eHalShutdownMode_Unknown
,
244 mozilla::hal::eHalShutdownMode_Count
>
248 * WakeLockControl serializer.
251 struct ParamTraits
<mozilla::hal::WakeLockControl
>
252 : public EnumSerializer
<mozilla::hal::WakeLockControl
,
253 mozilla::hal::WAKE_LOCK_REMOVE_ONE
,
254 mozilla::hal::NUM_WAKE_LOCK
>
258 * Serializer for SwitchState
261 struct ParamTraits
<mozilla::hal::SwitchState
>:
262 public EnumSerializer
<mozilla::hal::SwitchState
,
263 mozilla::hal::SWITCH_STATE_UNKNOWN
,
264 mozilla::hal::NUM_SWITCH_STATE
> {
268 * Serializer for SwitchDevice
271 struct ParamTraits
<mozilla::hal::SwitchDevice
>:
272 public EnumSerializer
<mozilla::hal::SwitchDevice
,
273 mozilla::hal::SWITCH_DEVICE_UNKNOWN
,
274 mozilla::hal::NUM_SWITCH_DEVICE
> {
278 struct ParamTraits
<mozilla::hal::ProcessPriority
>:
279 public EnumSerializer
<mozilla::hal::ProcessPriority
,
280 mozilla::hal::PROCESS_PRIORITY_UNKNOWN
,
281 mozilla::hal::NUM_PROCESS_PRIORITY
> {
285 * Serializer for FMRadioOperation
288 struct ParamTraits
<mozilla::hal::FMRadioOperation
>:
289 public EnumSerializer
<mozilla::hal::FMRadioOperation
,
290 mozilla::hal::FM_RADIO_OPERATION_UNKNOWN
,
291 mozilla::hal::NUM_FM_RADIO_OPERATION
>
295 * Serializer for FMRadioOperationStatus
298 struct ParamTraits
<mozilla::hal::FMRadioOperationStatus
>:
299 public EnumSerializer
<mozilla::hal::FMRadioOperationStatus
,
300 mozilla::hal::FM_RADIO_OPERATION_STATUS_UNKNOWN
,
301 mozilla::hal::NUM_FM_RADIO_OPERATION_STATUS
>
305 * Serializer for FMRadioSeekDirection
308 struct ParamTraits
<mozilla::hal::FMRadioSeekDirection
>:
309 public EnumSerializer
<mozilla::hal::FMRadioSeekDirection
,
310 mozilla::hal::FM_RADIO_SEEK_DIRECTION_UNKNOWN
,
311 mozilla::hal::NUM_FM_RADIO_SEEK_DIRECTION
>
315 * Serializer for FMRadioCountry
318 struct ParamTraits
<mozilla::hal::FMRadioCountry
>:
319 public EnumSerializer
<mozilla::hal::FMRadioCountry
,
320 mozilla::hal::FM_RADIO_COUNTRY_UNKNOWN
,
321 mozilla::hal::NUM_FM_RADIO_COUNTRY
>
325 #endif // mozilla_hal_Types_h