Web MIDI: can not enumerate all devices if multiple devices have the same MIDI*CAPS on Windows |
||
Issue descriptionWeb MIDI Windows backend expects MIDI*CAPS can be a unique identifier to differentiate all connected devices, and usually it's true. When the same device is connected, each device could have a suffix such as (1), (2), .... But, some devices could have the same CAPS. Such case, the backend can recognize only the first device. Otherwise, we need to append internal suffix to identify each. However we have no way to bind previously opened device to the one of those devices that have the same CAPS. Thus, even the backend adds an internal suffix, it looks impossible to handle the second device correctly. Note: We can not identify the opened device by just re-opening to see a result because some device drivers allow to be opened twice. Possible one idea is 1. close opened device if we have multiple devices that have the same CAPS. 2. identify them with internal suffix, and open each Downside of this idea is that it needs to stop running I/O if there is, and it could block a bit log time, and the worst fault is this could connect existing JS MIDIPort to a different device at the hotplug event. Probably this should be a Windows restriction, and could be solved by using WinRT API but it has been blocked by a WinRT API problem.
,
Jun 22 2017
We may be able to use midiInGetID() to know the new device index after a hotplug event if the device was already opened?
,
Jun 22 2018
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot |
||
►
Sign in to add a comment |
||
Comment 1 by toyoshim@chromium.org
, Jun 22 2017