History log of /frameworks/av/services/audiopolicy/AudioPolicyManager.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436 29-Jan-2015 Eric Laurent <elaurent@google.com> audio policy: match attached device to declared devices

Make sure that when a new audio device is connected,
and a specific profile for this device is listed in
audio_policy.conf, this particular profile is used instead
of a default generic profile.

Bug: 19188567.
Change-Id: I5f576fcd697adc041b2cfbd2bac7a51bcc2143b9
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1db89b9c2692fd70eb1cc98b7db2f9beed81e66e 28-Jan-2015 Eric Laurent <elaurent@google.com> Audio policy: fix device gain initialization

Fix initilization of default gain configuration for
audio devices loaded from audio_policy.conf.

Initialization cannot be done in constructor as the possible
gain configurations are not loaded yet.

Bug: 19120566.
Change-Id: I78f057ecfa1a121365ac3d8f317912a6f1647627
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
e6b8b27088f461957b4cbc51adbc8b01c41e9de2 13-Jan-2015 Hochi Huang <hochi.huang@mediatek.com> [FM]There is no sound output from BT earphone while BT earphone is connected

Bug: 18847131

Review: https://partner-android-review.git.corp.google.com/#/c/193318

Signed-off-by: Hochi Huang <hochi.huang@mediatek.com>

Change-Id: I79703ba4ceb67ca3b95fbc71444dd3b116ba4131
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
3190e67d5c80c1e39e3be91784110af1180cd182 30-Dec-2014 keunyoung <keunyoung@google.com> close remote submix's output when device is not available.

- change output close logic to find the device from IOProfile rather than
AudioPatch as AudioPatch handle can be cleared before disconnect.
- Otherwise, remote submix can be stuck as output is never closed and does not
work any more as subsequent open fails as output is already taken.

bug: 18733215

Change-Id: Iddb481c91e81070e6be18996a4c8837dabd7ebdb
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
277c7b8c41436125742339d8c80bccf0f2b086d9 17-Dec-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "Fix permission check for audio recording" into lmp-mr1-dev
045e710f8ce7ce1679b9b5f0adbd3290c4cc6f54 10-Dec-2014 Hochi Huang <hochi.huang@mediatek.com> [FM] Fix notification routing when FM enable

https://partner-android-review.git.corp.google.com/#/c/188454/

Bug: 18727227

Change-Id: I74856ede5999cfc8a6932a99855d468cccd6f51c
Signed-off-by: Hochi Huang <hochi.huang@mediatek.com>
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
97bb33f58d742539f3382583d7978fca71ffa2d5 13-Dec-2014 Jean-Michel Trivi <jmtrivi@google.com> Fix permission check for audio recording

Define input types covering the different usecases for audio
recording, and check the corresponding permissions when
starting to record.
Move the permission check from audio flinger to audio policy,
as only the policy has the information to determine which
permission to enforce.
Fix missing permission when an application records audio
and the audio is injected by an external policy.

Bug 18736417

Change-Id: If7ec040502242c990ac8ea464db484339bdce573
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
c73ca6ef04136f28306784ad35f444538f081957 12-Dec-2014 Eric Laurent <elaurent@google.com> audio policy: fix remote mic capture

commit 275e8e9de introduced a regression for platforms
overriding AudioPolicyManager::getDeviceForInputSource() method.

Fixed by defining specific non virtual methods when overiding would
break remote submix implementation.

Bug: 18736417.

Change-Id: Id4d0a6c48da987e6fb24422f2d61c7ab0fbfc921
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
c722f30eef03e77054395ae122470cf8dba93937 10-Dec-2014 Eric Laurent <elaurent@google.com> audio policy: suppport for dynamic source

Completed support for dynamic sources:
- remote submix input device is dynamically connected/disconnected
when corresponding AudioTrack starts/stops.

Also do not create a duplicated output for mixes used by dynamic policies.

Bug: 16006090.
Change-Id: Ib5b5a2159fcac9d9f410a5a2f1c64d7ebad79f72
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1767df778e20c1395afc63b3a0479bd903e7b9f0 10-Dec-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: distinguish between mirroring and rerouting

