10 Apr
2009
10 Apr
'09
12:34 a.m.
On machine powerbook5,3 the built-in microphone is attached to the right channel of the sound chip. In the alsa oss emulation in linux-2.6.23.9 (alsa-*-1.0.12) the plugin layer copies the left input channel to a one-channel buffer when calling ioctl SNDCTL_DSP_CHANNELS with one channel. So no mic to mono on the powerbook5,3.
In the kernel source: linux-2.6.23.9/sound/core/oss/pcm_plugin.c:
The function snd_pcm_plug_read_transfer copies from the two channel hardware input buffer to the one channel user space buffer. The left source channel appears to be selected for copy in function snd_pcm_plug_format_plugins. One approach is to query line/mic input there for powerbook5,3 and select right channel source for copy. Any ideas?