https://bugs.winehq.org/show_bug.cgi?id=47502
Martin Rosenau mdjrosenau@hotmail.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mdjrosenau@hotmail.de
--- Comment #1 from Martin Rosenau mdjrosenau@hotmail.de --- I had a similar problem with a program that uses the MIDI port for data transfer with an electric piano.
It turned out that the program does not only check the the name but also the "wVid" and "wPid" fields of the MIDI port.
Having a look at the latest (as of 2021-01-03) version of "winealsa.drv/midi.c", I found out that only dummy values are returned by Wine. A comment is saying: "FIXME Product ID".
According to another comment I have found in the sources, it is not possible to return the same data Windows returns.
My suggestion is to allow overwriting the fields of the "MIDIINCAPS" and "MIDIOUTCAPS" structures in a registry key so it is possible to run vendor-specific programs.
Example registry keys:
[HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv\midiinports\EXAMPLE USB-MIDI MIDI 1] "dwSupport"=dword:00000001 "wChannelMask"=dword:0000ffff "wPid"=dword:0000ffff "wVoices"=dword:00000020
[HKEY_CURRENT_USER\Software\Wine\Drivers\winealsa.drv\midioutports\EXAMPLE USB-MIDI MIDI 1] "szPname"="Example Industries MIDI OUT" "wMid"=dword:00001234 "wPid"=dword:0000ABCD
The registry key name ("EXAMPLE USB-MIDI MIDI 1") would be the name that would normally be returned by Wine (the name returned by ALSA).
The values inside the key are the values that shall actually be returned in the MIDIINCAPS and MIDIOUTCAPS structures. For values not specified in the registry key, Wine should return the "default" (or the correct) values.