Reagrding audio device flow, we can find some document for AMSS such as 80-VH828-1.
However, there is few code flow document for MSM7227 Android regarding device handling. Here shows device code flow in Android part.
Brief flow fordevice is "Application --> Libaudio --> qdsp5 --> QDSP or AMSS(ARM9)"
There are four parts for device handling.
1) Audio routing : do_routing / Android
2) Audio Tuning : AudioFilter.csv / Android
3) Voice Tuning : voccal.c / AMSS
4) ADIE setting : msm_aud.h / AMSS
Android source is starting from 'do_routing' in AudioHardware.cpp
There are two paths in audio routing function. One is for ADSP and the other is for AMSS.
* ADSP path
1) msm72xx_enable_audpp() : open device 'msm_pcm_ctl' to handle AFE
sending filter parameters through ioctl().
2) audpp_ioctl in /qdsp5/audio_out.c : msms_adsp_write() is sending audio filter parameters.
ex) MBADRC setting is called by audpp_dsp_set_mbadrc().
* AMSS path
1) doAudioRouteOrMute() : open device 'msm_snd' to handle AFE
do_route_audio_rpc() is sending routing parameter through ioctl for RPC.
2) snd_ioctl in qdsp5/snd.c : msms_rpc_call is called to send the paramters to AMSS
ex) SND DEVICE
volume table, ADIE configuration is defined in AMSS with SND_DEVICE id from Android.
Hi, I'm a noob tryin to understand your post.
ReplyDeleteI have few questions regarding audio routing may be you might have some idea.
When we play a file on device player /dev/msm_pcm_out then audio is routed to dsp decoder-> earpiece/loudspkr...
And when a GSM call is received, the call audio path is earpiece/loudspkr.
now the question, is it possible to cross connect audio player path to audio call path.. i;e merging two signals on the line instead of playing audio locally on IO.
TIA
br