6 个版本
0.1.4 | 2022 年 1 月 15 日 |
---|---|
0.0.3 | 2021 年 1 月 13 日 |
543 在 音频 中
每月 32 次下载
用于 minidsp-daemon
665KB
17K SLoC
此包提供了访问和配置 MiniDSP 设备的高级 API。要开始,首先实例化正确的传输。如果设备通过 USB 本地连接,请使用 transport::hid::HidTransport
。如果使用 WI-DG
或连接到运行 server
组件的此程序实例,请参阅 transport::net::StreamTransport
。
use anyhow::Result;
use futures::StreamExt;
use minidsp::{
transport::{hid, Multiplexer},
Builder, Channel, Gain, MiniDSP,
};
#[tokio::main]
async fn main() -> Result<()> {
// Get a list of local devices
let mut builder = Builder::new();
builder.with_default_usb().unwrap();
let mut devices: Vec<_> = builder
// Probe each candidate device for its hardware id and serial number
.probe()
// Filter the list to keep the working devices
.filter_map(|x| async move { x.ok() })
.collect()
.await;
// Use the first device for further commands
let dsp = devices
.first()
.expect("no devices found")
.to_minidsp()
.expect("unable to open device");
let status = dsp.get_master_status().await?;
println!("Master volume: {:.1}", status.volume.unwrap().0);
// Activate a different configuration
dsp.set_config(2).await?;
// Set the input gain for both input channels
for i in 0..2 {
dsp.input(i)?.set_gain(Gain(-10.)).await?;
}
// Mute the last output channel
dsp.output(3)?.set_mute(true).await?;
Ok(())
}
依赖关系
~14–26MB
~383K SLoC