Audio: Add routing option between HDMI speakers and device speakers

Add option that routing  between HDMI audio output and device audio
output, when HDMI is connected.

Change-Id: I9bbe9b1cbee5b6659502dae386c086f37bef2120
audio: primary desc check for sonification

- Audio glitches on alarm expiry if alarm starts
  on screen lock/standby mode

- On alarm expiry alarm tone will start play on combo device
  &screen unlock tone try to play on headset which results
  multiple device switch, as a result audio glitches are audible

- Fix is to treat all non-music streams as sonification
  if sonfication strategy is used by primary desc which
  will avoid device switch

Change-Id: Ie280400d5f754a8d4bd8885b6836be5e120f8783
CRs-Fixed: 514467
Crs-Fixed: 626722
hal: start voip driver independent of voip output stream

- Voip driver requires voip output stream to be opened
to start itself. But it is possible that some applications
may use voip input and normal audio output. Code changes are
done to handle this scenario.
- It is possible that some applications may use different
sample rates for voip input and voip output streams. It is
handled now in such a way that, if the sample rate of the
secondly opening stream does not match with that of the
first one, the second stream will not be allowed to open
voice path for VoIP.

Change-Id: Id9d86181eeee2c4ea0aa49a723ca92c1961a559b
CRs-fixed: 601785
hal: HFP support for setting volume

-Add support for setting volume using setparameter.

Change-Id: Id614d719324ab6b280116fd952c3fa73844ce1b0
CRs-Fixed: 596437
hal: apply TTY mode change for all voice use cases

Update devices for Voice2, VoLTE and QCHAT sessions
based on the TTY mode. This change is needed to support
enabling/disabling and switching TTY mode during
voice call.

Change-Id: I4f1fde8ce6b20fad0d24e0cd963e2c3709ff25d5
CRs-fixed: 608183
hal: Add new CSD API to reduce in call device switch delay

New CSD api is added to reduce device switch delay during voice call.
This api is called before enabling the devices so that csd voice call
sequence on MDM can run in parallel with device enable configuration
on APQ.

Change-Id: I9239ff21e1c07370516d0ed668e1e94af12f9eb2
hal: Check hfp usecase to differenciate between nb and wb

 - Need to check if the hfp session is WB or not before
   setting the device to avoid rerouting.

CRs-Fixed: 605465
Change-Id: Ice6fd2776b89e5358004071b011ac304f35dbf58
hal: Do not apply CSD voice switch API on 8960

Introduced by I9239ff21e1c07370516d0ed668e1e94af12f9eb2, not relevant
here.

Change-Id: Icb63ad5dc17029bc79f81051458b47a9ddb00bf5
audio: Update call state from RIL during silent mode

 -In silent mode, after call is rejected from Far end, RIL
  sets call state to active to play the network message and
  sets the call_state to inactive later without informing
  the telephony framework.So, setMode() is not called from
  framework.
 -Currently,we are updating call state only if there is any
  active call or call state being set from RIL is "active".
  Fix is to update the call state when inactive state is
  received from RIL for the same VSID

CRs-Fixed: 631062

Change-Id: I937341c48fd4950aab2e9e689712b47976b3c28d
Remove current msm7x30 audio HAL

This HAL is outdated & contains legacy code
Remove it so we can import the newest HAL from jb_2.5.3 branch
Import msm7630 audio HAL from jb_2.5.3 branch

Squashed import of the following CAF commits:

a0947f8 audio/msm7630: Initial commit for MR1 Audio bringup.
67550d7 audio: compile only if TARGET_USES_QCOM_MM_AUDIO set to true
51e24b7 msm7630 : Propagate the flag value to status
4642b91 Remove audio_poliy.conf from msm7630
b982f5a audio/8655: Enabling LPA playback by adding AudioSessionOutLPA class
fef3c65 audio/msm8655: Fix for AAC recording failure.
eeae23f msm7630 : Send proper channleMask for getInputProfile()
fe2acf4 Update copyright to The Linux Foundation
4931e2c audio/msm7630: Add usb audio hal profile.
04bcc5f audio/msm7630: Fix for volume change during voice call
58de776 7x30 : Port heap mask change to ion
c0a97d0 audio/msm7630: Fix the issue of voice call when HDMI connected
223c325 audio/msm7630: Fix to enable TTY device
387befb audio/msm7630: Add latency support for LPA
701b6c6 audio/msm7630: Fix for routing camcorded encoded clip audio to wired headset
a20c757 audio/msm7630: Fix for back to back VOIP calls failure
8f6be8a audio/msm7630 : Stability issue with LPA play back.

Signed-off-by: Michael Bestas <mikeioannina@gmail.com>
legacy/msm7x30: Use CM standard qcom naming

* Also add msm7x30 to the build barrier
audio/msm7x30: Fix build in CM

* Build without qcom audio calibration
* Hack for prebuilt libraries we don't have access to
* Little cleanup of makefile
audio/msm7x30: Fix log tags and disable debug logging

Change-Id: I4712b09c86e3a067b0c847661fa43828be6eee23
audio/msm7x30: Stop the log spam during VOIP calls

Change-Id: Idfe211b1fef6f2aeee51ebe7f1b6ce3f4a0787be
audio/msm7x30: disable logcat spam

Change-Id: I82ebb39e62f49c24f236cc9eeadbc303f8dbd823
audio/msm7x30: Fix for Echo in Gtalk

- Echo is observed in Gtalk.
- Audio HAL informs that clients that it handle the Echo
  cancellation and with AHAL client turns off the EC.
- EC is not supported in this PL remove it from getparam
CRs-Fixed: 427161

Change-Id: I62eba7ed7566045f61c34a51c8ac36029b8596ea
audio/msm7x30: Use q5v2_msm_audio_mvs_frame struct

Otherwise a packet size of 640, which 7x30 modem doesn't support,
will be used. 7x30 expects a packet size of 320.

Was changed in AudioHardware::AudioStreamOutDirect::write, but
seems to have been forgotten here.

Related kernel change: http://bit.ly/M7ZqMN

Change-Id: Ie89da836cbe27ea6b6cd10ef5c830ecc7020a624
legacy/msm7x30: Use audio policy from legacy/alsa_sound

* Clone of the legacy/alsa_sound audio policy HAL
audio/msm7x30: Only use earpiece when specified.

There are a few cases where the audio gets routed to earpiece, while it should
be at the speaker mode. To fix this, always default to speaker mode and only use
earpiece when it is specified.

Change-Id: I9fe2e54b20e2aa8aeac4b75b191a51790612f468