start player set mute
This commit is contained in:
parent
afd9bb96f5
commit
26d1df1466
@ -71,11 +71,10 @@ s32 asla_volum_init(struct aic_audio_render *render)
|
||||
elem = snd_mixer_find_selem(handle, sid);
|
||||
if (!elem){
|
||||
loge("Can't find volume elem\n");
|
||||
return -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
snd_mixer_selem_get_playback_volume(elem,0,&vol);
|
||||
logd("vol:[%ld]\n",vol);
|
||||
alsa_render->vol = vol;
|
||||
alsa_render->alsa_mixer_handle = handle;
|
||||
alsa_render->alsa_mixer_elem = elem;
|
||||
@ -337,19 +336,23 @@ s32 alsa_audio_render_get_volume(struct aic_audio_render *render)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* 如果是最大值或异常值,使用默认值 9% */
|
||||
long vol = alsa_render->vol;
|
||||
if(vol <= 0 || vol >= max){
|
||||
vol = max * 9 / 100;
|
||||
alsa_render->vol = vol;
|
||||
}
|
||||
logd("vol:[%ld,%ld]\n",min,max);
|
||||
return (alsa_render->vol*100)/(max-min); //[min,max] ---> [0,100]
|
||||
return (vol*100)/(max-min); //[min,max] ---> [0,100]
|
||||
}
|
||||
|
||||
s32 alsa_audio_render_set_volume(struct aic_audio_render *render,s32 vol)
|
||||
{
|
||||
long min, max;
|
||||
struct aic_alsa_audio_render *alsa_render = (struct aic_alsa_audio_render*)render;
|
||||
logd("alsa_audio_render_set_volume:%d\n",vol);
|
||||
if(alsa_render->alsa_mixer_handle && alsa_render->alsa_mixer_elem){
|
||||
snd_mixer_selem_get_playback_volume_range(alsa_render->alsa_mixer_elem, &min, &max);
|
||||
vol = vol*(max-min)/100; //[0,100] ---> [min,max]
|
||||
logd("vol:[%ld,%ld:%d]\n",min,max,vol);
|
||||
snd_mixer_selem_set_playback_volume_all(alsa_render->alsa_mixer_elem, vol);
|
||||
alsa_render->vol = vol;
|
||||
}else{
|
||||
|
||||
@ -234,8 +234,7 @@ static void aic_codec_start_playback(struct aic_codec *codec)
|
||||
{
|
||||
regmap_update_bits(codec->regmap, FADE_CTRL0_REG,
|
||||
FADE_CTRL0_STEP_MASK, FADE_CTRL0_STEP(0x80));
|
||||
regmap_update_bits(codec->regmap, FADE_CTRL1_REG,
|
||||
FADE_CTRL1_TARGET_VOL_MASK, 0x7FFF);
|
||||
/* 播放开始时不改变音量,保持用户设置 */
|
||||
/* Enable AUDOUT DRQ */
|
||||
regmap_update_bits(codec->regmap, FIFO_INT_EN_REG,
|
||||
FIFO_AUDOUT_DRQ_EN, FIFO_AUDOUT_DRQ_EN);
|
||||
@ -248,6 +247,7 @@ static void aic_codec_stop_playback(struct aic_codec *codec)
|
||||
|
||||
regmap_update_bits(codec->regmap, FADE_CTRL0_REG,
|
||||
FADE_CTRL0_STEP_MASK, FADE_CTRL0_STEP(0x3FFF));
|
||||
/* 驱动保持静音 */
|
||||
regmap_update_bits(codec->regmap, FADE_CTRL1_REG,
|
||||
FADE_CTRL1_TARGET_VOL_MASK, 0);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user