Linux_ALSA
小狼@http://blog.csdn.net/xiaolangyangyang
Control宏定义:
SOC_SINGLE_VALUE
SOC_SINGLE_VALUE_EXT
SOC_SINGLE
SOC_SINGLE_TLV
SOC_DOUBLE
SOC_DOUBLE_R
SOC_DOUBLE_TLV
SOC_DOUBLE_R_TLV
SOC_DOUBLE_S8_TLV
SOC_ENUM_DOUBLE
SOC_ENUM_SINGLE
SOC_ENUM_SINGLE_EXT
SOC_VALUE_ENUM_DOUBLE
SOC_VALUE_ENUM_SINGLE
SOC_ENUM
SOC_VALUE_ENUM
SOC_SINGLE_EXT
SOC_DOUBLE_EXT
SOC_SINGLE_EXT_TLV
SOC_DOUBLE_EXT_TLV
SOC_DOUBLE_R_EXT_TLV
SOC_SINGLE_BOOL_EXT
SOC_ENUM_EXT
SOC_DOUBLE_R_SX_TLV
SOC_ENUM_DOUBLE_DECL
SOC_ENUM_SINGLE_DECL
SOC_ENUM_SINGLE_EXT_DECL
SOC_VALUE_ENUM_DOUBLE_DECL
SOC_VALUE_ENUM_SINGLE_DECL
DAPM宏定义:
SND_SOC_DAPM_VMID
SND_SOC_DAPM_INPUT
SND_SOC_DAPM_OUTPUT
SND_SOC_DAPM_MIC
SND_SOC_DAPM_HP
SND_SOC_DAPM_SPK
SND_SOC_DAPM_LINE
SND_SOC_DAPM_PGA
SND_SOC_DAPM_OUT_DRV
SND_SOC_DAPM_MIXER
SND_SOC_DAPM_MIXER_NAMED_CTL
SND_SOC_DAPM_MICBIAS
SND_SOC_DAPM_SWITCH
SND_SOC_DAPM_MUX
SND_SOC_DAPM_VIRT_MUX
SND_SOC_DAPM_VALUE_MUX
SOC_PGA_ARRAY
SOC_MIXER_ARRAY
SOC_MIXER_NAMED_CTL_ARRAY
SND_SOC_DAPM_PGA_E
SND_SOC_DAPM_OUT_DRV_E
SND_SOC_DAPM_MIXER_E
SND_SOC_DAPM_MIXER_NAMED_CTL_E
SND_SOC_DAPM_MICBIAS_E
SND_SOC_DAPM_SWITCH_E
SND_SOC_DAPM_MUX_E
SND_SOC_DAPM_VIRT_MUX_E
SND_SOC_DAPM_PGA_S
SND_SOC_DAPM_SUPPLY_S
SOC_PGA_E_ARRAY
SOC_MIXER_E_ARRAY
SOC_MIXER_NAMED_CTL_E_ARRAY
SND_SOC_DAPM_PRE
SND_SOC_DAPM_POST
SND_SOC_DAPM_AIF_IN
SND_SOC_DAPM_AIF_IN_E
SND_SOC_DAPM_AIF_OUT
SND_SOC_DAPM_AIF_OUT_E
SND_SOC_DAPM_DAC
SND_SOC_DAPM_DAC_E
SND_SOC_DAPM_ADC
SND_SOC_DAPM_ADC_E
SND_SOC_DAPM_REG
SND_SOC_DAPM_SUPPLY
SOC_DAPM_SINGLE
SOC_DAPM_SINGLE_TLV
SOC_DAPM_ENUM
SOC_DAPM_ENUM_VIRT
SOC_DAPM_VALUE_ENUM
SOC_DAPM_PIN_SWITCH
static const struct snd_kcontrol_new wmxx_mix1_controls[] = {
SOC_DAPM_SINGLE("SW1", WMXX_REG_SW, 1, 1, 0),
SOC_DAPM_SINGLE("SW2", WMXX_REG_SW, 2, 0, 0),
SOC_DAPM_SINGLE("SW3", WMXX_REG_SW, 3, 0, 0),
SOC_DAPM_SINGLE("SW4", WMXX_REG_SW, 4, 0, 0)
};
static const struct snd_kcontrol_new wmxx_mix2_controls[] = {
SOC_DAPM_SINGLE("SW5", WMXX_REG_SW, 5, 1, 0),
SOC_DAPM_SINGLE("SW6", WMXX_REG_SW, 6, 0, 0),
SOC_DAPM_SINGLE("SW7", WMXX_REG_SW, 7, 0, 0),
SOC_DAPM_SINGLE("SW8", WMXX_REG_SW, 8, 0, 0)
};
static const struct snd_soc_dapm_widget wm8900_dapm_widgets[] = {
SND_SOC_DAPM_MIXER("MIX1", WMXX_REG_MIX, 1, 0, wmxx_mix1_controls, ARRAY_SIZE(wmxx_mix1_controls)),
SND_SOC_DAPM_MIXER("MIX2", WMXX_REG_MIX, 2, 0, wmxx_mix2_controls, ARRAY_SIZE(wmxx_mix2_controls))
};
static const struct snd_soc_dapm_route audio_map[] = {
{"MIX1", "SW2", "ADC"},
{"MIX2", "SW6", "MIX1"},
};
Linux/Android alsa codec音频路由dapm的配置详解
DAPM之二:audio paths与dapm kcontrol
ALSA声卡16_编写ALSA声卡应用程序_学习笔记
8.声卡驱动06-自己实现alsa驱动-虚拟声卡-widget
ALSA驱动asoc框架之machine(一)
ALSA驱动asoc框架之machine(二)
ALSA驱动asoc框架之Platform
ALSA驱动asoc框架之Codec
[Audio]ALSA物理链路篇(上)
[Audio]ALSA物理链路篇(下)
|