On Tue, 11 May 2010, pl bossart wrote:
Here's a proposal for an alsa-lib modification to allow applications to disable interrupts (if the hardware can do so).
Please, use tabs for block indention for alsa-lib.
I used the flag field in hw_params, this looked like a good candidate to convey this information needed by the driver. I don't really like adding two new routines, but I don't think there's any other way. Still 2 points to be worked out:
- I couldn't figure out how to make these two new symbols known to
PulseAudio. Somehow there's a missing symbol that prevents PA modules from loading, not sure where it needs to be declare
Are you sure that you're using new libraries? 'ldd' and 'nm' tools will help you to determine what's wrong with symbols.
- I thought I could make use of the same flag on the driver side, but
the code in pcm_native.c makes a peculiar use of hw_params->flag. It looks like this field is used as an internal variable.
for (k = 0; k < constrs->rules_num; k++) { struct snd_pcm_hw_rule *r = &constrs->rules[k]; unsigned int d; int doit = 0; if (r->cond && !(r->cond & params->flags)) continue;
Ignore this. I don't know about any place where r->cond is used (!= 0) in the current ALSA driver, so eating one more bit from params->flags is OK. Just put the kernel asound.h in sync with library asound.h.
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc.