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/. */ 4 5[Pref="dom.gamepad.test.enabled", 6 Exposed=Window] 7interface GamepadServiceTest 8{ 9 readonly attribute GamepadMappingType noMapping; 10 readonly attribute GamepadMappingType standardMapping; 11 readonly attribute GamepadHand noHand; 12 readonly attribute GamepadHand leftHand; 13 readonly attribute GamepadHand rightHand; 14 15 [Throws] 16 Promise<unsigned long> addGamepad(DOMString id, 17 GamepadMappingType mapping, 18 GamepadHand hand, 19 unsigned long numButtons, 20 unsigned long numAxes, 21 unsigned long numHaptics, 22 unsigned long numLightIndicator, 23 unsigned long numTouchEvents); 24 25 [Throws] 26 Promise<unsigned long> removeGamepad(unsigned long index); 27 28 [Throws] 29 Promise<unsigned long> newButtonEvent(unsigned long index, 30 unsigned long button, 31 boolean pressed, 32 boolean touched); 33 34 [Throws] 35 Promise<unsigned long> newButtonValueEvent(unsigned long index, 36 unsigned long button, 37 boolean pressed, 38 boolean touched, 39 double value); 40 41 [Throws] 42 Promise<unsigned long> newAxisMoveEvent(unsigned long index, 43 unsigned long axis, 44 double value); 45 [Throws] 46 Promise<unsigned long> newPoseMove(unsigned long index, 47 Float32Array? orient, 48 Float32Array? pos, 49 Float32Array? angVelocity, 50 Float32Array? angAcceleration, 51 Float32Array? linVelocity, 52 Float32Array? linAcceleration); 53 54 [Throws] 55 Promise<unsigned long> newTouch(unsigned long index, unsigned long aTouchArrayIndex, 56 unsigned long touchId, octet surfaceId, 57 Float32Array position, Float32Array? surfaceDimension); 58};