mirror of
https://github.com/servo/servo.git
synced 2025-07-23 07:13:52 +01:00
* Implement Servo side of GamepadHapticActuator Signed-off-by: Daniel Adams <msub2official@gmail.com> * Get build working Signed-off-by: Daniel Adams <msub2official@gmail.com> * Create effect handling on embedder side Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update tracing for GamepadHapticEffect Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update gilrs to point to commit with effect complete event Signed-off-by: Daniel Adams <msub2official@gmail.com> * Implement playing and preempting haptic effects Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update IDL to add trigger rumble Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update WPT expectations Signed-off-by: Daniel Adams <msub2official@gmail.com> * Handle stopping haptic effects from reset() Signed-off-by: Daniel Adams <msub2official@gmail.com> * ./mach fmt, fix test-tidy issues Signed-off-by: Daniel Adams <msub2official@gmail.com> * Add extra validity checks for trigger rumble Signed-off-by: Daniel Adams <msub2official@gmail.com> * Retrieve supported haptic effects from embedder Signed-off-by: Daniel Adams <msub2official@gmail.com> * Fix test expectations Signed-off-by: Daniel Adams <msub2official@gmail.com> * Add missing spec link, pin gilrs commit Signed-off-by: Daniel Adams <msub2official@gmail.com> * servoshell cargo formatting Signed-off-by: Daniel Adams <msub2official@gmail.com> * Fix Cargo.toml Signed-off-by: Daniel Adams <msub2official@gmail.com> * Additional comments, realm proof, naming Signed-off-by: Daniel Adams <msub2official@gmail.com> * ./mach fmt Signed-off-by: Daniel Adams <msub2official@gmail.com> * Update gilrs rev to gilrs-core 0.5.12 release Signed-off-by: Daniel Adams <msub2official@gmail.com> * Implement sequence ids for gamepad haptic promises Signed-off-by: Daniel Adams <msub2official@gmail.com> * Take playing effect promise instead of cloning Signed-off-by: Daniel Adams <msub2official@gmail.com> * Implement listener for reset function Signed-off-by: Daniel Adams <msub2official@gmail.com> * Fix Cargo.lock Signed-off-by: Daniel Adams <msub2official@gmail.com> * Restructure IPC listeners, add comments, handle visibility change Signed-off-by: Daniel Adams <msub2official@gmail.com> * Check that haptic effect still exists before handling ff completion event Signed-off-by: Daniel Adams <msub2official@gmail.com> * Visibility steps, add InRealm bindings for promises Signed-off-by: Daniel Adams <msub2official@gmail.com> * Add Gamepad EmbedderMsg arms to egl servo_glue Signed-off-by: Daniel Adams <msub2official@gmail.com> --------- Signed-off-by: Daniel Adams <msub2official@gmail.com>
38 lines
1.2 KiB
Text
38 lines
1.2 KiB
Text
/* 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 https://mozilla.org/MPL/2.0/. */
|
|
|
|
// https://w3c.github.io/gamepad/#gamepadhapticactuator-interface
|
|
[Exposed=Window, Pref="dom.gamepad.enabled"]
|
|
interface GamepadHapticActuator {
|
|
/* [SameObject] */ readonly attribute /* FrozenArray<GamepadHapticEffectType> */ any effects;
|
|
[NewObject]
|
|
Promise<GamepadHapticsResult> playEffect(
|
|
GamepadHapticEffectType type,
|
|
optional GamepadEffectParameters params = {}
|
|
);
|
|
[NewObject]
|
|
Promise<GamepadHapticsResult> reset();
|
|
};
|
|
|
|
// https://w3c.github.io/gamepad/#gamepadhapticsresult-enum
|
|
enum GamepadHapticsResult {
|
|
"complete",
|
|
"preempted"
|
|
};
|
|
|
|
// https://w3c.github.io/gamepad/#dom-gamepadhapticeffecttype
|
|
enum GamepadHapticEffectType {
|
|
"dual-rumble",
|
|
"trigger-rumble"
|
|
};
|
|
|
|
// https://w3c.github.io/gamepad/#dom-gamepadeffectparameters
|
|
dictionary GamepadEffectParameters {
|
|
unsigned long long duration = 0;
|
|
unsigned long long startDelay = 0;
|
|
double strongMagnitude = 0.0;
|
|
double weakMagnitude = 0.0;
|
|
double leftTrigger = 0.0;
|
|
double rightTrigger = 0.0;
|
|
};
|