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"
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.
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,
28 eHalLightID_Count
= 8 // This should stay at the end
31 eHalLightMode_User
= 0, // brightness is managed by user setting
32 eHalLightMode_Sensor
= 1, // brightness is managed by a light sensor
36 eHalLightFlash_None
= 0,
37 eHalLightFlash_Timed
= 1, // timed flashing. Use flashOnMS and flashOffMS for timing
38 eHalLightFlash_Hardware
= 2, // hardware assisted flashing
43 eHalShutdownMode_Unknown
= -1,
44 eHalShutdownMode_PowerOff
= 0,
45 eHalShutdownMode_Reboot
= 1,
46 eHalShutdownMode_Restart
= 2,
47 eHalShutdownMode_Count
= 3
53 SWITCH_DEVICE_UNKNOWN
= -1,
60 SWITCH_STATE_UNKNOWN
= -1,
63 SWITCH_STATE_HEADSET
, // Headphone with microphone
64 SWITCH_STATE_HEADPHONE
, // without microphone
68 typedef Observer
<SwitchEvent
> SwitchObserver
;
70 enum ProcessPriority
{
71 PROCESS_PRIORITY_BACKGROUND
,
72 PROCESS_PRIORITY_FOREGROUND
,
73 PROCESS_PRIORITY_MASTER
,
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,
87 enum SystemTimeChange
{
88 SYS_TIME_CHANGE_UNKNOWN
= -1,
89 SYS_TIME_CHANGE_CLOCK
,
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
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
,
169 typedef Observer
<FMRadioOperationInformation
> FMRadioObserver
;
171 } // namespace mozilla
176 * Light type serializer.
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.
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.
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.
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.
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
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
239 struct ParamTraits
<mozilla::hal::SwitchDevice
>:
240 public EnumSerializer
<mozilla::hal::SwitchDevice
,
241 mozilla::hal::SWITCH_DEVICE_UNKNOWN
,
242 mozilla::hal::NUM_SWITCH_DEVICE
> {
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.
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
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
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
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
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
>
303 #endif // mozilla_hal_Types_h