In the screen mirroring case, the notification manager queries
the policy to see if media "is playing remotely": if yes, it
will not request audio focus before playing a notification.
This is the correct behavior for screen mirroring, but doesn't
work when audio is rerouted to an external policy.
This change consists in not reporting "remote" activity when
playing to a mix of an external policy by looking at the address
of the output on which playback is active for the given stream
type.

Bug 16009464

Change-Id: Iebbf5a8c738ab36c1cf2055e921c0a3472503125
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
275e8e9de2e11b4b344f5a201f1f0e51fda02d9c 01-Dec-2014 Eric Laurent <elaurent@google.com> audio policy: add support for custom mixes

Add support for custom mixes in AudioPolicyManager.

Two methods are added to register or unregister a list of custom mixes
with their attributes and format.

getOutputForAttr() and getInputForAttr() first look for a match in
registered mixes before defaulting to normal output/input selection

Remote submix device connection disconnection now takes address into
account to identify the correspnoding custom mix.

Bug: 16009464.

Change-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
18f2f90cff65c384a4e8292cc3296dafafb43d52 03-Dec-2014 Hochi Huang <hochi.huang@mediatek.com> [FM] Fix Buganizer ID: 18456930 - FM radio audio got routed to loudspeaker unexpectedly

https://partner-android-review.git.corp.google.com/#/c/187894/

Change-Id: I3f9175bbc302e382155e568e66b88400ec05ffa5
Signed-off-by: Hochi Huang <hochi.huang@mediatek.com>
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
caf7f48a0ef558689d39aafd187c1571ff4128b4 26-Nov-2014 Eric Laurent <elaurent@google.com> AudioRecord: use audio attributes instead of audio source.

Added AudioRecord constructor with audio attributes.
Replaced AudioPolicymanager::getInput() by getInputForAttr().

No new functionality for now.

Also:

- Fixed warnings in AudioPolicyManager
- Allocate audio session ID before calling getOutputForAttr() in
AudioTrack.

Bug: 16006090.
Change-Id: I15df21e4411db688e3096dd801cf579d76d81711
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
e83b55dc29ca16092ba02f36f55fa6e0e37fd78c 14-Nov-2014 Eric Laurent <elaurent@google.com> audio policy: new getOutputForAttr() prototype.

Update getOutputForAttr() prototype and group all logic
dealing with audio attributes to stream type conversion in
audio policy manager.

getOutputForAttr():
- specifies the audio session (for future use)
- returns a status code
- receives either stream type (for legacy) or audio attributes
- returns an updated streamtype

Remove logic dealing with legacy stream types to attributes conversion
from AudioTrack.

Use correct type for audio sessions in other APIs (startOutput() ...).

releaseOutput() specifies the audio session (for future use).

Bug: 18067208.

Change-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
223fd5c9738e9665e495904d37d4632414b68c1e 11-Nov-2014 Eric Laurent <elaurent@google.com> audio: new routing strategies and stream types

Added new routing strategies and stream type for internal use
by audio policy manager and audio flinger:
- One for accessibility to allow different routing than media
- One for re-routing (remote submix) in preparation of dynamic
policies
- Added stream type for "internal" audio flinger tracks used
for audio patches and duplication.

Bug: 18067208.
Change-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
d9cfeb447356cb6334379eaf5da1e49424eb5979 23-Sep-2014 Jean-Michel Trivi <jmtrivi@google.com> Support speaker routing for FLAG_BEACON

Add support for routing audio stream to the speaker when audio
attributes carry the FLAG_BEACON value:
- associate streams with FLAG_BEACON to the up-to-now unused
STREAM_TTS ("Transmitted Through Speaker").
The remapping happens in AudioTrack.
- AudioPolicyManager: define new strategy for handling the Beacon
behavior, that only goes to speaker. Define new volume curves
for STREAM_TTS that are not silence only for the speaker device
category. Keep ref count of other streams and never play Beacon
streams when anything else is playing: either don't start playback
if something else is playing, or unmute STREAM_TTS when it's
allowed to play and mute when it's done.
- Take into account muting latency when starting an output.

Bug 15415971

Change-Id: I26539c7ec1a486accd85bbeb1623e9c7d3a1192f
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
fa845267f7cb5aede69ff1f62db99e8478db170d 12-Oct-2014 Dave Burke <daveburke@google.com> am 9286354c: Merge "Revert "audio policy: add support for ro.audio.media_deep_buffer"" into lmp-dev

* commit '9286354c0a864ce2348cc7dfc6ca81e84a15f8e2':
Revert "audio policy: add support for ro.audio.media_deep_buffer"
f2ab2191387ce7902c730cc68314ea5fdc4a9237 11-Oct-2014 Vineeta Srivastava <vsrivastava@google.com> Revert "audio policy: add support for ro.audio.media_deep_buffer"

This reverts commit 95511add8ad4d440c67272503559f5042c4e6f1f.

Change-Id: I76a8b86790b06b08d8ca0f8d374e585f964ffba8
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
6337f6032e7bdbf0b4654fb07512a00bd33ef696 11-Oct-2014 Eric Laurent <elaurent@google.com> am ffd5cdbd: Merge "audio policy: add support for ro.audio.media_deep_buffer" into lmp-dev

* commit 'ffd5cdbd3e3faa203539e26adc755f860c8cac80':
audio policy: add support for ro.audio.media_deep_buffer
95511add8ad4d440c67272503559f5042c4e6f1f 11-Oct-2014 Eric Laurent <elaurent@google.com> audio policy: add support for ro.audio.media_deep_buffer

Bug: 17931716.
Change-Id: Ife170f20f5d02b71059fbd384bd29759fafee826
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
327cb70dcbf3a1f1679aeafaaa62d8532abea86d 21-Sep-2014 Hochi Huang <hochi.huang@mediatek.com> [AU] Update volume setting and Audio Device API 3.0

Signed-off-by: Hochi Huang <hochi.huang@mediatek.com>
Review: https://partner-android-review.git.corp.google.com/#/c/182522

Change-Id: Ida2dfedc6eaa3204354cdc182e0ee13a35472661
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
5dbe47139713292bf45bbf4f1a7af0835a5ff368 20-Sep-2014 Eric Laurent <elaurent@google.com> audio policy: add hw hotword flag for inputs

Audio input profiles can indicate flag AUDIO_INPUT_FLAG_HW_HOTWORD
meaning they allow capture from the same source as HW hotword
detection.

When a client requests capture with this flag, the policy will
try to find an input profile matching this request first and
fallback to a regular input if not found.

Bug: 17575019.
Change-Id: Ia463211597d7fa363527d776389f2257f0ced9a2
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
8838a3895c365d443ee22e169ccf45956780c081 09-Sep-2014 Eric Laurent <elaurent@google.com> audio policy: fix output stream selection

Make sure that all outputs considered by selectOutput()
when called from AudioPolicyManager::getOutputForDevice()
support the requested audio format.

Bug: 17340382.
Change-Id: I76520ce60e9a8fe4d2d23125d6143bb016522754
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
47f64f2ed14839a00b3b148d490dc0394282eb54 28-Aug-2014 Eric Laurent <elaurent@google.com> Merge "audio policy: remove audio patch when closing input or output" into lmp-dev
05b90f833337ab5f7b16509e5f1d339a04eb5bf6 28-Aug-2014 Eric Laurent <elaurent@google.com> audio policy: remove audio patch when closing input or output

Make sure that an audio patch having an output as source or input as sink
is removed when this input or output is closed.

Bug: 17303725.

Change-Id: I234d54a25ce0b579eeeafdcfda3a0594f048768c
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
961ec21a5878517ce6db27bad8da269637c45a44 26-Aug-2014 Marco Nelissen <marcone@google.com> Fix memory leak in getConnectionState

Turns out having an sp<> point at the containing object doesn't really
work so well.

Bug: 17210991
Change-Id: I4bcb0c38adffc574d661f0772583357868f6c5b4
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4 13-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "audiopolicy: add dump for audio patches" into lmp-dev
f17026dfef596cf1c8008fda20f1f2ad23a3df3a 10-Aug-2014 Jean-Michel Trivi <jmtrivi@google.com> Update audio ports with profile capabilities

When opening an output, import the profile capabilities associated
with the device into the AudioPort.

Bug 10549017

Change-Id: If102f5623457542d2c1407ada303c71e43d19a08
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
4d41695d45e2c7211899afa94b20e32120b2b7e0 10-Aug-2014 Eric Laurent <elaurent@google.com> audiopolicy: add dump for audio patches

Bug: 10549017.
Change-Id: I896c8e16c8cf7490bab75295903620a76236f571
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
c2730ba7c5e9559b7499ef5e0d7742deb18c5110 21-Jul-2014 Eric Laurent <elaurent@google.com> audio policy: add support for USB devices for voice call

Add possibility to use sink and source devices not on
the primary HW module for voice calls (e.g. USB headsets).

Bug: 15520724.

Change-Id: Ib27db4ba759b6d91ea1104dc2e35c87733517b30
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
ac29afacbb34b92f1948188e5353fce5a252ccb3 28-Jul-2014 Jon Eklund <jeklund@motorola.com> audio policy: support line output device

Change-Id: Iddf1b6486430270d871a45c75615e54339a818e9
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871 28-Jul-2014 Eric Laurent <elaurent@google.com> Add sound trigger control by audio policy

Audio policy:
- Added active capture indication to sound trigger service:
recognition stops if concurrent capture is not supported.
- Added generation of reserved I/O handle and session ID for
utterance capture.

Sound trigger service
- Added sound model update callback handling.
- Added service state callback
- Simplified callback shared memory allocation.

Bug: 12378680.

Change-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
8b685b9e56cc207d44b08d124148e7d752ef2241 30-Jul-2014 Andy Hung <hunga@google.com> Merge "Update multichannel audio policy handling" into lmp-dev
9a60538b9ee2b097770dcd378281b31f4218ae56 29-Jul-2014 Andy Hung <hunga@google.com> Update multichannel audio policy handling

Ensure AUDIO_FORMAT_PCM_FLOAT and AUDIO_FORMAT_PCM_32_BIT
have proper precedence.
Allow more mixer channels than 2.

Change-Id: I02af97dad6218b25cbada4d93077a213314c6725
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
4dc680607181e6a76f4e91a39366c4f5dfb7b03e 29-Jul-2014 Eric Laurent <elaurent@google.com> audio policy: pass session ID to capture activity methods

Indicate the audio session ID when calling getInput(),
startInput(), stopInput(), releaseInput().

Bug: 12378680.
Change-Id: I763793752f93e2f4e1445a5ab217c895af011038
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf 26-Jul-2014 Eric Laurent <elaurent@google.com> AudioFlinger: update openInput() and openOutput()

Add parameters to openInput() and openOutput(): device address,
input source.
Allow caller to specify a given I/O handle
Group parameters in a struct audio_config.

Bug: 12378680.
Change-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
cbd48023d0a0e3fd59955011538c0087a439f905 24-Jul-2014 Glenn Kasten <gkasten@google.com> audio policy: compatible sample rates and channel masks

Change-Id: I50d068a968aa6bd9e53e5b3111a1b09a6c2d219c
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
0fb47759256ecdaedbc34c880238bc9d102ef160 23-Jul-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: handle outputs for different addresses

Add the notion of device types that cause the device address
to be taken into account, i.e. multiple devices of the
same type but with a different address can be connected/
disconnected.
AUDIO_DEVICE_OUT_REMOTE_SUBMIX is such a device type.
When making those devices available / unavailable, look for
all outputs with a matching address.

Bug 16009464

Change-Id: I260f8248b7794c4932094e876afdf29fdea007a3
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
6a8ab05f0598f4ebdd5ef82e93cf32fde0598189 24-Jul-2014 Glenn Kasten <gkasten@google.com> audio policy: add audio_input_flags_t and mOpenRefCount

Change-Id: I5f9c7b5ebf03b9bc94efe70d3677edfabb99c194
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1e693b55d888b9d3e0a2ce770ae2b72b59c1a317 10-Jul-2014 Eric Laurent <elaurent@google.com> audio policy: add rules to select audio parameters

Added rules to select most appropriate sampling rate, format and
channel mask from an input or output profile.
Moved mFlags from IOProfile to its base class AudioPort.
Removed bogus mChannelMask member in DeviceDescriptor class.
Improveed dump of dynamic parameters in AudioPort.

Change-Id: Ic09d320386002a8bafee4a28db00b1001a386678
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
5bd3f38638acab633d181359cc9ec27b80f84d43 14-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager: return output for audio attributes

In AudioPolicyManager, support querying an output
or playback strategy for audio attributes,
instead of a stream type,
In AudioTrack creation, use the output returned
for the track's attributes.

Change-Id: I0fef05845ba676404775e2e338c10e6a96237268
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
7e45ef9db7446d33c941961c14555413641e444b 07-Jun-2014 Eric Laurent <elaurent@google.com> am 318cd78e: Merge "audio policy: added audio HAL version in audio_policy.conf" into lmp-preview-dev

* commit '318cd78e3b8503113919191b3711eb8be5d23d35':
audio policy: added audio HAL version in audio_policy.conf
eb108a4622825688b02d7afc981014d149913cd8 06-Jun-2014 Eric Laurent <elaurent@google.com> audio policy: added audio HAL version in audio_policy.conf

Each hardware module section in audio_policy.conf indicates
the audio HAL version it implements.

Also added a template audio_policy.conf file with examples
of device and gain descriptors added for audio HAL version3.0.

Bug: 14815883.
Change-Id: Id219d121f81f687363f6c18f2d1684b2448dcdf4
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
6f264ac08317a27958f2b0d3c35133b368dd9f3c 06-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> Merge "Audio policy: new media volume curve for speaker with DRC"
ccd8e4a9da4d0bcc2c715452c5a18fabb23f86ac 06-Jun-2014 Jean-Michel Trivi <jmtrivi@google.com> Audio policy: new media volume curve for speaker with DRC

For devices with DRC on speaker (using the flag "speaker_drc_enabled"
in audio_policy.conf), set the speaker media volume to use a
new curve with more aggressive attenuation in the upper range.

Bug 15318604

Change-Id: Ia5fb9fdd608fddad22fadfb1065d35574030bb52
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
a121f90f388343dc48793cbc7eb899aba42e7664 03-Jun-2014 Eric Laurent <elaurent@google.com> audio policy: new setAudioPortConfig implementation

Rewrite setAudioPortConfig() to take advantage of the new
AudioPortConfig class.

The configuration is now checked against AudioPort capabilities
and stored in the AudioPortConfig.

Fix a bug where the config mask was not set properly when calling
setAudioPortConfig at the PatchPanel interface.

Remove debug log in IAudioPolicyService.

Bug: 14815883.
Change-Id: I7eb7683a96e049581c13f2a212486507883d008d
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1f2f2230900581e5de9cf01a883e5d9338f0df94 02-Jun-2014 Eric Laurent <elaurent@google.com> audio policy: removed raw pointers.

Use only RefBase objects for the following classes:
- AudioOutputDescriptor
- AudioInputDescriptor
- HwModule
- EffectDescriptor

Create a common base class AudioPortConfig for:
AudioOutputDescriptor, AudioInputDescriptor and DeviceDescriptor

Bug: 14815883.

Change-Id: I1bd193ef1020780d8b94c13142029903615aba97
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1afeecb88bea660b2c10b2096be0fd02433303ce 14-May-2014 Eric Laurent <elaurent@google.com> audio policy: parse device descriptors in config file

Implement parsing of audio_policy.conf for device and gain
controller definitions.
Copy audio_policy_conf.h from hardware_legacy.
New syntax for devices and gain controllers description will not
be parsed by legacy audio policy manager.

Bug: 14815883.

Change-Id: I7f1035d514dcf55fb3e45ed1f633a2f63ee398f5
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
6a94d69dc4f32abb53c466a96f905bb199be6417 20-May-2014 Eric Laurent <elaurent@google.com> audio policy: implement routing control

Add implementation of audio routing control via AudioSystem APIs.

The following APIs are implemented:
- listAudioPorts(): return a list of devices and output/input mixers ports
that can be used as sources or sinks for audio patches.
- createAudioPatch()/releaseAudioPatch(): create/release a connection patch between
two audio ports (e.g. to connect input from an HDMI device to a speaker output device).
Only one client application can own a patch from a given source.
When an audio port (device or mix) is part of an application created patch, its routing cannot
not be changed by a policy decision.
- listAudioPatches(): return a list of existing patches.

