From 02fbdbffc695d49507526870aa1ef751cfd8faf8 Mon Sep 17 00:00:00 2001 From: Seto Date: Fri, 20 Feb 2026 17:47:18 +0100 Subject: [PATCH] Improve device naming and filter unsupported configs --- src/host/aaudio/mod.rs | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/host/aaudio/mod.rs b/src/host/aaudio/mod.rs index c2afe3b21..8122c2d08 100644 --- a/src/host/aaudio/mod.rs +++ b/src/host/aaudio/mod.rs @@ -405,8 +405,13 @@ impl DeviceTrait for Device { match &self.0 { None => Ok(DeviceDescriptionBuilder::new("Default Device".to_string()).build()), Some(info) => { - let mut builder = DeviceDescriptionBuilder::new(info.product_name.clone()) - .device_type(info.device_type.into()) + let device_type: DeviceType = info.device_type.into(); + let name = match device_type { + DeviceType::Unknown => info.product_name.clone(), + _ => format!("{} ({})", info.product_name, device_type), + }; + let mut builder = DeviceDescriptionBuilder::new(name) + .device_type(device_type) .interface_type(info.device_type.into()) .direction(info.direction); @@ -432,7 +437,12 @@ impl DeviceTrait for Device { &self, ) -> Result { let configs = if let Some(info) = &self.0 { - device_supported_configs(info) + // Output-only devices do not support input + if matches!(info.direction, DeviceDirection::Output) { + Vec::new().into_iter() + } else { + device_supported_configs(info) + } } else { default_supported_configs() }; @@ -443,7 +453,12 @@ impl DeviceTrait for Device { &self, ) -> Result { let configs = if let Some(info) = &self.0 { - device_supported_configs(info) + // Input-only devices do not support output + if matches!(info.direction, DeviceDirection::Input) { + Vec::new().into_iter() + } else { + device_supported_configs(info) + } } else { default_supported_configs() };