On Fri, 2006-06-09 at 10:17 -0700, Bill Unruh wrote: > Or ALL major VoIP programmers are stuck in the past and have not > bothered to learn alsa. That is not an unkown thing. >
I suspect many of them use KDE which I believe still defaults to using artsd in OSS mode, so they don't see the need to fix it. Gene does have a point - there is a big problem in ALSA that prevents apps from supporting in correctly, specifically the lack of a device enumeration API for anything other than hw devices. For example: http://blog.openwengo.org/index.php?/archives/57-ALSA-testers,-start-your-engine!.html#comments "with only wengo running i can choose between "Nvidia nforce2 (hw:0,0)" and "Nvidia nforce2 - IEC958 (hw:0,2)" with the first being standard and working. when amarok is running, i can only choose the second one as output and ringing device (and as standard the tab is blank)." ALSA's device enumeration only lists hw devices which leads to an incorrect perception that apps must do something special to "support dmix" when all they need to do is use the default device. But there's no API to list the available PCM devices and no good documentation on the ALSA device naming convention. (Of course you would think they would take the time to look at the aplay source or spend 5 minutes googling or ask on the mailing list before blithely limiting their device selection to hw devices which will block the soundcard) Even qjackctl, one of the apps with the best ALSA support out there, only enumerates hw devices. If you want to use a "dmix" or "default" device or anything else you have to type in the device name. which is insane. For example here is aplay's "PCM list" code: static void pcm_list(void) { snd_config_t *conf; snd_output_t *out; int err = snd_config_update(); if (err < 0) { error("snd_config_update: %s", snd_strerror(err)); return; } err = snd_output_stdio_attach(&out, stderr, 0); assert(err >= 0); err = snd_config_search(snd_config, "pcm", &conf); if (err < 0) return; fprintf(stderr, "PCM list:\n"); snd_config_save(conf, out); snd_output_close(out); } It just dumps the config and greps for "pcm"! I don't see how any developer is expected to make sense of this. Lee _______________________________________________ Alsa-user mailing list Alsa-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-user