3 个版本
0.1.3 | 2024年1月13日 |
---|---|
0.1.1 | 2024年1月1日 |
0.1.0 | 2024年1月1日 |
#191 在 音频
1,542 每月下载量
用于 tauri-plugin-midi
11KB
116 代码行
coremidi-hotplug-notification
这个crate是一个简单的助手,提供了一种接收设备更新通知的方式。它还允许midir等crate的用户在不重新启动程序的情况下刷新设备列表,通知是可选的。
先决条件
[target.'cfg(target_os = "macos")'.dependencies]
coremidi-hotplug-notification = "0.1.1"
用法
fn main() {
#[cfg(target_os = "macos")]
// Register for device update notifications
coremidi_hotplug_notification::receive_device_updates(|| {
println!("A MIDI device was connected or disconnected.");
// Insert your handling logic here
}).expect("Failed to register for MIDI device updates");
}
在实际应用中,您很可能想使用一个通道来接收更新。闭包不接受任何参数,只需从那里重新读取设备列表。
如果您不感兴趣通知,只想手动刷新,您可以传递一个空闭包( || ()
)。
注意事项
MacOS将在第一次调用创建coremidi客户端时设置发送通知的线程。因此,如果在调用之前使用任何MIDI功能,receive_device_updates
将失败。
此crate将启动一个专用线程以运行runloop,这是接收设备更新所必需的。如果您不打算运行专用线程,您可能希望直接使用coremidi crate并调用CFRunLoop::run_current
或run_in_mode
。
依赖项
~640KB
~13K SLoC