1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
4include protocol PBackground;
5include "mozilla/dom/GamepadMessageUtils.h";
6include GamepadEventTypes;
7
8using mozilla::dom::GamepadHandle from "mozilla/dom/GamepadHandle.h";
9
10namespace mozilla {
11namespace dom {
12
13refcounted protocol PGamepadEventChannel {
14  manager PBackground;
15  parent:
16    async __delete__();
17
18    [Tainted] async VibrateHaptic(GamepadHandle aHandle, uint32_t aHapticIndex,
19                                  double aIntensity, double aDuration, [NoTaint=passback] uint32_t aPromiseID);
20    [Tainted] async StopVibrateHaptic(GamepadHandle aHandle);
21    [Tainted] async LightIndicatorColor(GamepadHandle aHandle, uint32_t aLightColorIndex,
22                                        [NoTaint=allvalid] uint8_t aRed, [NoTaint=allvalid] uint8_t aGreen,
23                                        [NoTaint=allvalid] uint8_t aBlue, [NoTaint=passback] uint32_t aPromiseID);
24
25  child:
26    async GamepadUpdate(GamepadChangeEvent aGamepadEvent);
27    async ReplyGamepadPromise(uint32_t aPromiseID);
28};
29
30}
31}
32