start player set mute

This commit is contained in:
zzh 2026-06-03 12:37:01 +08:00
parent afd9bb96f5
commit 26d1df1466
2 changed files with 10 additions and 7 deletions

View File

@ -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{

View File

@ -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);