[][src]Crate minidsp

This crate provides a high level API for accessing and configuring a MiniDSP device. To get started, start by instantiating the right transport. If the device is locally connected via USB, use transport::hid::HidTransport. If using the WI-DG or connecting to an instance of this program running the server component, see transport::net::NetTransport.

use minidsp::{MiniDSP, device::DEVICE_2X4HD, transport, Channel, Gain};
use anyhow::Result;
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<()> {
    let hid_api = transport::hid::initialize_api()?;
    // Find a locally connected minidsp using usb hid, with the default vendor and product id.
    let transport =  Arc::new(transport::hid::HidTransport::with_product_id(&hid_api, 0x2752, 0x0011)?);

    // Instantiate a 2x4HD handler for this device.
    let dsp = MiniDSP::new(transport, &DEVICE_2X4HD);
     
    let status = dsp.get_master_status().await?;
    println!("Master volume: {:.1}", status.volume.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(())
}

Re-exports

pub use source::Source;
pub use crate::commands::Gain;
pub use biquad::Biquad;

Modules

biquad

Basic biquad definition

commands

Commands sent to the device and their responses

config

Utilities for dealing with xml configuration files

device

Static device definitions

discovery

Enables discovery and advertisement of tcp servers. The packet format is compatible with the official apps.

packet

Functions for framing and unframing packets, and computing their checksums

rew

Room Eq Wizard utilities Provides a way to read exported biquad filter files

server

TCP server compatible with the official mobile and desktop application

source

Utilities to get a mapping from the source name to the source id Most of this logic was translated from the cordova app

transport

Transport base traits for talking to devices

utils

Structs

BiquadFilter

Helper object for controlling an on-device biquad filter

Compressor
Crossover
DeviceInfo

Hardware id and dsp version

Fir
Input

Input channel control

MiniDSP

High-level MiniDSP Control API

Output

Output channel control

Traits

Channel

Type Definitions

Result