On Wednesday 12 November 2003 13:03, Christian Esken wrote: > Hello, > > I have a problem with snd_mixer_selem_set_capture_switch_all() from > alsa-lib. The documentation states: > > /** > * \brief Set value of capture switch control for all channels of a mixer > simple element > * \param elem Mixer simple element handle > * \param value control value > * \return 0 on success otherwise a negative error code > */ > int snd_mixer_selem_set_capture_switch_all(snd_mixer_elem_t *elem, int > value) > > So I should receive either 0 or a negative value. But I receive a return > value of 1. Does anybody know what this means?!? Any help is appreciated > greatly.
I have investigated and found a possible bug in alsa-lib. The documentation of snd_mixer_selem_set_capture_switch_all() only mentions return codes 0 and <0. As I said 1 is returned in my case - I now found a place where this could happen in the alsa-lib source code. The code is from src/mixer/simple.c , revision .59. snd_mixer_selem_set_capture_switch_all() calls selem_write, which calls selem_read(). At the end of selem_read(), you find the following code snippet: if (memcmp(pvol, s->str[PLAY].vol, sizeof(pvol)) || psw != s->str[PLAY].sw || memcmp(cvol, s->str[CAPT].vol, sizeof(cvol)) || csw != s->str[CAPT].sw) return 1; This is where 1 is returned. But I do not understand the code. Can anybody explain to me. It looks a bit like I am passing "bad" parameters, but then I would expect to be returned an error code like EINVAL. Greetings, Chris ------------------------------------------------------- This SF. Net email is sponsored by: GoToMyPC GoToMyPC is the fast, easy and secure way to access your computer from any Web browser or wireless device. Click here to Try it Free! https://www.gotomypc.com/tr/OSDN/AW/Q4_2003/t/g22lp?Target=mm/g22lp.tmpl _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel