refactor(audio): remove flag-style gating from A113 conversion

This commit is contained in:
Claude Code
2026-02-22 08:15:39 +00:00
parent fbef7c495c
commit 0748bedceb
@@ -18,10 +18,6 @@ enum State {
const A113_CAPTURE_BITS_PER_SAMPLE: u16 = 32; const A113_CAPTURE_BITS_PER_SAMPLE: u16 = 32;
fn is_default_noop_recording(config: &AudioConfig) -> bool {
config.pcm == "noop" && config.channels == 1 && config.bits_per_sample == 16
}
pub struct AudioRecorder { pub struct AudioRecorder {
state: Arc<Mutex<State>>, state: Arc<Mutex<State>>,
arecord_thread: Arc<Mutex<Option<Child>>>, arecord_thread: Arc<Mutex<Option<Child>>>,
@@ -99,7 +95,7 @@ impl AudioRecorder {
let data_to_send = let data_to_send =
accumulated_data.drain(..target_size).collect::<Vec<u8>>(); accumulated_data.drain(..target_size).collect::<Vec<u8>>();
let data_to_send = let data_to_send =
transform_stream_chunk(data_to_send, &requested_config); transform_stream_chunk(data_to_send, &requested_config, &capture_config);
if !data_to_send.is_empty() { if !data_to_send.is_empty() {
let _ = on_stream(data_to_send).await; let _ = on_stream(data_to_send).await;
} }
@@ -122,7 +118,7 @@ impl AudioRecorder {
fn capture_config_for_recording(requested: &AudioConfig) -> AudioConfig { fn capture_config_for_recording(requested: &AudioConfig) -> AudioConfig {
let mut capture = requested.clone(); let mut capture = requested.clone();
if is_default_noop_recording(requested) { if requested.bits_per_sample == 16 {
capture.bits_per_sample = A113_CAPTURE_BITS_PER_SAMPLE; capture.bits_per_sample = A113_CAPTURE_BITS_PER_SAMPLE;
} }
capture capture
@@ -131,8 +127,9 @@ fn capture_config_for_recording(requested: &AudioConfig) -> AudioConfig {
fn transform_stream_chunk( fn transform_stream_chunk(
chunk: Vec<u8>, chunk: Vec<u8>,
requested: &AudioConfig, requested: &AudioConfig,
capture: &AudioConfig,
) -> Vec<u8> { ) -> Vec<u8> {
if !is_default_noop_recording(requested) { if requested.bits_per_sample != 16 || capture.bits_per_sample != A113_CAPTURE_BITS_PER_SAMPLE {
return chunk; return chunk;
} }
convert_a113_s32_to_s16(&chunk) convert_a113_s32_to_s16(&chunk)