1. 程式人生 > >ALSA音效卡12_從零編寫之新增音量控制_學習筆記

ALSA音效卡12_從零編寫之新增音量控制_學習筆記

/*
 * 獲得當前音量值
 */

int uda1341_get_vol(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);


    ucontrol->value.integer.value[1] = \  //這裡 \  表示ucontrol->value.integer.value[0] 等於ucontrol->value.integer.value[1] ,因為是雙聲道
ucontrol->value.integer.value[0] = 63 - snd_soc_read(codec, UDA1341_DATA00);//讀暫存器DAT00的值,因為驅動程式的值和應用程式的值大小是相反的,uda1341不支援暫存器的讀操作,要想得到一個暫存器的值,是去讀某個cache(這個cache儲存的是設定暫存器的值)

return 0;
}

(4) 設定當前音量值