Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 118

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;
}