[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