From e986e45d7e0d00d7f536c53bcc3a54320ff874a1 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 22 Feb 2026 08:08:28 +0000 Subject: [PATCH] refactor(audio): remove A113 probe and fallback path --- .../client-rust/src/services/audio/record.rs | 41 ++----------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/packages/client-rust/src/services/audio/record.rs b/packages/client-rust/src/services/audio/record.rs index 32db314..3313869 100644 --- a/packages/client-rust/src/services/audio/record.rs +++ b/packages/client-rust/src/services/audio/record.rs @@ -76,22 +76,9 @@ impl AudioRecorder { } let requested_config = config.unwrap_or_else(|| (*AUDIO_CONFIG).clone()); - let mut fix_enabled = should_enable_a113_fix(&requested_config).await; - let mut capture_config = capture_config_for_transform(&requested_config, fix_enabled); - - let mut arecord_thread = match spawn_arecord(&capture_config) { - Ok(child) => child, - Err(err) => { - // Keep backward compatibility if S32 capture isn't supported. - if fix_enabled { - fix_enabled = false; - capture_config = requested_config.clone(); - spawn_arecord(&capture_config)? - } else { - return Err(err); - } - } - }; + let fix_enabled = is_default_noop_recording(&requested_config); + let capture_config = capture_config_for_transform(&requested_config, fix_enabled); + let mut arecord_thread = spawn_arecord(&capture_config)?; let mut stdout = arecord_thread.stdout.take().unwrap(); let read_thread = tokio::spawn(async move { @@ -179,28 +166,6 @@ fn convert_a113_s32_to_s16(chunk: &[u8]) -> Vec { out } -async fn should_enable_a113_fix(config: &AudioConfig) -> bool { - if !is_default_noop_recording(config) { - return false; - } - detect_a113_platform().await -} - -async fn detect_a113_platform() -> bool { - let out = match Command::new("sh") - .arg("-c") - .arg("cat /proc/device-tree/compatible 2>/dev/null; cat /proc/cpuinfo 2>/dev/null") - .output() - .await - { - Ok(out) => out, - Err(_) => return false, - }; - - let probe = String::from_utf8_lossy(&out.stdout).to_lowercase(); - probe.contains("a113") || (probe.contains("amlogic") && probe.contains("meson")) -} - fn spawn_arecord(config: &AudioConfig) -> Result { let child = Command::new("arecord") .args([