[alsa-devel] Setting gain/volume of PCM capture or playback

erumusele Odigie erumusele at gmail.com
Tue Jun 9 09:55:07 CEST 2009


Thanks Fausto for the example, I now have sample code to play with.

I am actually interested in playing with the capture volume/gain, but I will
go ahead and experiment with that myself.

Sele




On Mon, Jun 8, 2009 at 6:59 AM, Fausto Carvalho Marques SIlva <
fausto at tse.gov.br> wrote:

> I think you could do that way :
>
> *****************************************************************
>   if (salsa_volume(hctl,"PCM Playback Volume",volume)) {
>       salsa_close(hctl);
>       return;
>   }
> *****************************************************************
>
> *****************************************************************
> static int salsa_volume(snd_hctl_t * hctl,char * device,int vol)
> {
>   int err;
>
>
>   snd_ctl_elem_id_t *id;
>   snd_ctl_elem_value_t *control;
>
>   snd_ctl_elem_id_alloca(&id);
>   snd_ctl_elem_id_set_name(id,device);
>   snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_MIXER);
>
>   snd_hctl_elem_t *elem = snd_hctl_find_elem(hctl, id);
>
>   snd_ctl_elem_value_alloca(&control);
>   snd_ctl_elem_value_set_id(control, id);
>
>   if (vol>= 0 && vol<=31) {
>       snd_ctl_elem_value_set_integer(control,1,vol);
>       snd_ctl_elem_value_set_integer(control,0,vol);
>   } else
>       return -1;
>
>   err = snd_hctl_elem_write(elem, control);
>
>   if (err < 0)
>       return -1;
>   return 0;
> }
> *****************************************************************
>
>
> Helped??
>
> erumusele Odigie wrote:
>
>> Hi,
>>
>> I am new to programming with ALSA, and I would like to find out how to
>> change the gain (capture or playback) for my PCM device in my C code.
>>
>> I am aware I am supposed to use the mixer API, possibly functions like:
>> snd_mixer_selem_set_playback_volume()
>>
>> but I don't know how this function can be connected to my PCM
>> structure/device.
>>
>> Please whoever answers this should kindly attach some sample code, or a
>> link
>> to sample code because I can't find any on line.
>>
>> Thanks a lot.
>>
>> Erumusele
>> _______________________________________________
>> Alsa-devel mailing list
>> Alsa-devel at alsa-project.org
>> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>>
>>
>>
>
>
> --
> Fausto Carvalho
> TSE/STI/CSELE/SEVIN
> 61 3316-3527
>
>


More information about the Alsa-devel mailing list