summaryrefslogtreecommitdiffstats
path: root/dom/webidl/VRServiceTest.webidl
blob: fec95dba073d0412022005869536e01eabd23c05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* 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/.
 *
 * This WebIDL is just for WebVR testing.
 */

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRMockDisplay {
  undefined create();
  attribute boolean capPosition;
  attribute boolean capOrientation;
  attribute boolean capPresent;
  attribute boolean capExternal;
  attribute boolean capAngularAcceleration;
  attribute boolean capLinearAcceleration;
  attribute boolean capStageParameters;
  attribute boolean capMountDetection;
  attribute boolean capPositionEmulated;
  undefined setEyeFOV(VREye eye,
                      double upDegree, double rightDegree,
                      double downDegree, double leftDegree);
  undefined setEyeOffset(VREye eye, double offsetX,
                         double offsetY, double offsetZ);
  undefined setEyeResolution(unsigned long renderWidth,
                             unsigned long renderHeight);
  undefined setConnected(boolean connected);
  undefined setMounted(boolean mounted);
  undefined setStageSize(double width, double height);
  [Throws] undefined setSittingToStandingTransform(Float32Array sittingToStandingTransform);
  [Throws] undefined setPose(Float32Array? position, Float32Array? linearVelocity,
                             Float32Array? linearAcceleration, Float32Array? orientation,
                             Float32Array? angularVelocity, Float32Array? angularAcceleration);
};

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRMockController {
  undefined create();
  undefined clear();
  attribute GamepadHand hand;
  attribute boolean capPosition;
  attribute boolean capOrientation;
  attribute boolean capAngularAcceleration;
  attribute boolean capLinearAcceleration;
  attribute unsigned long axisCount;
  attribute unsigned long buttonCount;
  attribute unsigned long hapticCount;
  [Throws] undefined setPose(Float32Array? position, Float32Array? linearVelocity,
                             Float32Array? linearAcceleration, Float32Array? orientation,
                             Float32Array? angularVelocity, Float32Array? angularAcceleration);
  undefined setButtonPressed(unsigned long buttonIdx, boolean pressed);
  undefined setButtonTouched(unsigned long buttonIdx, boolean touched);
  undefined setButtonTrigger(unsigned long buttonIdx, double trigger);
  undefined setAxisValue(unsigned long axisIdx, double value);
};

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRServiceTest {
  VRMockDisplay getVRDisplay();
  [Throws] VRMockController getVRController(unsigned long controllerIdx);
  [NewObject] Promise<undefined> run();
  [NewObject] Promise<undefined> reset();
  undefined commit();
  undefined end();
  undefined clearAll();
  undefined timeout(unsigned long duration);
  undefined wait(unsigned long duration);
  undefined waitSubmit();
  undefined waitPresentationStart();
  undefined waitPresentationEnd();
  [Throws]
  undefined waitHapticIntensity(unsigned long controllerIdx, unsigned long hapticIdx, double intensity);
  undefined captureFrame();
  undefined acknowledgeFrame();
  undefined rejectFrame();
  undefined startTimer();
  undefined stopTimer();
};