带有 ALSA 的 MIDI:如何检测端口上的订阅

MIDI with ALSA: how to detect subscription on a port

如果有东西连接到我的虚拟 MIDI 端口,我想 see/detect。

所以我创建了一个端口:

 snd_seq_create_simple_port(handle, "my port",
        SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE,
        SND_SEQ_PORT_TYPE_MIDI_GENERIC);

现在,在我开始在该端口上制作 MIDI 事件之前,我想知道是否有人 connected/mapped 该端口(例如使用 aconnect 或 patchage 等)。

订阅 0:1 (SND_SEQ_CLIENT_SYSTEM:SND_SEQ_PORT_SYSTEM_ANNOUNCE) 以接收有关订阅的事件。有关示例,请参阅 aseqdump -p 0:1 的输出。

请注意,无需订阅即可将事件直接发送到端口。