mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-05 13:30:00 -05:00
implemented integer volume <-> dB volume conversion functions for simple mixer
This commit is contained in:
parent
82af1df465
commit
058dde8b7d
5 changed files with 139 additions and 2 deletions
|
|
@ -357,6 +357,35 @@ int snd_mixer_selem_has_playback_switch_joined(snd_mixer_elem_t *elem)
|
|||
return COND_CAPS(elem, SM_CAP_PSWITCH_JOIN);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return corresponding dB value to an integer playback volume for a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
* \param value value to be converted to dB range
|
||||
* \param dBvalue pointer to returned dB value
|
||||
* \return 0 on success otherwise a negative error code
|
||||
*/
|
||||
int snd_mixer_selem_ask_playback_vol_dB(snd_mixer_elem_t *elem, long value, long *dBvalue)
|
||||
{
|
||||
CHECK_BASIC(elem);
|
||||
CHECK_DIR(elem, SM_CAP_PVOLUME);
|
||||
return sm_selem_ops(elem)->ask_vol_dB(elem, SM_PLAY, value, dBvalue);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return corresponding integer playback volume for given dB value for a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
* \param value value to be converted to dB range
|
||||
* \param dir select direction (-1 = accurate or first bellow, 0 = accurate, 1 = accurate or first above)
|
||||
* \param dBvalue pointer to returned dB value
|
||||
* \return 0 on success otherwise a negative error code
|
||||
*/
|
||||
int snd_mixer_selem_ask_playback_dB_vol(snd_mixer_elem_t *elem, long dBvalue, int dir, long *value)
|
||||
{
|
||||
CHECK_BASIC(elem);
|
||||
CHECK_DIR(elem, SM_CAP_PVOLUME);
|
||||
return sm_selem_ops(elem)->ask_dB_vol(elem, SM_PLAY, dBvalue, value, dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return value of playback volume control of a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
|
|
@ -657,6 +686,35 @@ int snd_mixer_selem_get_capture_group(snd_mixer_elem_t *elem)
|
|||
return s->capture_group;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return corresponding dB value to an integer capture volume for a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
* \param value value to be converted to dB range
|
||||
* \param dBvalue pointer to returned dB value
|
||||
* \return 0 on success otherwise a negative error code
|
||||
*/
|
||||
int snd_mixer_selem_ask_capture_vol_dB(snd_mixer_elem_t *elem, long value, long *dBvalue)
|
||||
{
|
||||
CHECK_BASIC(elem);
|
||||
CHECK_DIR(elem, SM_CAP_CVOLUME);
|
||||
return sm_selem_ops(elem)->ask_vol_dB(elem, SM_CAPT, value, dBvalue);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return corresponding integer capture volume for given dB value for a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
* \param dBvalue dB value to be converted to integer range
|
||||
* \param value pointer to returned integer value
|
||||
* \param dir select direction (-1 = accurate or first bellow, 0 = accurate, 1 = accurate or first above)
|
||||
* \return 0 on success otherwise a negative error code
|
||||
*/
|
||||
int snd_mixer_selem_ask_capture_dB_vol(snd_mixer_elem_t *elem, long dBvalue, int dir, long *value)
|
||||
{
|
||||
CHECK_BASIC(elem);
|
||||
CHECK_DIR(elem, SM_CAP_CVOLUME);
|
||||
return sm_selem_ops(elem)->ask_dB_vol(elem, SM_CAPT, dBvalue, value, dir);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Return value of capture volume control of a mixer simple element
|
||||
* \param elem Mixer simple element handle
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue