package audio // SampleRate is the fixed capture rate (mono 16-bit PCM). Exported so consumers // like the CW decoder can configure their DSP to match. const SampleRate = sampleRate // StreamCapture captures from deviceID and calls onSamples with mono 16-bit PCM // frames (as int16) until stop closes. A thin wrapper over the internal capture // loop for live consumers (the CW decoder) that want samples, not raw bytes. func StreamCapture(deviceID string, stop <-chan struct{}, onSamples func([]int16)) error { return captureStream(deviceID, stop, func(chunk []byte) { if len(chunk) == 0 { return } onSamples(bytesToInt16(chunk)) }) }