Skip to content

Redesign bdDetect USB device registration #17521

@LeonarddeR

Description

@LeonarddeR

Detailed description of the issue

The current way USB devices are saved in bdDetect internals is not appropriate for several reasons.

  1. It doesn't allow filtering for HID usage page or other device parameters that go beyond just Vid and PID on the bdDetect level, only on the driver level.
  2. It doesn't allow registering fallback state of a device (see Add com port option in Braille Display Select Dialog and fix Serial Connection error #16340) in a clean fashion, i.e. it requires a separate dictionary to register fallback state, rather than providing the fallback state on the device match

Steps to reproduce or illustrate the issue (if applicable)

  1. Connect a Humanware Brailliant over USB
  2. Observe in the logs that several attempts will be done to connect to a device that doesn't allow connection (i.e. because it has not the expected usage page)
  3. Consider that for a driver to select the proper usage page, the driver has to be patched since bdDetect has no facilities to account for this.

Expected outcome or behaviour (if applicable)

  1. Quicker and more robust connection of Humanware Brailliant devices
  2. Make the detection system of usb devices more future proof

Intentions with this issue

I'm intending to fix this and will try to provide a patch somewhere within the next weeks. I intend this patch to be backwards compatible, so it won't require any driver change.

Metadata

Metadata

Assignees

Labels

component/braille-display-driversp4https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#prioritytriagedHas been triaged, issue is waiting for implementation.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions