Bug 823610: Make discarding GL contexts of foreground pages on memory pressure pref...
[gecko.git] / hal / HalTypes.h
blobce85622ded14d00ad02e1673de492b9084ec5a8b
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_BACKGROUND_HOMESCREEN,
73 // Any priority greater than or equal to FOREGROUND is considered
74 // "foreground" for the purposes of priority testing, for example
75 // CurrentProcessIsForeground().
76 PROCESS_PRIORITY_FOREGROUND,
77 PROCESS_PRIORITY_MASTER,
78 NUM_PROCESS_PRIORITY
81 /**
82 * Used by ModifyWakeLock
84 enum WakeLockControl {
85 WAKE_LOCK_REMOVE_ONE = -1,
86 WAKE_LOCK_NO_CHANGE = 0,
87 WAKE_LOCK_ADD_ONE = 1,
88 NUM_WAKE_LOCK
91 class FMRadioOperationInformation;
93 enum FMRadioOperation {
94 FM_RADIO_OPERATION_UNKNOWN = -1,
95 FM_RADIO_OPERATION_ENABLE,
96 FM_RADIO_OPERATION_DISABLE,
97 FM_RADIO_OPERATION_SEEK,
98 NUM_FM_RADIO_OPERATION
101 enum FMRadioOperationStatus {
102 FM_RADIO_OPERATION_STATUS_UNKNOWN = -1,
103 FM_RADIO_OPERATION_STATUS_SUCCESS,
104 FM_RADIO_OPERATION_STATUS_FAIL,
105 NUM_FM_RADIO_OPERATION_STATUS
108 enum FMRadioSeekDirection {
109 FM_RADIO_SEEK_DIRECTION_UNKNOWN = -1,
110 FM_RADIO_SEEK_DIRECTION_UP,
111 FM_RADIO_SEEK_DIRECTION_DOWN,
112 NUM_FM_RADIO_SEEK_DIRECTION
115 enum FMRadioCountry {
116 FM_RADIO_COUNTRY_UNKNOWN = -1,
117 FM_RADIO_COUNTRY_US, //USA
118 FM_RADIO_COUNTRY_EU,
119 FM_RADIO_COUNTRY_JP_STANDARD,
120 FM_RADIO_COUNTRY_JP_WIDE,
121 FM_RADIO_COUNTRY_DE, //Germany
122 FM_RADIO_COUNTRY_AW, //Aruba
123 FM_RADIO_COUNTRY_AU, //Australlia
124 FM_RADIO_COUNTRY_BS, //Bahamas
125 FM_RADIO_COUNTRY_BD, //Bangladesh
126 FM_RADIO_COUNTRY_CY, //Cyprus
127 FM_RADIO_COUNTRY_VA, //Vatican
128 FM_RADIO_COUNTRY_CO, //Colombia
129 FM_RADIO_COUNTRY_KR, //Korea
130 FM_RADIO_COUNTRY_DK, //Denmark
131 FM_RADIO_COUNTRY_EC, //Ecuador
132 FM_RADIO_COUNTRY_ES, //Spain
133 FM_RADIO_COUNTRY_FI, //Finland
134 FM_RADIO_COUNTRY_FR, //France
135 FM_RADIO_COUNTRY_GM, //Gambia
136 FM_RADIO_COUNTRY_HU, //Hungary
137 FM_RADIO_COUNTRY_IN, //India
138 FM_RADIO_COUNTRY_IR, //Iran
139 FM_RADIO_COUNTRY_IT, //Italy
140 FM_RADIO_COUNTRY_KW, //Kuwait
141 FM_RADIO_COUNTRY_LT, //Lithuania
142 FM_RADIO_COUNTRY_ML, //Mali
143 FM_RADIO_COUNTRY_MA, //Morocco
144 FM_RADIO_COUNTRY_NO, //Norway
145 FM_RADIO_COUNTRY_NZ, //New Zealand
146 FM_RADIO_COUNTRY_OM, //Oman
147 FM_RADIO_COUNTRY_PG, //Papua New Guinea
148 FM_RADIO_COUNTRY_NL, //Netherlands
149 FM_RADIO_COUNTRY_QA, //Qatar
150 FM_RADIO_COUNTRY_CZ, //Czech Republic
151 FM_RADIO_COUNTRY_UK, //United Kingdom of Great Britain and Northern Ireland
152 FM_RADIO_COUNTRY_RW, //Rwandese Republic
153 FM_RADIO_COUNTRY_SN, //Senegal
154 FM_RADIO_COUNTRY_SG, //Singapore
155 FM_RADIO_COUNTRY_SI, //Slovenia
156 FM_RADIO_COUNTRY_ZA, //South Africa
157 FM_RADIO_COUNTRY_SE, //Sweden
158 FM_RADIO_COUNTRY_CH, //Switzerland
159 FM_RADIO_COUNTRY_TW, //Taiwan
160 FM_RADIO_COUNTRY_TR, //Turkey
161 FM_RADIO_COUNTRY_UA, //Ukraine
162 FM_RADIO_COUNTRY_USER_DEFINED,
163 NUM_FM_RADIO_COUNTRY
166 typedef Observer<FMRadioOperationInformation> FMRadioObserver;
167 } // namespace hal
168 } // namespace mozilla
170 namespace IPC {
173 * Light type serializer.
175 template <>
176 struct ParamTraits<mozilla::hal::LightType>
177 : public EnumSerializer<mozilla::hal::LightType,
178 mozilla::hal::eHalLightID_Backlight,
179 mozilla::hal::eHalLightID_Count>
183 * Light mode serializer.
185 template <>
186 struct ParamTraits<mozilla::hal::LightMode>
187 : public EnumSerializer<mozilla::hal::LightMode,
188 mozilla::hal::eHalLightMode_User,
189 mozilla::hal::eHalLightMode_Count>
193 * Flash mode serializer.
195 template <>
196 struct ParamTraits<mozilla::hal::FlashMode>
197 : public EnumSerializer<mozilla::hal::FlashMode,
198 mozilla::hal::eHalLightFlash_None,
199 mozilla::hal::eHalLightFlash_Count>
203 * Serializer for ShutdownMode.
205 template <>
206 struct ParamTraits<mozilla::hal::ShutdownMode>
207 : public EnumSerializer<mozilla::hal::ShutdownMode,
208 mozilla::hal::eHalShutdownMode_Unknown,
209 mozilla::hal::eHalShutdownMode_Count>
213 * WakeLockControl serializer.
215 template <>
216 struct ParamTraits<mozilla::hal::WakeLockControl>
217 : public EnumSerializer<mozilla::hal::WakeLockControl,
218 mozilla::hal::WAKE_LOCK_REMOVE_ONE,
219 mozilla::hal::NUM_WAKE_LOCK>
223 * Serializer for SwitchState
225 template <>
226 struct ParamTraits<mozilla::hal::SwitchState>:
227 public EnumSerializer<mozilla::hal::SwitchState,
228 mozilla::hal::SWITCH_STATE_UNKNOWN,
229 mozilla::hal::NUM_SWITCH_STATE> {
233 * Serializer for SwitchDevice
235 template <>
236 struct ParamTraits<mozilla::hal::SwitchDevice>:
237 public EnumSerializer<mozilla::hal::SwitchDevice,
238 mozilla::hal::SWITCH_DEVICE_UNKNOWN,
239 mozilla::hal::NUM_SWITCH_DEVICE> {
242 template <>
243 struct ParamTraits<mozilla::hal::ProcessPriority>:
244 public EnumSerializer<mozilla::hal::ProcessPriority,
245 mozilla::hal::PROCESS_PRIORITY_BACKGROUND,
246 mozilla::hal::NUM_PROCESS_PRIORITY> {
250 * Serializer for FMRadioOperation
252 template <>
253 struct ParamTraits<mozilla::hal::FMRadioOperation>:
254 public EnumSerializer<mozilla::hal::FMRadioOperation,
255 mozilla::hal::FM_RADIO_OPERATION_UNKNOWN,
256 mozilla::hal::NUM_FM_RADIO_OPERATION>
260 * Serializer for FMRadioOperationStatus
262 template <>
263 struct ParamTraits<mozilla::hal::FMRadioOperationStatus>:
264 public EnumSerializer<mozilla::hal::FMRadioOperationStatus,
265 mozilla::hal::FM_RADIO_OPERATION_STATUS_UNKNOWN,
266 mozilla::hal::NUM_FM_RADIO_OPERATION_STATUS>
270 * Serializer for FMRadioSeekDirection
272 template <>
273 struct ParamTraits<mozilla::hal::FMRadioSeekDirection>:
274 public EnumSerializer<mozilla::hal::FMRadioSeekDirection,
275 mozilla::hal::FM_RADIO_SEEK_DIRECTION_UNKNOWN,
276 mozilla::hal::NUM_FM_RADIO_SEEK_DIRECTION>
280 * Serializer for FMRadioCountry
282 template <>
283 struct ParamTraits<mozilla::hal::FMRadioCountry>:
284 public EnumSerializer<mozilla::hal::FMRadioCountry,
285 mozilla::hal::FM_RADIO_COUNTRY_UNKNOWN,
286 mozilla::hal::NUM_FM_RADIO_COUNTRY>
288 } // namespace IPC
290 #endif // mozilla_hal_Types_h