- From: Gabriel Brito <notifications@github.com>
- Date: Mon, 21 Apr 2025 21:53:19 -0700
- To: w3c/gamepad <gamepad@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <w3c/gamepad/pull/220/review/2782680259@github.com>
@gabrielsanbrito commented on this pull request. @nondebug left a couple of comments. I think that the model section looks good! > + The [=user agent=] is responsible for enumerating [=available=] + [=gamepads=], detecting when [=gamepads=] become [=available=] or + [=unavailable=], and detecting when input controls have updated input + values. Maybe make this a bullet list? > @@ -136,6 +136,164 @@ <h2> sensing, depth sensing, video analysis, gesture recognition, and so on. </p> </section> + <section> + <h2> + Model + </h2> + <p> + A <dfn>gamepad</dfn> is a collection of input controls (buttons, ```suggestion A <dfn>gamepad</dfn> is a collection of <dfn>input controls</dfn> (buttons, ``` Maybe we should also add a definition for "input controls"? > + [=gamepad=] is [=available=]. Each input control has one or more + <dfn>input values</dfn> that may update over time. + </p> + <p> + The [=user agent=] is responsible for enumerating [=available=] + [=gamepads=], detecting when [=gamepads=] become [=available=] or + [=unavailable=], and detecting when input controls have updated input + values. + </p> + <p> + A [=gamepad=] has a <dfn>gamepad identifier string</dfn>, a + human-readable string that identifies the brand or style of + [=gamepad=]. The content is decided by the [=user agent=]. + </p> + <p> + A [=gamepad=] may be a physical device. If so, it has an <dfn>input Can a gamepad be something other than a physical device in the context of this spec? If so, maybe we can exemplify which types of non-physical devices a gamepad object can represent? > + layout</dfn>, meaning the relative positions and orientations of its + input controls are close enough to the standard layout that a user can + use it interchangeably with other devices that have the same input + controls and correspond with the same layout. I think that this clause is a little confusing. This part to be more specific: "that a user can use it interchangeably with other devices that have the same input controls and correspond with the same layout". I think that adding "standard" at the end makes things clearer? ```suggestion layout</dfn>, meaning the relative positions and orientations of its input controls are close enough to a standard layout that a user can use it interchangeably with other devices that have the same input controls and correspond with the same standard layout. ``` > + control. If so, the [=axis=] has a <dfn>preferred axis state</dfn>. An + An [=axis=] with a [=preferred axis state=] may also have a <dfn>center + position value</dfn> [=input value=] which is the [=logical axis + value=] when the [=axis=] is centered. Remove double "An" and maybe we remove the `[=input value=]` reference to make the text more fluid? Or maybe we can have `<dfn>center position input value</dfn>`? ```suggestion control. If so, the [=axis=] has a <dfn>preferred axis state</dfn>. An [=axis=] with a [=preferred axis state=] may also have a <dfn>center position value</dfn> which is the [=logical axis value=] when the [=axis=] is centered. ``` > + A [=touch surface=] has an <dfn>active touch point list</dfn> [=input + value=], a [=list=] of zero or more [=touch points=] representing the ```suggestion A [=touch surface=] has an <dfn>active touch point list</dfn> of [=input values=], a [=list=] of zero or more [=touch points=] representing the ``` > + A [=gamepad=] may have [=touch surfaces=]. A <dfn>touch surface</dfn> + is an input control that provides 2D position data representing points + of contact. A [=gamepad=] has a <dfn>touch surface list</dfn> which is Is it relevant to mention that the we are using a cartesian system to locate these touch points? ```suggestion A [=gamepad=] may have [=touch surfaces=]. A <dfn>touch surface</dfn> is an input control that provides 2D position data representing points of contact in a cartesian coordinate system, where the origin is located in the center of the touch surface. A [=gamepad=] has a <dfn>touch surface list</dfn> which is ``` > + <p> + A [=gamepad=] may have [=touch surfaces=]. A <dfn>touch surface</dfn> + is an input control that provides 2D position data representing points + of contact. A [=gamepad=] has a <dfn>touch surface list</dfn> which is + a [=list=] containing the [=touch surfaces=] for the [=gamepad=]. The + list is ordered such that [=touch surfaces=] closer to the left side of + the [=gamepad=] appear closer to the start of the list. + </p> + <p> + A [=touch surface=] has an <dfn>active touch point list</dfn> [=input + value=], a [=list=] of zero or more [=touch points=] representing the + points of contact currently detected by the sensor, ordered such that + earlier [=touch points=] appear closer to the start of the [=list=]. A + <dfn>touch point</dfn> represents a single point of contact at a single + point in time. A [=touch point=] has a <dfn>touch x coordinate</dfn> + representing its position along the user's left-right axis and a Maybe "horizontal" is more formal? ```suggestion representing its position along the user's horizontal axis and a ``` > + list is ordered such that [=touch surfaces=] closer to the left side of + the [=gamepad=] appear closer to the start of the list. + </p> + <p> + A [=touch surface=] has an <dfn>active touch point list</dfn> [=input + value=], a [=list=] of zero or more [=touch points=] representing the + points of contact currently detected by the sensor, ordered such that + earlier [=touch points=] appear closer to the start of the [=list=]. A + <dfn>touch point</dfn> represents a single point of contact at a single + point in time. A [=touch point=] has a <dfn>touch x coordinate</dfn> + representing its position along the user's left-right axis and a + <dfn>touch y coordinate</dfn> representing its position along the + perpendicular axis. + </p> + <p> + A [=touch surface=] may have surface dimension [=input values=]. The Are the surface dimensions considered `input values`? According to our definition, `input values` are associated with `input controls`. Maybe we could just say that dimensions are just "values"? > + {{GamepadTouch}}. The <dfn>active touch point id</dfn> for a [=touch + point=] is the {{GamepadTouch/touchId}} of the earlier + {{GamepadTouch}}. ```suggestion {{GamepadTouch}}. The <dfn>active touch point id</dfn> for a [=touch point=] that is [=part of an existing active touch point=] is the {{GamepadTouch/touchId}} of the earlier {{GamepadTouch}}. ``` Or maybe: ```suggestion {{GamepadTouch}}. In this case, the [=touch point=]'s {{GamepadTouch/touchId}} is the {{GamepadTouch/touchId}} of the earlier {{GamepadTouch}}. ``` > + A [=gamepad=] may have [=haptic actuators=]. A <dfn>haptic + actuator</dfn> is an output control capable of moving the [=gamepad=] + in a way that can be felt by the user. A <dfn>haptic effect</dfn> is + the use of one or more [=haptic actuators=] to provide feedback to the + user. The [=user agent=] is responsible for commanding [=haptic + actuators=] to play and stop [=haptic effects=] on [=available=] + [=gamepads=]. Maybe this way? ```suggestion A [=gamepad=] may have [=haptic actuators=]. A <dfn>haptic actuator</dfn> is an output control capable of moving the [=gamepad=] in a way that can be felt by the user. One or more [=Haptic actuators=] can be used to generate <dfn>haptic effects</dfn> and provide feedback to the user. The [=user agent=] is responsible for commanding [=haptic actuators=] to play and stop [=haptic effects=] on [=available=] [=gamepads=]. ``` > @@ -136,6 +136,164 @@ <h2> sensing, depth sensing, video analysis, gesture recognition, and so on. </p> </section> + <section> + <h2> + Model + </h2> Maybe we can create a subdivide this section in: - Model - input controls - axes - buttons - touch - output controls In the Model's section caput we can define the gamepad's properties (basically the first 4 paragraphs) and then we can go into the controls' subsections. WDYT of something like this? ``` //Model A gamepad is a collection of input controls... [...] ... and correspond with the same layout. A [=gamepad=] may have input controls: - Axis inputs - button inputs - touch surfaces A [=gamepad=] may have output controls like haptic actuators. // // Input controls [...] // // Output controls ``` > + control. If so, the [=axis=] has a <dfn>preferred axis state</dfn>. An + An [=axis=] with a [=preferred axis state=] may also have a <dfn>center + position value</dfn> [=input value=] which is the [=logical axis + value=] when the [=axis=] is centered. This same feedback also applies to `<dfn>digital button value</dfn>` and `dfn>button touch value</dfn>`. -- Reply to this email directly or view it on GitHub: https://github.com/w3c/gamepad/pull/220#pullrequestreview-2782680259 You are receiving this because you are subscribed to this thread. Message ID: <w3c/gamepad/pull/220/review/2782680259@github.com>
Received on Tuesday, 22 April 2025 04:53:23 UTC