# Android ALSA configuration file for the mfld_cdk audio. # # Mixer Devices # ctl.AndroidPlayback { type hw card medfieldaudio } ctl.AndroidPlayback_HDMI { type hw card IntelHDMI device 0 } ctl.AndroidPlayback_Widi-Loopback { type hw card Loopback device 0 } ctl.AndroidRecord { type hw card medfieldaudio } ctl.voice { type voice } # # Playback Devices # pcm.AndroidPlayback { type plug slave.pcm "speaker" } pcm.AndroidPlayback_Speaker_ringtone { type plug slave.pcm "speaker" } pcm.AndroidPlayback_Speaker_normal { type plug slave.pcm "speaker" } pcm.speaker { type hooks slave.pcm { type hw card medfieldaudio device 1 } hooks.0 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.1 { type ctl_elems hook_args [ {name "Mode Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Headset Playback Route" value 1} ] } } # # Android out stream should be Earpiece. # Excution: alsa_amixer cset numid=1 1 # pcm.AndroidPlayback_Earpiece_normal { type plug slave.pcm "earpiece" } pcm.earpiece { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 0} ] } hooks.1 { type ctl_elems hook_args [ {name "Mode Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.3 { type ctl_elems hook_args [ {name "Headset Playback Route" value 1} ] } } pcm.AndroidPlayback_Headset_ringtone { type plug slave.pcm "headset" } pcm.AndroidPlayback_Headset_normal { type plug slave.pcm "headset" } pcm.headset { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Mode Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.3 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } } pcm.AndroidPlayback_Headphone_ringtone { type plug slave.pcm "headphone" } pcm.AndroidPlayback_Headphone_normal { type plug slave.pcm "headphone" } pcm.headphone { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Mode Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.3 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } } # # HDMI routing # pcm.AndroidPlayback_HDMI { type linear slave { pcm HDMI format S24_LE } } pcm.AndroidPlayback_HDMI_normal { type linear slave { pcm HDMI format S24_LE } } pcm.AndroidPlayback_Speaker_HDMI_ringtone { type plug slave.pcm "speaker" } pcm.AndroidPlayback_Speaker_HDMI_normal { type plug slave.pcm "HDMI_plus_speaker" route_policy duplicate } pcm.HDMI_plus_speaker { type multi slaves.a.pcm "AndroidPlayback_HDMI_normal" slaves.a.channels 2 slaves.b.pcm "speaker" slaves.b.channels 2 bindings.0.slave a bindings.0.channel 0 bindings.1.slave a bindings.1.channel 1 bindings.2.slave b bindings.2.channel 0 bindings.3.slave b bindings.3.channel 1 } pcm.HDMI { type hw card IntelHDMI device 0 } # # WIDI routing # pcm.AndroidPlayback_Widi-Loopback{ type hw card Loopback device 0 subdevice 0 } pcm.AndroidPlayback_Widi-Loopback_normal{ type hw card Loopback device 0 subdevice 0 } # # Speaker and Headset dual routing for ringtone # pcm.AndroidPlayback_Speaker_Headphone_normal { type plug slave.pcm "dualroute" } pcm.AndroidPlayback_Speaker_Headset_normal { type plug slave.pcm "dualroute" } pcm.AndroidPlayback_Speaker_Headphone_ringtone { type plug slave.pcm "dualroute" } pcm.AndroidPlayback_Speaker_Headset_ringtone { type plug slave.pcm "dualroute" } pcm.dualroute { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} {name "Mode Playback Route" value 0} {name "Speaker Mux Playback Route" value [1 1]} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } } # # Capture device # pcm.AndroidCapture { type null } pcm.AndroidCapture_BuiltinMic_normal { type plug slave.pcm builtinmic } pcm.builtinmic { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.2 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 0} ] } hooks.3 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.4 { type ctl_elems hook_args [ {name "Txpath3 Capture Route" value 3} ] } hooks.5 { type ctl_elems hook_args [ {name "Txpath4 Capture Route" value 5} ] } } # # Adroid out stream should be Headset. # Excution: alsa_amixer cset numid=1 0 # pcm.AndroidCapture_Headset_normal { type plug slave.pcm captureheadset } pcm.captureheadset { type hooks slave.pcm { type hw card medfieldaudio device 0 } hooks.0 { type ctl_elems hook_args [ {name "Mic1Mode Capture Route" value 0} ] } hooks.1 { type ctl_elems hook_args [ {name "Mic_InputL Capture Route" value 0} ] } hooks.2{ type ctl_elems hook_args[ {name "Mic_InputR Capture Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 6} ] } hooks.4 { type ctl_elems hook_args [ {name "Txpath3 Capture Route" value 3} ] } hooks.5 { type ctl_elems hook_args [ {name "Txpath4 Capture Route" value 5} ] } hooks.6 { type ctl_elems hook_args [ {name "Mic1 Capture Volume" value 1} ] } } # # Bluetooth SCO # pcm.AndroidPlayback_Bluetooth { type null } pcm.AndroidCapture_BluetoothScoHeadset { type null } pcm.AndroidPlayback_Bluetooth_normal { type plug slave.pcm "playbackBluetoothSco" } pcm.AndroidCapture_BluetoothScoHeadset_normal { type plug slave.pcm "captureBluetoothSco" } pcm.playbackBluetoothSco { type hooks slave.pcm { type hw card IntelALSASSP device 0 } } pcm.captureBluetoothSco { type hooks slave.pcm { type hw card IntelALSASSP device 0 } } # # CSV Call # pcm.AndroidPlayback_Speaker_incall { type plug slave.pcm "voiceIn_Speaker" } pcm.AndroidPlayback_Earpiece_incall { type plug slave.pcm "voiceIn_Earpiece" } pcm.AndroidPlayback_Headset_incall { type plug slave.pcm "voiceIn_Headset" } pcm.AndroidPlayback_Headphone_incall { type plug slave.pcm "voiceIn_Headphone" } pcm.AndroidPlayback_Bluetooth_incall { type plug slave.pcm "voiceIn_BT" } pcm.AndroidCapture_VoiceCall_incall { type plug slave.pcm "voiceOut" } pcm.AndroidCapture_BluetoothScoHeadset_incall { type plug slave.pcm "voiceOut" } pcm.AndroidCapture_BuiltinMic_incall { type null } pcm.AndroidCapture_Headset_incall { type null } pcm.voiceOut { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } } pcm.voiceIn_Speaker { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice Speaker" value 1} ] } } pcm.voiceIn_Headset { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice Headset" value 1} ] } } pcm.voiceIn_Headphone { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice Headphone" value 1} ] } } pcm.voiceIn_Earpiece { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice Earpiece" value 1} ] } } pcm.voiceIn_BT { type hooks slave.pcm { type voice card IntelALSAIFX device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice BT" value 1} ] } } # # CSV Call Codec settings # pcm.VoicePlayback_Earpiece_incall { type plug slave.pcm "voiceIn_Earpiece_incall" } pcm.VoicePlayback_Speaker_incall { type plug slave.pcm "voiceIn_Speaker_incall" } pcm.VoicePlayback_Headset_incall { type plug slave.pcm "voiceIn_Headset_incall" } pcm.VoicePlayback_Headphone_incall { type plug slave.pcm "voiceIn_Headphone_incall" } pcm.VoiceCapture_incall { type plug slave.pcm "voiceOut_incall" } pcm.voiceOut_incall { type hooks slave.pcm { type hw card medfieldaudio device 2 } } pcm.voiceIn_Earpiece_incall { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 0} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 1} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 1} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 0} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 0} ] } } pcm.voiceIn_Speaker_incall { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 1} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [1 1]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 0} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 4} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 0} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 0} ] } } pcm.voiceIn_Headset_incall { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "Mic1Mode Capture Route" value 0} ] } hooks.5 { type ctl_elems hook_args [ {name "Mic_InputL Capture Route" value 0} ] } hooks.6 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 6} ] } hooks.8 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.9 { type ctl_elems hook_args [ {name "Mic1 Capture Volume" value 1} ] } hooks.10 { type ctl_elems hook_args [ {name "PCM1 Mode" value 0} ] } } pcm.voiceIn_Headphone_incall { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 1} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 0} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 0} ] } } # # VoIP Call # pcm.AndroidPlayback_Speaker_incommunication { type plug slave.pcm "voipIn_Speaker" } pcm.AndroidPlayback_Earpiece_incommunication { type plug slave.pcm "voipIn_Earpiece" } pcm.AndroidPlayback_Headset_incommunication { type plug slave.pcm "voipIn_Headset" } pcm.AndroidPlayback_Headphone_incommunication { type plug slave.pcm "voipIn_Headphone" } pcm.AndroidPlayback_Bluetooth_incommunication { type plug slave.pcm voipIn_BT slave.channels 1 # copy 0 <- 0 route_policy copy # Average 0 <- 0*0.5 + 1*0.5 # route_policy average } pcm.AndroidCapture_VoiceCall_incommunication { type plug slave.pcm "voipOut_Codec" } pcm.AndroidCapture_BuiltinMic_incommunication { type plug slave.pcm "voipOut_Codec" } pcm.AndroidCapture_Headset_incommunication { type plug slave.pcm "voipOut_Codec" } pcm.AndroidCapture_BluetoothScoHeadset_incommunication { type plug slave.pcm voipOut_BT_hw slave.channels 1 route_policy duplicate } pcm.voipOut_Codec { type hooks slave.pcm { type voice card IntelALSASSP device 2 } } pcm.voipOut_BT { type hooks slave.pcm { type voice card IntelALSASSP device 0 } } pcm.voipOut_BT_hw { type hw card IntelALSASSP device 0 } pcm.voipIn_Speaker { type hooks slave.pcm { type voice card IntelALSASSP device 2 } hooks.0 { type ctl_voice hook_args [ {name "Voice Speaker" value 1} ] } } pcm.voipIn_Headset { type hooks slave.pcm { type voice card IntelALSASSP device 2 } hooks.0 { type ctl_voice hook_args [ {name "Voice Headset" value 1} ] } } pcm.voipIn_Headphone { type hooks slave.pcm { type voice card IntelALSASSP device 2 } hooks.0 { type ctl_voice hook_args [ {name "Voice Headphone" value 1} ] } } pcm.voipIn_Earpiece { type hooks slave.pcm { type voice card IntelALSASSP device 2 } hooks.0 { type ctl_voice hook_args [ {name "Voice Earpiece" value 1} ] } } pcm.voipIn_BT { type hooks slave.pcm { type voice card IntelALSASSP device 0 } hooks.0 { type ctl_voice hook_args [ {name "Voice BT" value 1} ] } } # # VoIP Call Codec settings # pcm.VoicePlayback_Earpiece_incommunication { type plug slave.pcm "voiceIn_Earpiece_incommunication" } pcm.VoicePlayback_Speaker_incommunication { type plug slave.pcm "voiceIn_Speaker_incommunication" } pcm.VoicePlayback_Headset_incommunication { type plug slave.pcm "voiceIn_Headset_incommunication" } pcm.VoicePlayback_Headphone_incommunication { type plug slave.pcm "voiceIn_Headphone_incommunication" } pcm.VoiceCapture_incommunication { type plug slave.pcm "voiceOut_incommunication" } pcm.voiceOut_incommunication { type hooks slave.pcm { type hw card medfieldaudio device 2 } } pcm.voiceIn_Earpiece_incommunication { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 0} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 1} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 0} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 1} ] } } pcm.voiceIn_Speaker_incommunication { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 1} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [1 1]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 0} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 4} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 0} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 1} ] } } pcm.voiceIn_Headset_incommunication { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "Mic1Mode Capture Route" value 0} ] } hooks.5 { type ctl_elems hook_args [ {name "Mic_InputL Capture Route" value 0} ] } hooks.6 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 6} ] } hooks.8 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.9 { type ctl_elems hook_args [ {name "Mic1 Capture Volume" value 1} ] } hooks.10 { type ctl_elems hook_args [ {name "PCM1 Mode" value 1} ] } } pcm.voiceIn_Headphone_incommunication { type hooks slave.pcm { type hw card medfieldaudio device 2 } hooks.0 { type ctl_elems hook_args [ {name "Playback Switch" value 1} ] } hooks.1 { type ctl_elems hook_args [ {name "Headset Playback Route" value 0} ] } hooks.2 { type ctl_elems hook_args [ {name "Mode Playback Route" value 1} ] } hooks.3 { type ctl_elems hook_args [ {name "Speaker Mux Playback Route" value [0 0]} ] } hooks.4 { type ctl_elems hook_args [ {name "DMIC12 Capture Route" value 1} ] } hooks.5 { type ctl_elems hook_args [ {name "DMIC56 Capture Route" value 1} ] } hooks.6 { type ctl_elems hook_args [ {name "Txpath1 Capture Route" value 0} ] } hooks.7 { type ctl_elems hook_args [ {name "Txpath2 Capture Route" value 4} ] } hooks.8 { type ctl_elems hook_args [ {name "PCM1 Mode" value 1} ] } } # # WIDI routing # pcm.loopback_src{ type hw card Loopback device 1 subdevice 0 }