Add alsa_modem sink and handle stream policy on mfld, which implement audio mixing...
authorZhang,Vivian <vivian.zhang@intel.com>
Thu, 21 Mar 2013 05:50:05 +0000 (13:50 +0800)
committerGerrit Code Review <gerrit2@kim11>
Thu, 28 Mar 2013 08:03:58 +0000 (17:03 +0900)
Change-Id: Id512d0100ed431441267012e7ea204541aadaca3

packaging/asound.conf
packaging/system_mfld.pa

index 3807979..917afad 100644 (file)
@@ -1,27 +1,32 @@
-# Android ALSA configuration file for the mfld_cdk audio.
+# Mfld ALSA configuration file for the mfld_cdk audio.
 
 #
 # Mixer Devices
 #
 
-ctl.AndroidPlayback {
+ctl.!default {
        type hw
        card medfieldaudio
 }
 
-ctl.AndroidPlayback_HDMI {
+ctl.MfldPlayback {
+       type hw
+       card medfieldaudio
+}
+
+ctl.MfldPlayback_HDMI {
        type hw
        card IntelHDMI
        device 0
 }
 
-ctl.AndroidPlayback_Widi-Loopback {
+ctl.MfldPlayback_Widi-Loopback {
        type hw
        card Loopback
        device 0
 }
 
-ctl.AndroidRecord {
+ctl.MfldRecord {
        type hw
        card medfieldaudio
 }
@@ -34,17 +39,17 @@ ctl.voice {
 # Playback Devices
 #
 
-pcm.AndroidPlayback {
+pcm.MfldPlayback {
        type plug
        slave.pcm "speaker"
 }
 
-pcm.AndroidPlayback_Speaker_ringtone {
+pcm.MfldPlayback_Speaker_ringtone {
        type plug
        slave.pcm "speaker"
 }
 
-pcm.AndroidPlayback_Speaker_normal {
+pcm.MfldPlayback_Speaker_normal {
        type plug
        slave.pcm "speaker"
 }
@@ -77,10 +82,10 @@ pcm.speaker {
 }
 
 #
-# Android out stream should be Earpiece.
+# Mfld out stream should be Earpiece.
 # Excution: alsa_amixer cset numid=1 1
 #
-pcm.AndroidPlayback_Earpiece_normal {
+pcm.MfldPlayback_Earpiece_normal {
        type plug
        slave.pcm "earpiece"
 }
@@ -118,12 +123,12 @@ pcm.earpiece {
        }
 }
 
-pcm.AndroidPlayback_Headset_ringtone {
+pcm.MfldPlayback_Headset_ringtone {
        type plug
                slave.pcm "headset"
 }
 
-pcm.AndroidPlayback_Headset_normal {
+pcm.MfldPlayback_Headset_normal {
        type plug
                slave.pcm "headset"
 }
@@ -150,23 +155,17 @@ pcm.headset {
        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 {
+pcm.MfldPlayback_Headphone_ringtone {
        type plug
                slave.pcm "headphone"
 }
 
-pcm.AndroidPlayback_Headphone_normal {
+pcm.MfldPlayback_Headphone_normal {
        type plug
                slave.pcm "headphone"
 }
@@ -207,7 +206,7 @@ pcm.headphone {
 #
 # HDMI routing
 #
-pcm.AndroidPlayback_HDMI {
+pcm.MfldPlayback_HDMI {
        type linear
        slave {
                pcm HDMI
@@ -215,7 +214,7 @@ pcm.AndroidPlayback_HDMI {
        }
 }
 
-pcm.AndroidPlayback_HDMI_normal {
+pcm.MfldPlayback_HDMI_normal {
        type linear
        slave {
                pcm HDMI
@@ -223,12 +222,12 @@ pcm.AndroidPlayback_HDMI_normal {
        }
 }
 
-pcm.AndroidPlayback_Speaker_HDMI_ringtone {
+pcm.MfldPlayback_Speaker_HDMI_ringtone {
        type plug
        slave.pcm "speaker"
 }
 
-pcm.AndroidPlayback_Speaker_HDMI_normal {
+pcm.MfldPlayback_Speaker_HDMI_normal {
        type plug
        slave.pcm "HDMI_plus_speaker"
        route_policy duplicate
@@ -236,7 +235,7 @@ pcm.AndroidPlayback_Speaker_HDMI_normal {
 
 pcm.HDMI_plus_speaker {
        type multi
-       slaves.a.pcm "AndroidPlayback_HDMI_normal"
+       slaves.a.pcm "MfldPlayback_HDMI_normal"
        slaves.a.channels 2
        slaves.b.pcm "speaker"
        slaves.b.channels 2
@@ -259,13 +258,13 @@ pcm.HDMI {
 #
 # WIDI routing
 #
-pcm.AndroidPlayback_Widi-Loopback{
+pcm.MfldPlayback_Widi-Loopback{
        type hw
        card Loopback
        device 0
        subdevice 0
 }
-pcm.AndroidPlayback_Widi-Loopback_normal{
+pcm.MfldPlayback_Widi-Loopback_normal{
        type hw
        card Loopback
        device 0
@@ -276,22 +275,22 @@ pcm.AndroidPlayback_Widi-Loopback_normal{
 #
 # Speaker and Headset dual routing for ringtone
 #
-pcm.AndroidPlayback_Speaker_Headphone_normal {
+pcm.MfldPlayback_Speaker_Headphone_normal {
        type plug
        slave.pcm "dualroute"
 }
 
-pcm.AndroidPlayback_Speaker_Headset_normal {
+pcm.MfldPlayback_Speaker_Headset_normal {
        type plug
        slave.pcm "dualroute"
 }
 
-pcm.AndroidPlayback_Speaker_Headphone_ringtone {
+pcm.MfldPlayback_Speaker_Headphone_ringtone {
        type plug
        slave.pcm "dualroute"
 }
 
-pcm.AndroidPlayback_Speaker_Headset_ringtone {
+pcm.MfldPlayback_Speaker_Headset_ringtone {
        type plug
        slave.pcm "dualroute"
 }
@@ -322,11 +321,11 @@ pcm.dualroute {
 #
 # Capture device
 #
-pcm.AndroidCapture {
+pcm.MfldCapture {
        type null
 }
 
-pcm.AndroidCapture_BuiltinMic_normal {
+pcm.MfldCapture_BuiltinMic_normal {
        type plug
        slave.pcm builtinmic
 }
@@ -379,7 +378,7 @@ pcm.builtinmic {
 # Adroid out stream should be Headset.
 # Excution: alsa_amixer cset numid=1 0
 #
-pcm.AndroidCapture_Headset_normal {
+pcm.MfldCapture_Headset_normal {
        type plug
        slave.pcm captureheadset
 }
@@ -439,20 +438,20 @@ pcm.captureheadset {
 #
 # Bluetooth SCO
 #
-pcm.AndroidPlayback_Bluetooth {
+pcm.MfldPlayback_Bluetooth {
        type null
 }
 
-pcm.AndroidCapture_BluetoothScoHeadset {
+pcm.MfldCapture_BluetoothScoHeadset {
        type null
 }
 
-pcm.AndroidPlayback_Bluetooth_normal {
+pcm.MfldPlayback_Bluetooth_normal {
        type plug
        slave.pcm "playbackBluetoothSco"
 }
 
-pcm.AndroidCapture_BluetoothScoHeadset_normal {
+pcm.MfldCapture_BluetoothScoHeadset_normal {
        type plug
        slave.pcm "captureBluetoothSco"
 }
@@ -480,46 +479,46 @@ pcm.captureBluetoothSco {
 #
 # CSV Call
 #
-pcm.AndroidPlayback_Speaker_incall {
+pcm.MfldPlayback_Speaker_incall {
        type plug
        slave.pcm "voiceIn_Speaker"
 }
 
-pcm.AndroidPlayback_Earpiece_incall {
+pcm.MfldPlayback_Earpiece_incall {
        type plug
        slave.pcm "voiceIn_Earpiece"
 }
 
-pcm.AndroidPlayback_Headset_incall {
+pcm.MfldPlayback_Headset_incall {
        type plug
        slave.pcm "voiceIn_Headset"
 }
 
-pcm.AndroidPlayback_Headphone_incall {
+pcm.MfldPlayback_Headphone_incall {
        type plug
        slave.pcm "voiceIn_Headphone"
 }
 
-pcm.AndroidPlayback_Bluetooth_incall {
+pcm.MfldPlayback_Bluetooth_incall {
        type plug
        slave.pcm "voiceIn_BT"
 }
 
-pcm.AndroidCapture_VoiceCall_incall {
+pcm.MfldCapture_VoiceCall_incall {
        type plug
        slave.pcm "voiceOut"
 }
 
-pcm.AndroidCapture_BluetoothScoHeadset_incall {
+pcm.MfldCapture_BluetoothScoHeadset_incall {
        type plug
        slave.pcm "voiceOut"
 }
 
-pcm.AndroidCapture_BuiltinMic_incall {
+pcm.MfldCapture_BuiltinMic_incall {
        type null
 }
 
-pcm.AndroidCapture_Headset_incall {
+pcm.MfldCapture_Headset_incall {
        type null
 }
 
@@ -699,27 +698,27 @@ pcm.voiceIn_Headphone_incall {
 #
 # VoIP Call
 #
-pcm.AndroidPlayback_Speaker_incommunication {
+pcm.MfldPlayback_Speaker_incommunication {
        type plug
        slave.pcm "voipIn_Speaker"
 }
 
-pcm.AndroidPlayback_Earpiece_incommunication {
+pcm.MfldPlayback_Earpiece_incommunication {
        type plug
        slave.pcm "voipIn_Earpiece"
 }
 
-pcm.AndroidPlayback_Headset_incommunication {
+pcm.MfldPlayback_Headset_incommunication {
        type plug
        slave.pcm "voipIn_Headset"
 }
 
-pcm.AndroidPlayback_Headphone_incommunication {
+pcm.MfldPlayback_Headphone_incommunication {
        type plug
        slave.pcm "voipIn_Headphone"
 }
 
-pcm.AndroidPlayback_Bluetooth_incommunication {
+pcm.MfldPlayback_Bluetooth_incommunication {
        type plug
        slave.pcm voipIn_BT
        slave.channels 1
@@ -729,22 +728,22 @@ pcm.AndroidPlayback_Bluetooth_incommunication {
 #      route_policy average
 }
 
-pcm.AndroidCapture_VoiceCall_incommunication {
+pcm.MfldCapture_VoiceCall_incommunication {
        type plug
        slave.pcm "voipOut_Codec"
 }
 
-pcm.AndroidCapture_BuiltinMic_incommunication {
+pcm.MfldCapture_BuiltinMic_incommunication {
        type plug
        slave.pcm "voipOut_Codec"
 }
 
-pcm.AndroidCapture_Headset_incommunication {
+pcm.MfldCapture_Headset_incommunication {
        type plug
        slave.pcm "voipOut_Codec"
 }
 
-pcm.AndroidCapture_BluetoothScoHeadset_incommunication {
+pcm.MfldCapture_BluetoothScoHeadset_incommunication {
        type plug
        slave.pcm voipOut_BT_hw
        slave.channels 1
index 119adea..5ed3da2 100644 (file)
@@ -19,14 +19,23 @@ load-module module-bluetooth-discover
 
 load-module module-alsa-sink sink_name=alsa_output.0.analog-stereo device=speaker format=s24-32le channels=2 rate=48000
 load-module module-alsa-sink sink_name=alsa_headset device=headset format=s24-32le channels=2 rate=48000
+load-module module-alsa-sink sink_name=alsa_modem device=hw:2,0 channels=2 rate=48000 tsched=0
 load-module module-alsa-source source_name=source.builtinmic device=builtinmic format=s24-32le channels=2 rate=48000
 
 update-sink-proplist alsa_output.0.analog-stereo device.bus="builtin"
 update-sink-proplist alsa_headset device.bus="wired"
+update-sink-proplist alsa_modem device.bus="modem"
+update-sink-proplist alsa_modem device.api="alsa_modem"
 
 #Custom policy module to route between bt<=speaker
 load-module module-policy
 
+.ifexists module-stream-policy-mfld.so
+.nofail
+load-module module-stream-policy-mfld
+.fail
+.endif
+
 set-default-sink alsa_output.0.analog-stereo
 set-default-source source.builtinmic