Each audio port addition/removal and each audio patch creation/release increments a generation count.
This generation count is used to ensure consistency betwen calls to
listAudioPorts() and listAudioPatches().

Bug: 14815883.

Change-Id: I022b638c2f5f0bb41543c7cfca7488fb45cfdd80
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
951f455566775e5f01e67c5ee26863d7d19209d7 20-May-2014 Eric Laurent <elaurent@google.com> DO NOT MERGE - audioflinger: first patch panel implementation.

Added a new PatchPanel subclass to AudioFlinger
to handle audio ports and audio patches configuration
and connection.
The first implementation does not add new functionnality.
AudioPolicyManager uses patch panel interface to control
device routing.
AudioFlinger:
- Added PatchPanel class. The first implementation does not
add new functionnality. PatchPanel handles routing commands
for audio HAL after 3.0 or converts to setParameters for audio
HALs before 3.0.
- Added config events to ThreadBase to control synchronized
audio patch connection.
AudioPolicyManager:
- Use PatchPanel API to control device selection isntead of setParameters.
- New base class AudioPort common to audio device descriptors
and input output stream profiles. This class is RefBase and groups
attributes common to audio ports.
- Use same device selection flow for input as for outputs:
getNewInputDevice -> getDeviceForInptusiource -> setInputDevice

Change-Id: Idaa5a883b19a45816651c58cac697640dc717cd9
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
d46929666d7e4b1cad45afd7dcb883ec4dd2d49f 06-May-2014 Eric Laurent <elaurent@google.com> audio policy: update from libhardware_legacy

Merge changes made to AudioPolicyManagerBase in libhardware_legacy
since it was forked here:

fd61179 Update policy handling for USB inputs
c7b6e3c audio: allow compiling for 64-bit
c26f454 Initial implementation of USB Audio output.
a7b1bc9 Audio policy is 32-bit only
26101ad audio policy : add AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable

Change-Id: I22bc883c20603a6598c6ee3ded636e9cc4d9ec03
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
2f8a36fc8df14cba33fa7c5c1c9d5a52f8a133c2 27-Mar-2014 Eric Laurent <elaurent@google.com> Fix the build

Change-Id: I2169a3d26f4e35e5cfa35a1264175aab6ac4db41
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
1b512c05f46465a7b1a1d69f82937d7199d5d926 17-Mar-2014 Eric Laurent <elaurent@google.com> audio policy: remove obsolete AudioPolicyManager class members

Remove mHasA2dp, mHasUsb and mHasRemoteSubmix members from
AudoPolicyManager. They are not needed any more since
we use device descriptors with additional attributes.

Also remove obsolete limitation on device address
length (MAX_DEVICE_ADDRESS_LEN).

Change-Id: Iffe760a521692a4b50be3f6b935af84afb61bb86
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
3a4311c68348f728558e87b5db67d47605783890 17-Mar-2014 Eric Laurent <elaurent@google.com> audio policy: use new audio device representation

Represent audio devices with more attributes than just the
type (audio_device_t).
This is in preparation for new routing APIs allowing
device selection based on more criteria than just the type
(address, channel mask...)
A new class DeviceDescriptor is created and used by functions
needing more information than just the device type.
Bit fields for available and supported input or output devices are
replaced by vectors of device descriptors.
Each available device is allocated a unique ID for future use.
Removed obsolete mA2dpDeviceAddress, mScoDeviceAddress and mUsbCardAndDevice
fields replaced by address stored in DeviceDescriptor.

Policy decisions like getDeviceForStrategy() are still based
only on the device type.

Change-Id: I5de3b3ffb12ff8dcfb746782ab1e6b15bf040d0c
/frameworks/av/services/audiopolicy/AudioPolicyManager.h
e07208765fcd5904165e425ec714a25c350a2f40 11-Mar-2014 Eric Laurent <elaurent@google.com> audio policy: renamed AudioPolicyManagerBase to AudioPolicyManager

Change-Id: Ia8b5ae9c3a9cf6ed98f162614ea331efc78e9ff2
/frameworks/av/services/audiopolicy/AudioPolicyManager.h