From 77a3ce827c1b7d9ecbf23ef61e3b96da2d40ea67 Mon Sep 17 00:00:00 2001 From: Sintel Date: Fri, 10 Apr 2026 14:39:21 +0200 Subject: [PATCH 1/3] Prefer "friendly name" in device description --- src/host/wasapi/device.rs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/host/wasapi/device.rs b/src/host/wasapi/device.rs index 93ce562b7..9399e2d3e 100644 --- a/src/host/wasapi/device.rs +++ b/src/host/wasapi/device.rs @@ -371,10 +371,10 @@ impl Device { &PKEY_AUDIOENDPOINT_JACKSUBTYPE as *const _ as *const _, ); - // Prefer DeviceDesc for name, fall back to FriendlyName - let name = device_desc + // Prefer FriendlyName for name (e.g., "Speakers (XYZ Audio Adapter)"), fall back to DeviceDesc + let name = friendly_name .clone() - .or(friendly_name.clone()) + .or(device_desc.clone()) .ok_or_else(|| DeviceNameError::BackendSpecific { err: BackendSpecificError { description: "failed to retrieve device name".to_string(), @@ -416,13 +416,6 @@ impl Device { builder = builder.driver(iface_name); } - // Add FriendlyName to extended if different from the name we used - if let Some(fname) = friendly_name { - if device_desc.is_some() && Some(&fname) != device_desc.as_ref() { - builder = builder.add_extended_line(fname); - } - } - Ok(builder.build()) } } From cf5c664311af07dcad72416f53835110848b2639 Mon Sep 17 00:00:00 2001 From: Sintel Date: Mon, 13 Apr 2026 19:18:26 +0200 Subject: [PATCH 2/3] Remove reduntant `clone()` --- src/host/wasapi/device.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/host/wasapi/device.rs b/src/host/wasapi/device.rs index 9399e2d3e..c51c02570 100644 --- a/src/host/wasapi/device.rs +++ b/src/host/wasapi/device.rs @@ -372,14 +372,14 @@ impl Device { ); // Prefer FriendlyName for name (e.g., "Speakers (XYZ Audio Adapter)"), fall back to DeviceDesc - let name = friendly_name - .clone() - .or(device_desc.clone()) - .ok_or_else(|| DeviceNameError::BackendSpecific { - err: BackendSpecificError { - description: "failed to retrieve device name".to_string(), - }, - })?; + let name = + friendly_name + .or(device_desc) + .ok_or_else(|| DeviceNameError::BackendSpecific { + err: BackendSpecificError { + description: "failed to retrieve device name".to_string(), + }, + })?; // Get direction from data flow (eCapture = Input, eRender = Output) let direction = self.data_flow().into(); From 4c0b8b859b3d3bbf1299944da5b67ed9c10e0083 Mon Sep 17 00:00:00 2001 From: Roderick van Domburg Date: Mon, 13 Apr 2026 20:28:20 +0200 Subject: [PATCH 3/3] doc(wasapi): log device name preference --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e6824f7b..ea03acc26 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Linux/BSD**: Default host in order from first to last available now is: PipeWire, PulseAudio, ALSA. - **WASAPI**: Timestamps now include hardware pipeline latency. +- **WASAPI**: `FriendlyName` is now preferred as device name over `DeviceDesc`. - **WebAudio**: Bump MSRV to 1.85. - **WebAudio**: Timestamps now include base and output latency. - **WebAudio**: Initial buffer scheduling offset now scales with buffer duration.