Re: [w3c/gamepad] Add extended buttons to support trackpad (#191) (PR #196)

@nondebug commented on this pull request.



> +        </table>
+ <section>
+          <h3>
+            Partial <dfn>GamepadMappingType</dfn> enum
+          </h3>
+          <p>
+            This enum defines the Extended type of Gamepads.
+          </p>
+          <pre class="idl">
+            enum partial-GamepadMappingType {
+              "extended"
+            };
+          </pre>
+          <dl>
+            <dt>
+              <dfn>`"extended"`</dfn>

Introducing a new value for GamepadMappingType will break applications that currently check for "standard". I don't think it's necessary to add a new enum value for this, applications can discover whether the gamepad supports extra buttons by inspecting the buttons array.

> +            </dt>
+            <dd>
+              This button is being assigned to share button.
+            </dd>
+          </dl>
+        </section>
+        <section>
+          <h2>
+            Partial <dfn>GamepadButton</dfn> Interface
+          </h2>
+          <p>
+            This partial interface extends the GamepadButton interface in this spec.
+          </p>
+          <pre class="idl">
+            partial interface GamepadButton {
+              readonly attribute GamepadButtonType type;

Please move the definition to the main `interface GamepadButton` IDL section.

> +          </p>
+          <table class="simple">
+            <tr>
+              <th>
+                Internal slot
+              </th>
+              <th>
+                Initial value
+              </th>
+              <th>
+                Description (non-normative)
+              </th>
+            </tr>
+            <tr>
+              <td>
+                <dfn data-dfn-for="GamepadButton">[[\type]]</dfn>

I don't think we need an internal slot.

For other attributes we use a slot because the attribute is read-only but the implementation needs to be able to change the value. In this case the value should never change after initialization.

> +            </tr>
+            <tr>
+              <td>
+                <dfn data-dfn-for="GamepadButton">[[\type]]</dfn>
+              </td>
+              <td>
+                `undefined`
+              </td>
+              <td>
+                Indicates the button type the controller is held in.
+              </td>
+            </tr>
+   </table>
+          <dl data-dfn-for="GamepadButton">
+          <dt>
+            <dfn>type</dfn>

`<dfn>type</dfn> attribute`

> +          </pre>
+          <dl>
+            <dt>
+              <dfn>`"extended"`</dfn>
+            </dt>
+            <dd>
+              The Gamepad's controls have been mapped to the Extended Gamepad layout.
+            </dd>
+          </dl>
+        </section>
+ <section>
+          <h3>
+            <dfn>GamepadButtonType</dfn> Enum
+          </h3>
+          <p>
+            This enum defines the set of possible botton types.

botton -> button

> +            </dd>
+          </dl>
+        </section>
+ <section>
+          <h3>
+            <dfn>GamepadButtonType</dfn> Enum
+          </h3>
+          <p>
+            This enum defines the set of possible botton types.
+          </p>
+          <pre class="idl">
+            enum GamepadButtonType {
+              "",  /* unknown, or not applicable */
+              "trackpad",
+              "share",
+              "..."

Omit "..." since it is not a valid enum value.

On sony_dualshock4_gamepad.svg:

The diagrams are difficult to read. For clarity I think we should provide this information as a table instead of a diagram.

> +                <dfn data-dfn-for="GamepadButton">[[\type]]</dfn>
+              </td>
+              <td>
+                `undefined`
+              </td>
+              <td>
+                Indicates the button type the controller is held in.
+              </td>
+            </tr>
+   </table>
+          <dl data-dfn-for="GamepadButton">
+          <dt>
+            <dfn>type</dfn>
+          </dt>
+          <dd>
+            An enumeration, {{GamepadButtonType}}, that indicates which button types the controller

The description for the `type` attribute needs to be updated

-- 
Reply to this email directly or view it on GitHub:
https://github.com/w3c/gamepad/pull/196#pullrequestreview-1935433254
You are receiving this because you are subscribed to this thread.

Message ID: <w3c/gamepad/pull/196/review/1935433254@github.com>

Received on Thursday, 14 March 2024 21:59:40 UTC