Skip to content

Commit 59b8d9c

Browse files
committed
Development/Configurations: Fix Identifier attributes definition, and add support columns for attributes
1 parent 263c8fe commit 59b8d9c

File tree

1 file changed

+20
-19
lines changed

1 file changed

+20
-19
lines changed

site/_wiki/Development/Configurations.md

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,18 @@ This has the same properties as the [auxiliary buttons](#auxiliary-buttons)
7070
Device identifiers are what actually detect the tablet. Anything defined here is used in the detection process to
7171
pinpoint devices.
7272

73-
| Property Name | Value Type | Description |
74-
| :---------------------------: | :------------------------: | :---------- |
75-
| Vendor ID | `ushort` | A [USB-IF] defined identifier that defines which vendor the device is produced by. Since this is assigned by the USB-IF it can be quite reliable for determining the manufacturer.
76-
| Product ID | `ushort` | A vendor-defined identifier for the device. This can be used to identify a device, however this can be unreliable as it depends on the vendor defining it different for all of their devices.
77-
| Input Report Length | `ushort` | The length of input reports from the device. This is always required as report parsers expect a specific report length.
78-
| Output Report Length | `ushort` | The length of output reports to the device endpoint. This is not always required, however it does help make the detection more precise.
79-
| Report Parser | `string` | The parser that will read and convert all tablet report data into a format that OpenTabletDriver understands. This is the full namespace and the class name. All supported vendor-specific report parsers can be found [here][parsers].
80-
| Feature Initialization Report | `List<byte[]>` | A list of feature reports to be sent to the device to perform the device's initialization sequence.
81-
| Output Initialization Report | `List<byte[]>` | A list of output reports to be sent to the device to perform the device's initialization sequence.
82-
| Device Strings | `Dictionary<byte, string>` | A list of regular expressions to be matched against specific indexes of strings contained within the device's firmware. They can be retrieved via the device string reader. This is optional, however it is commonly used to improve detection precision.
83-
| Initialization String Indexes | `byte[]` | A list of indexes to be retrieved from the device as part of the device's initialization sequence. This is optional, and very infrequently used.
84-
| `Interface` | non-negative integer | Specifies the USB device interface to use. For example: `0`. Should be used when the identifier might be ambiguous, or if the tablet has multiple interfaces matching the used identifiers, but only has one of them usable.
73+
| Property Name | Value Type | Description |
74+
| :---------------------------: | :--------------------------: | :---------- |
75+
| Vendor ID | `ushort` | A [USB-IF] defined identifier that defines which vendor the device is produced by. Since this is assigned by the USB-IF it can be quite reliable for determining the manufacturer.
76+
| Product ID | `ushort` | A vendor-defined identifier for the device. This can be used to identify a device, however this can be unreliable as it depends on the vendor defining it different for all of their devices.
77+
| Input Report Length | `ushort` | The length of input reports from the device. This is always required as report parsers expect a specific report length.
78+
| Output Report Length | `ushort` | The length of output reports to the device endpoint. This is not always required, however it does help make the detection more precise.
79+
| Report Parser | `string` | The parser that will read and convert all tablet report data into a format that OpenTabletDriver understands. This is the full namespace and the class name. All supported vendor-specific report parsers can be found [here][parsers].
80+
| Feature Initialization Report | `List<byte[]>` | A list of feature reports to be sent to the device to perform the device's initialization sequence.
81+
| Output Initialization Report | `List<byte[]>` | A list of output reports to be sent to the device to perform the device's initialization sequence.
82+
| Device Strings | `Dictionary<byte, string>` | A list of regular expressions to be matched against specific indexes of strings contained within the device's firmware. They can be retrieved via the device string reader. This is optional, however it is commonly used to improve detection precision.
83+
| Initialization String Indexes | `byte[]` | A list of indexes to be retrieved from the device as part of the device's initialization sequence. This is optional, and very infrequently used.
84+
| Attributes | `Dictionary<string, string>` | See [Attributes](#attributes) table for attributes that can be used in identifiers |
8585
{: .table .table-dark }
8686

8787
> Byte arrays (`byte[]`) are serialized as Base64 in JSON.NET, the library that serializes and deserializes configurations.
@@ -90,20 +90,21 @@ pinpoint devices.
9090
[USB-IF]: https://en.wikipedia.org/wiki/USB_Implementers_Forum "USB Implementers Forum"
9191
[parsers]: https://github.com/OpenTabletDriver/OpenTabletDriver/tree/HEAD/OpenTabletDriver.Configurations/Parsers
9292

93-
### Attributes
93+
### Attributes {#attributes}
9494

9595
Attributes are used to provide additional optional information, commonly used within utilities or tools, or within OpenTabletDriver to help with device detection.
9696

9797
The type of the object is `Dictionary<string, string>`, e.g. `{ "FeatureInitDelayMs": "150", "libinputoverride": "1" }`.
9898

9999
Some example attributes include:
100100

101-
| Key Name | String Value | Description |
102-
| :------------------: | :------------------: | :---------- |
103-
| `libinputoverride` | `1` | *(Linux only)* Whether the generic tablet interface should be ignored by [libinput] or not. Used in [udev] rule generation, using the tablets VID and PID.
104-
| `WinUsage` | [00..99] | *(Windows only)* Specifies the HID usage collection to use. String must have exactly two digits (e.g. `"01"`)
105-
| `FeatureInitDelayMs` | milliseconds | For tablets with multiple feature initialization reports (e.g. polling rate change), wait this many milliseconds between reports. This can help if later feature initialization reports are sometimes randomly not picked up by the tablet.
106-
| `Interface` | non-negative integer | Specifies the USB device interface to use. For example: `0`. Should be used when the identifiers might be ambiguous, or if the tablet has multiple interfaces matching the used identifiers, but only has one of them usable. We suggest using the digitizer-specific `Interface` attribute instead, if possible.
101+
| Key Name | String Value | Usage in || Description |
102+
| | | Attributes | Identifier | |
103+
| :------------------: | :------------------: | :--------: | :--------: | :---------- |
104+
| `Interface` | non-negative integer | ✅ | ✅ | Specifies the USB device interface to use. For example: `"0"`. Should be used when the identifiers might be ambiguous, or if the tablet has multiple interfaces matching the used identifiers, but only has one of them usable. We suggest using the digitizer-specific `Interface` attribute instead, if possible.
105+
| `WinUsage` | [00..99] | ✅ | ✅ | *(Windows only)* Specifies the HID usage collection to use. String must have exactly two digits (e.g. `"01"`)
106+
| `libinputoverride` | `1` | ✅ | ❌ | *(Linux only)* Whether the generic tablet interface should be ignored by [libinput] or not. Used in [udev] rule generation, using the tablets VID and PID.
107+
| `FeatureInitDelayMs` | milliseconds | ✅ | ❌ | For tablets with multiple feature initialization reports (e.g. polling rate change), wait this many milliseconds between reports. This can help if later feature initialization reports are sometimes randomly not picked up by the tablet.
107108
{: .table .table-dark }
108109

109110
[libinput]: https://www.freedesktop.org/wiki/Software/libinput/ "freedesktop.org's site on libinput"

0 commit comments

Comments
 (0)