style: apply cargo fmt across the crate (A20)
The repo never enforced rustfmt, so formatting had drifted broadly. This is a single mechanical `cargo fmt` pass over the whole crate (no behavioral change; lib suite green, 493 passed). Going forward fmt should be enforced (planned CI fmt --check step). Part of the 0.6.1 hygiene pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+31
-6
@@ -16,11 +16,20 @@ pub fn enumerate_audio_devices() -> Vec<AudioDevice> {
|
||||
/// Emits the in-progress node as an `AudioDevice` if it's a complete Audio/*
|
||||
/// node, then resets the accumulators for the next block. Non-audio or
|
||||
/// incomplete blocks are dropped (but still reset).
|
||||
fn push_device(name: &mut String, desc: &mut String, class: &mut String, out: &mut Vec<AudioDevice>) {
|
||||
fn push_device(
|
||||
name: &mut String,
|
||||
desc: &mut String,
|
||||
class: &mut String,
|
||||
out: &mut Vec<AudioDevice>,
|
||||
) {
|
||||
if !name.is_empty() && class.starts_with("Audio/") {
|
||||
out.push(AudioDevice {
|
||||
name: name.clone(),
|
||||
description: if desc.is_empty() { name.clone() } else { desc.clone() },
|
||||
description: if desc.is_empty() {
|
||||
name.clone()
|
||||
} else {
|
||||
desc.clone()
|
||||
},
|
||||
is_input: class == "Audio/Source",
|
||||
});
|
||||
}
|
||||
@@ -44,7 +53,12 @@ fn parse_pw_nodes(text: &str) -> Vec<AudioDevice> {
|
||||
for line in text.lines() {
|
||||
let line = line.trim();
|
||||
if line.starts_with("id ") {
|
||||
push_device(&mut current_name, &mut current_desc, &mut current_class, &mut devices);
|
||||
push_device(
|
||||
&mut current_name,
|
||||
&mut current_desc,
|
||||
&mut current_class,
|
||||
&mut devices,
|
||||
);
|
||||
} else if let Some(val) = line.strip_prefix("node.name = \"") {
|
||||
current_name = val.trim_end_matches('"').to_string();
|
||||
} else if let Some(val) = line.strip_prefix("node.description = \"") {
|
||||
@@ -53,7 +67,12 @@ fn parse_pw_nodes(text: &str) -> Vec<AudioDevice> {
|
||||
current_class = val.trim_end_matches('"').to_string();
|
||||
}
|
||||
}
|
||||
push_device(&mut current_name, &mut current_desc, &mut current_class, &mut devices);
|
||||
push_device(
|
||||
&mut current_name,
|
||||
&mut current_desc,
|
||||
&mut current_class,
|
||||
&mut devices,
|
||||
);
|
||||
|
||||
devices.sort_by(|a, b| a.description.cmp(&b.description));
|
||||
devices
|
||||
@@ -108,8 +127,14 @@ mod tests {
|
||||
fn source_is_input_sink_is_output() {
|
||||
let devices = parse_pw_nodes(SAMPLE_NODES);
|
||||
// Find devices by name or description to verify is_input
|
||||
let mic = devices.iter().find(|d| d.name == "alsa_input.builtin").unwrap();
|
||||
let speakers = devices.iter().find(|d| d.name == "alsa_output.builtin").unwrap();
|
||||
let mic = devices
|
||||
.iter()
|
||||
.find(|d| d.name == "alsa_input.builtin")
|
||||
.unwrap();
|
||||
let speakers = devices
|
||||
.iter()
|
||||
.find(|d| d.name == "alsa_output.builtin")
|
||||
.unwrap();
|
||||
let bare = devices.iter().find(|d| d.name == "bare.sink").unwrap();
|
||||
|
||||
assert!(mic.is_input);
|
||||
|
||||
Reference in New Issue
Block a user