- From: Marcos Cáceres <notifications@github.com>
- Date: Mon, 27 Nov 2023 22:21:31 -0800
- To: w3c/gamepad <gamepad@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/gamepad/pull/190/review/1752140777@github.com>
@marcoscaceres commented on this pull request.
> @@ -153,6 +153,7 @@ <h2>
readonly attribute GamepadMappingType mapping;
readonly attribute FrozenArray<double> axes;
readonly attribute FrozenArray<GamepadButton> buttons;
+ [SameObject] readonly attribute GamepadHapticActuator? vibrationActuator;
supporting null, seems a bit iffy to be honest (and kinda a pain to implement, because you need to know if you can play effects before you bind the object).
My preference would be to make it non-nullable, as it's still an expectation that canPlayEffectType() can still return not-supported for everything.
Also, the actual feature detection check is if it's `undefined` right now for browsers that don't implement this.
Yes, there is risk of breakage for browsers, but developers still need to check (fake code for example):
```JS
// is supported at all
if (gamepad.vibrationActuator !== undefined) {
// it's implemented, but can't play anything
if (gamepad.vibrationActuator !== null) {
// can it play the thing I need
if (gamepad.vibrationActuator.canPlayEffectType(type)) {
}
}
```
Which seems excessive. It should just be regular (which will work regardless):
```JS
if (gamepad.vibrationActuator?.canPlayEffectType(type)) {
// play it...
}
```
--
Reply to this email directly or view it on GitHub:
https://github.com/w3c/gamepad/pull/190#discussion_r1407279246
You are receiving this because you are subscribed to this thread.
Message ID: <w3c/gamepad/pull/190/review/1752140777@github.com>
Received on Tuesday, 28 November 2023 06:21:36 UTC