pub fn devices() -> Result<Vec<Device>, Error>
Every input the host could record from.
The crate never chooses: a caller that names nothing gets the system default, and one that names a device gets that device or an error.