diff options
Diffstat (limited to 'hal/sandbox/PHal.ipdl')
-rw-r--r-- | hal/sandbox/PHal.ipdl | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/hal/sandbox/PHal.ipdl b/hal/sandbox/PHal.ipdl new file mode 100644 index 000000000..37b69f93f --- /dev/null +++ b/hal/sandbox/PHal.ipdl @@ -0,0 +1,159 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set sw=2 ts=8 et ft=cpp : */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +include protocol PContent; +include protocol PBrowser; + +include "mozilla/GfxMessageUtils.h"; + +using mozilla::dom::ScreenOrientationInternal from "mozilla/dom/ScreenOrientation.h"; +using mozilla::hal::SensorType from "mozilla/HalSensor.h"; +using mozilla::hal::SensorAccuracyType from "mozilla/HalSensor.h"; +using mozilla::hal::WakeLockControl from "mozilla/HalTypes.h"; +using mozilla::hal::SwitchState from "mozilla/HalTypes.h"; +using mozilla::hal::SwitchDevice from "mozilla/HalTypes.h"; +using mozilla::hal::ProcessPriority from "mozilla/HalTypes.h"; +using nsIntRect from "nsRect.h"; +using PRTime from "prtime.h"; + +namespace mozilla { + +namespace hal { +struct BatteryInformation { + double level; + bool charging; + double remainingTime; +}; + +struct SensorData { + SensorType sensor; + PRTime timestamp; + float[] values; + SensorAccuracyType accuracy; +}; + +struct NetworkInformation { + uint32_t type; + bool isWifi; + uint32_t dhcpGateway; +}; + +struct SwitchEvent { + SwitchDevice device; + SwitchState status; +}; + +struct WakeLockInformation { + nsString topic; + uint32_t numLocks; + uint32_t numHidden; + uint64_t[] lockingProcesses; +}; + +struct ScreenConfiguration { + nsIntRect rect; + ScreenOrientationInternal orientation; + uint16_t angle; + uint32_t colorDepth; + uint32_t pixelDepth; +}; + +struct SystemTimezoneChangeInformation { + // These timezone offsets are relative to UTC in minutes and + // have already taken daylight saving time (DST) into account. + int32_t oldTimezoneOffsetMinutes; + int32_t newTimezoneOffsetMinutes; +}; + +} // namespace hal + +namespace hal_sandbox { + +nested(upto inside_cpow) sync protocol PHal { + manager PContent; + +child: + async NotifyBatteryChange(BatteryInformation aBatteryInfo); + async NotifyNetworkChange(NetworkInformation aNetworkInfo); + async NotifyWakeLockChange(WakeLockInformation aWakeLockInfo); + async NotifyScreenConfigurationChange(ScreenConfiguration aScreenOrientation); + async NotifySwitchChange(SwitchEvent aEvent); + async NotifySystemClockChange(int64_t aClockDeltaMS); + async NotifySystemTimezoneChange(SystemTimezoneChangeInformation aSystemTimezoneChangeInfo); + +parent: + async Vibrate(uint32_t[] pattern, uint64_t[] id, PBrowser browser); + async CancelVibrate(uint64_t[] id, PBrowser browser); + + async EnableBatteryNotifications(); + async DisableBatteryNotifications(); + sync GetCurrentBatteryInformation() + returns (BatteryInformation aBatteryInfo); + + async EnableNetworkNotifications(); + async DisableNetworkNotifications(); + sync GetCurrentNetworkInformation() + returns (NetworkInformation aNetworkInfo); + + sync GetScreenEnabled() returns (bool enabled); + async SetScreenEnabled(bool aEnabled); + + sync GetKeyLightEnabled() returns (bool enabled); + async SetKeyLightEnabled(bool aEnabled); + + sync GetCpuSleepAllowed() returns (bool allowed); + async SetCpuSleepAllowed(bool aAllowed); + + sync GetScreenBrightness() returns (double brightness); + async SetScreenBrightness(double aBrightness); + + async AdjustSystemClock(int64_t aDeltaMilliseconds); + async SetTimezone(nsCString aTimezoneSpec); + sync GetTimezone() + returns (nsCString aTimezoneSpec); + sync GetTimezoneOffset() + returns (int32_t aTimezoneOffset); + async EnableSystemClockChangeNotifications(); + async DisableSystemClockChangeNotifications(); + async EnableSystemTimezoneChangeNotifications(); + async DisableSystemTimezoneChangeNotifications(); + + async ModifyWakeLock(nsString aTopic, + WakeLockControl aLockAdjust, + WakeLockControl aHiddenAdjust, + uint64_t aProcessID); + async EnableWakeLockNotifications(); + async DisableWakeLockNotifications(); + sync GetWakeLockInfo(nsString aTopic) + returns (WakeLockInformation aWakeLockInfo); + + async EnableScreenConfigurationNotifications(); + async DisableScreenConfigurationNotifications(); + nested(inside_cpow) sync GetCurrentScreenConfiguration() + returns (ScreenConfiguration aScreenConfiguration); + sync LockScreenOrientation(ScreenOrientationInternal aOrientation) + returns (bool allowed); + async UnlockScreenOrientation(); + + async EnableSwitchNotifications(SwitchDevice aDevice); + async DisableSwitchNotifications(SwitchDevice aDevice); + sync GetCurrentSwitchState(SwitchDevice aDevice) + returns (SwitchState aState); + + async FactoryReset(nsString aReason); + +child: + async NotifySensorChange(SensorData aSensorData); + +parent: + async EnableSensorNotifications(SensorType aSensor); + async DisableSensorNotifications(SensorType aSensor); + + async __delete__(); +}; + +} // namespace hal +} // namespace mozilla |