[PATCH 0/2] winealsa.drv: cooperate with other sequencer clients

Jacek Konieczny jajcus at jajcus.net
Sun Feb 9 12:36:44 CST 2020


winealsa.drv uses ALSA sequencer interface to access MIDI ports. It is generally the preferred API for that in Linux, as it allows multiple applications access MIDI hardware at the same time and to route messages between software MIDI ports. The connections between the applications and hardware can be controlled within the app or by external tools.

Unfortunately wine uses the API in a way that won't allow other aplications to alter its MIDI connections. It disallows external changes to the connections and does not use the configured connection (subscriptions) to send outgoing messages (instead, it addresses the target device directly).

That has been already confusing, as e.g. https://bugs.winehq.org/show_bug.cgi?id=43725 shows.

Enabling other apps to alter wine MIDI connection has many use cases, like:
- fixing Windows application that fail to select proper MIDI device
- reverse-engineering Windows application controlling external MIDI hardware (recording SYSEX messages)
- adding Linux application in the MIDI chain for processing MIDI streams before they hit the target device

Jacek Konieczny (2):
  winealsa.drv: allow external MIDI port connection changes
  winealsa.drv: send MIDI events to port subscribers

 dlls/winealsa.drv/midi.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

-- 
2.17.1




More information about the wine-devel mailing list