|
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 include protocol PContent; |
|
8 include protocol PBrowser; |
|
9 |
|
10 using mozilla::dom::ScreenOrientation from "mozilla/dom/ScreenOrientation.h"; |
|
11 using mozilla::hal::FlashMode from "mozilla/HalTypes.h"; |
|
12 using mozilla::hal::LightType from "mozilla/HalTypes.h"; |
|
13 using mozilla::hal::LightMode from "mozilla/HalTypes.h"; |
|
14 using mozilla::hal::SensorType from "mozilla/HalSensor.h"; |
|
15 using mozilla::hal::SensorAccuracyType from "mozilla/HalSensor.h"; |
|
16 using mozilla::hal::WakeLockControl from "mozilla/HalTypes.h"; |
|
17 using mozilla::hal::SwitchState from "mozilla/HalTypes.h"; |
|
18 using mozilla::hal::SwitchDevice from "mozilla/HalTypes.h"; |
|
19 using mozilla::hal::ProcessPriority from "mozilla/HalTypes.h"; |
|
20 using struct nsIntRect from "nsRect.h"; |
|
21 using PRTime from "prtime.h"; |
|
22 using mozilla::hal::FMRadioCountry from "mozilla/HalTypes.h"; |
|
23 using mozilla::hal::FMRadioOperation from "mozilla/HalTypes.h"; |
|
24 using mozilla::hal::FMRadioOperationStatus from "mozilla/HalTypes.h"; |
|
25 |
|
26 namespace mozilla { |
|
27 |
|
28 namespace hal { |
|
29 struct BatteryInformation { |
|
30 double level; |
|
31 bool charging; |
|
32 double remainingTime; |
|
33 }; |
|
34 |
|
35 struct LightConfiguration { |
|
36 LightType light; |
|
37 LightMode mode; |
|
38 FlashMode flash; |
|
39 uint32_t flashOnMS; |
|
40 uint32_t flashOffMS; |
|
41 uint32_t color; |
|
42 }; |
|
43 |
|
44 struct SensorData { |
|
45 SensorType sensor; |
|
46 PRTime timestamp; |
|
47 float[] values; |
|
48 SensorAccuracyType accuracy; |
|
49 }; |
|
50 |
|
51 struct NetworkInformation { |
|
52 uint32_t type; |
|
53 bool isWifi; |
|
54 uint32_t dhcpGateway; |
|
55 }; |
|
56 |
|
57 struct SwitchEvent { |
|
58 SwitchDevice device; |
|
59 SwitchState status; |
|
60 }; |
|
61 |
|
62 struct WakeLockInformation { |
|
63 nsString topic; |
|
64 uint32_t numLocks; |
|
65 uint32_t numHidden; |
|
66 uint64_t[] lockingProcesses; |
|
67 }; |
|
68 |
|
69 struct ScreenConfiguration { |
|
70 nsIntRect rect; |
|
71 ScreenOrientation orientation; |
|
72 uint32_t colorDepth; |
|
73 uint32_t pixelDepth; |
|
74 }; |
|
75 |
|
76 struct FMRadioOperationInformation { |
|
77 FMRadioOperation operation; |
|
78 FMRadioOperationStatus status; |
|
79 uint32_t frequency; |
|
80 }; |
|
81 |
|
82 struct FMRadioSettings { |
|
83 FMRadioCountry country; |
|
84 uint32_t upperLimit; |
|
85 uint32_t lowerLimit; |
|
86 uint32_t spaceType; |
|
87 uint32_t preEmphasis; |
|
88 }; |
|
89 |
|
90 struct SystemTimezoneChangeInformation { |
|
91 // These timezone offsets are relative to UTC in minutes and |
|
92 // have already taken daylight saving time (DST) into account. |
|
93 int32_t oldTimezoneOffsetMinutes; |
|
94 int32_t newTimezoneOffsetMinutes; |
|
95 }; |
|
96 |
|
97 } // namespace hal |
|
98 |
|
99 namespace hal_sandbox { |
|
100 |
|
101 sync protocol PHal { |
|
102 manager PContent; |
|
103 |
|
104 child: |
|
105 NotifyBatteryChange(BatteryInformation aBatteryInfo); |
|
106 NotifyNetworkChange(NetworkInformation aNetworkInfo); |
|
107 NotifyWakeLockChange(WakeLockInformation aWakeLockInfo); |
|
108 NotifyScreenConfigurationChange(ScreenConfiguration aScreenOrientation); |
|
109 NotifySwitchChange(SwitchEvent aEvent); |
|
110 NotifySystemClockChange(int64_t aClockDeltaMS); |
|
111 NotifySystemTimezoneChange(SystemTimezoneChangeInformation aSystemTimezoneChangeInfo); |
|
112 |
|
113 parent: |
|
114 Vibrate(uint32_t[] pattern, uint64_t[] id, PBrowser browser); |
|
115 CancelVibrate(uint64_t[] id, PBrowser browser); |
|
116 |
|
117 EnableBatteryNotifications(); |
|
118 DisableBatteryNotifications(); |
|
119 sync GetCurrentBatteryInformation() |
|
120 returns (BatteryInformation aBatteryInfo); |
|
121 |
|
122 EnableNetworkNotifications(); |
|
123 DisableNetworkNotifications(); |
|
124 sync GetCurrentNetworkInformation() |
|
125 returns (NetworkInformation aNetworkInfo); |
|
126 |
|
127 sync GetScreenEnabled() returns (bool enabled); |
|
128 SetScreenEnabled(bool enabled); |
|
129 |
|
130 sync GetCpuSleepAllowed() returns (bool allowed); |
|
131 SetCpuSleepAllowed(bool allowed); |
|
132 |
|
133 sync GetScreenBrightness() returns (double brightness); |
|
134 SetScreenBrightness(double brightness); |
|
135 |
|
136 AdjustSystemClock(int64_t aDeltaMilliseconds); |
|
137 SetTimezone(nsCString aTimezoneSpec); |
|
138 sync GetTimezone() |
|
139 returns (nsCString aTimezoneSpec); |
|
140 sync GetTimezoneOffset() |
|
141 returns (int32_t aTimezoneOffset); |
|
142 EnableSystemClockChangeNotifications(); |
|
143 DisableSystemClockChangeNotifications(); |
|
144 EnableSystemTimezoneChangeNotifications(); |
|
145 DisableSystemTimezoneChangeNotifications(); |
|
146 |
|
147 sync SetLight(LightType light, LightConfiguration aConfig) |
|
148 returns (bool status); |
|
149 sync GetLight(LightType light) |
|
150 returns (LightConfiguration aConfig, bool status); |
|
151 |
|
152 ModifyWakeLock(nsString aTopic, |
|
153 WakeLockControl aLockAdjust, |
|
154 WakeLockControl aHiddenAdjust, |
|
155 uint64_t aProcessID); |
|
156 EnableWakeLockNotifications(); |
|
157 DisableWakeLockNotifications(); |
|
158 sync GetWakeLockInfo(nsString aTopic) |
|
159 returns (WakeLockInformation aWakeLockInfo); |
|
160 |
|
161 EnableScreenConfigurationNotifications(); |
|
162 DisableScreenConfigurationNotifications(); |
|
163 sync GetCurrentScreenConfiguration() |
|
164 returns (ScreenConfiguration aScreenConfiguration); |
|
165 sync LockScreenOrientation(ScreenOrientation aOrientation) |
|
166 returns (bool allowed); |
|
167 UnlockScreenOrientation(); |
|
168 |
|
169 EnableSwitchNotifications(SwitchDevice aDevice); |
|
170 DisableSwitchNotifications(SwitchDevice aDevice); |
|
171 sync GetCurrentSwitchState(SwitchDevice aDevice) |
|
172 returns (SwitchState aState); |
|
173 NotifySwitchStateFromInputDevice(SwitchDevice aDevice, SwitchState aState); |
|
174 |
|
175 FactoryReset(); |
|
176 |
|
177 child: |
|
178 NotifySensorChange(SensorData aSensorData); |
|
179 |
|
180 parent: |
|
181 EnableSensorNotifications(SensorType aSensor); |
|
182 DisableSensorNotifications(SensorType aSensor); |
|
183 |
|
184 __delete__(); |
|
185 }; |
|
186 |
|
187 } // namespace hal |
|
188 } // namespace mozilla |