
KTD-S0057-I Page 114 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
while (elem)
{
elem_name = snd_mixer_selem_get_name (elem);
if (! strcasecmp (elem_name, playb_name))
{
dev->elem = elem;
return EXIT_SUCCESS;
}
elem = snd_mixer_elem_next (elem);
}
fprintf (stderr, "Cannot find mixer element\n");
return EXIT_FAILURE;
}
int get_playb_vol (mixer_dev *dev, playb_vol *vol)
{
long val;
if (snd_mixer_selem_get_playback_dB (dev->elem, SND_MIXER_SCHN_FRONT_LEFT, &val) < 0)
{
fprintf (stderr, "Cannot get playback volume\n");
return EXIT_FAILURE;
}
vol->left = val / 100L;
if (snd_mixer_selem_get_playback_dB (dev->elem, SND_MIXER_SCHN_FRONT_RIGHT, &val) < 0)
{
fprintf (stderr, "Cannot get playback volume\n");
return EXIT_FAILURE;
}
vol->right = val / 100L;
return EXIT_SUCCESS;
}
int set_playb_vol (mixer_dev *dev, playb_vol *vol)
{
if (snd_mixer_selem_set_playback_dB (dev->elem, SND_MIXER_SCHN_FRONT_LEFT, vol->left * 100L, 0) < 0)
{
fprintf (stderr, "Cannot set playback volume\n");
return EXIT_FAILURE;
}
if (snd_mixer_selem_set_playback_dB (dev->elem, SND_MIXER_SCHN_FRONT_RIGHT,
vol->right * 100L, 0) < 0)
{
fprintf (stderr, "Cannot set playback volume\n");
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
Comentarios a estos manuales