如何强制刷新 MacOS USB MIDI 设备名称缓存

如何强制刷新 MacOS USB MIDI 设备名称缓存

我正在使用 PIC32 开发 USB MIDI 设备,我需要更改设备的 USB 名称,而不更改“USB 设备描述符”中的供应商 ID (VID) 或产品 ID (PID)。

我使用 Macintosh 作为 USB 主机,驱动程序运行良好。但是,当我在“产品字符串描述符”中更改设备名称时,即使计算机重新启动后,Mac 也会记住以前的名称。我指的是 Mac Audio MIDI 设置应用程序中显示的名称。我尝试在 Audio MIDI 设置中使用重新扫描 MIDI 命令,但没有任何区别。

我如何强制 Mac 刷新其 USB MIDI 设备名称与 VID 和 PID 的缓存,以便显示我的新设备名称?

答案1

当音频 MIDI 设置启动但 USB MIDI 设备断开连接时,在 MIDI Studio 窗口中找到缓存的设备并将其删除。然后重新连接该设备。CoreMIDI 将重新读取配置描述符并在指定的描述符索引处检索字符串,以创建新的缓存设备。

在没有先删除缓存设备的情况下,无法强制 CoreMIDI 重新读取字符串,但如果您还提供自己的软件,则可以事后使用 kMIDIPropertyName 上的 MIDIObjectSetStringProperty 以编程方式重命名 MIDIDevice(Ref)或 MIDIEntity(Ref)。

相关内容