audio policy: fix volume upon A2DP connection

setForceUse() should not force new device selection on outputs
if the selected device is 0. If a device 0 (no device) selection
is forced on a duplicated output, this causes volumes to be reset to
their default on outputs the duplicated output is connected to.

Also force reapply volumes when a new output is created. It is safer and more
explicit than relying on the fact that the selected volume is different
from default volume and thus is actually sent to audioflinger.

Bug 6658021.

Change-Id: I0a14d5229847e001b0d44f60d41c241efdb9946a
hardware_legacy: allow alternative vibrator implementations

The native vibrator code in libhardware_legacy assumes the vibrator
is always controlled by inputting timers into sysfs (at
/sys/class/timed_output/vibrator/enable). This isn't necessarily true,
there's an upcoming device which has the vibrator controlled by ioctl()
calls.

This patch lets the device configuration specify an alternative
vibrator implementation throught the variable BOARD_HAS_VIBRATOR_IMPLEMENTATION

That variable should point to a sourcefile that implements the vibrator
"int sendit(timeout_ms)" function, like this:

BOARD_HAS_VIBRATOR_IMPLEMENTATION := ../../device/vendor/model/vibrator.c

Change-Id: I78d60480f87ef00a0bab096d7f42e47501def936
power: add dvfs stub

Change-Id: I2fb7a126ca34eb8265d1709e4c51c274459625a2
wifi: Choose correct nvram file on Samsung hardware

 * Samsung's US devices have at least three different Wi-Fi variations.
 * The kernel driver writes out the variant in /data/.cid.info
 * macloader will prime this file
 * Read the file and choose the correct nvram_net.txt

Change-Id: I0e6aec7b622b4b90d849e63928e0352d0d730d8a
Add support for ICS audio blobs

Change-Id: If0cde8860a5cb1fa63a40787bfe001cf18e9be6d
audio_legacy: Convert channels to old enum

Change-Id: Ica7dda26d7c416e2ac87d220b622bccee88ca74a
ifdef usage of legacy audio enum conversion

Without this, devices compiling from source using this HAL layer
as a static whole library will break as they already use the new enum.

Change-Id: I710dbc8b013edd5e59a04a0956c69b49da35b5ba
libaudiohw_legacy: Remove ICS_AUDIO_BLOB def. Should be defined in
device, not here. Fixes build and audio, tested on heroc.

Change-Id: Ibe046fae1fa39a0eb7d1091403fe57cadd7a5b0d
wifi: add suport for WIFI_EXT_MODULE

Some wifi modules have dependencies on others (for SDIO, usually).
Use WIFI_EXT_MODULE_PATH to specify such dependencies

Change-Id: Ie8e746c1e69712be78d420d8e8ae8b015564a03d
wifi.c: allow devices to specify driver delay if needed

This appears to be needed on the Samsung exynos4 tablets in order to enable wifi within a reasonable amount of time.

Reference: http://review.android.git.linaro.org/#/c/1875

Change-Id: I4316ac03447870c04765427d202d9d35937c65f1
audio policy: To enable FM add FM device and volume api

Change-Id: Iaa17aad348675e8077b45d751b930b7ce3878782
audio policy: Added AMR and EVRC/QCELP formats for tunnel mode recording

Change-Id: I302638ed3bfe25194fa5a3d40a25c4428bdcc524

audio policy: Added EVRC and QCELP for 7x27A HAL compilation

Added EVRC and QCELP for 7x27A HAL compilation

Change-Id: Id7bad9cf995409559abbf08806dafdbca2916bfb
Merge "wifi.c: allow devices to specify driver delay if needed" into jellybean
libaudiohw_legacy: Add second #ifdef to set channels when using legacy
audio and not using ics audio blobs.

Change-Id: Icb17006765bf30b69229571cd181f7160d301a87
Merge "libaudiohw_legacy: Add second #ifdef to set channels when using legacy audio and not using ics audio blobs." into jellybean
audio: Support for more QCOM audio features

Add support for wifi display

-Define DEVICE_IN_PROXY and DEVICE_OUT_PROXY
-Add PROXY as supported device

Change-Id: I0c1f3e964b3cbbb453db269e783d7d4ce8acd243

libhardware_legacy: Add support for DirectTrack

- Add support for DirectOutput in libhardware_legacy
- Add new APIs to AudioStreamOut base class
- Add audio output flags to openOutputStream

Change-Id: I67462d83c6bbd4dca91c55afb26ef2767c3ece8c

libhardware_legacy: Fix crash during device switch

-Close output was being called on direct output during device
 switch resulting in a crash. Avoid the call to fix this crash.

Change-Id: I80fc099b4084d768305270bd2accb89f58f132fb

libhardware_legacy: VOIP bringup and support for vocoders

- Add Support for VOIP and vocoders
- Add stringToEnum functions for LPA, TUNNEL and VOIP

Change-Id: I124638f2c4f2fd77200913424efe33714b741e8d
(cherry picked from commit c099578af83fa2a830c94c56c2bc81f94d1ff4f1)
(cherry picked from commit e5726b8be10e589c90d237ccfeb2bb5e8109afa3)

libhardware_legacy: handle direct outputs during device switch

- Direct outputs like LPA, Tunnel and VoIP are opened during device
  switch. This results in a crash while opening the driver.
- This issue is fixed by preventing the opening of direct output
  during device switch.
- Added additional LOG to debug policy config issues

(cherry picked from commit 7b93a7b3579c5a4143ff757d0b555d7744cfd9f2)

Change-Id: If72e57107e15547b1754c9c1f71f51e02598176f
audio: Add missing enum

Change-Id: I385588df136f0986e64824643b7a11c9130a6a46
audio: JB upgrade for the MPQ 8064

Include the Broadcast stream interfaces.

Change-Id: Ibcd9ed8bb7325c973bcb7eeb50c162c12680b68c
Merge github.com:SlimRoms/hardware_libhardware_legacy into jb

Conflicts:
	audio/AudioPolicyManagerBase.cpp
	include/hardware_legacy/AudioHardwareInterface.h
	include/hardware_legacy/AudioSystemLegacy.h