History log of /hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
18fc094c0ed41851be3d746423c6695dd28d48e1 15-Nov-2013 Jean-Michel Trivi <jmtrivi@google.com> Define and use DRC-specific volume curves when applicable

Add support for property defining whether a DRC on the speaker path
is enabled and will boost soft sounds.
Define new volume curves with more attenuations than existing ones
to compensate for DRC-induced boost on sonification sounds to
provide a more "linear" control to the user over the applied volume.

Bug 11600699

Change-Id: If23dd097a8b9b5ebb61e75dd8512ff75e63ba899
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
000bb51ca507645f3aa4ccfcbbb8859e8d539629 13-Oct-2013 Eric Laurent <elaurent@google.com> audio policy: fix gapless playback when effects enabled

Do not allow offloading if one non offloadable effect is enabled. This prevents from
creating an offloaded track and tearing it down immediately after start when audioflinger
detects there is an active non offloadable effect.
Not doing so breaks gapless playback because AwesomePlayer will always be able to open
an offloaded track which will not be compatible with the previous PCM track and
Audiosink::open() will not recycle it.

Bug: 11181933.
Change-Id: I6d163806849d9093b9ec701ba8e8c1ccb658e3c8
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b40b96a78537d63d801af7e706764c68acf8f182 06-Oct-2013 Eric Laurent <elaurent@google.com> audio policy: fix direct output selection

commit a527ffd broke the selection of an available
direct output profile in getProfileForDirectOutput().
getProfileForDirectOutput() should check for direct output profiles
regardless of the flags provided to getOutput().

Bug: 11051912.
Change-Id: I4a84734331bfed03d6024ea1c2e8776c27d0b28f
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
87e28f7b352fb77f46e16ebcdd85cbf01396a203 04-Oct-2013 Eric Laurent <elaurent@google.com> audio policy: fix DTMF tones volume while in call

When voice call stream volume is at 0, DTMF are not heard at all.
DTMF volume should follow the behavior of voice call volume which
is never completely muted.

Bug: 10932676.
Change-Id: Iaf0e33284be75b00516a837907e66be3123e5331
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
727fef1b1a8cb6d6609ec99a749fcd9573a3417d 01-Oct-2013 Eric Laurent <elaurent@google.com> remove audio HAL warning when inserting a headset

A valid offload info structure must be provided when
opening an offload output stream in checkOutputsForDevice()
upon headset insertion.

Bug: 8174034.
Change-Id: Id800a206536e5ce979febf89747a51db581c53b6
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
45c763947b657b347211dc9388754e05d30d0467 13-Sep-2013 Eric Laurent <elaurent@google.com> audio policy: add support for audio effect offload

Add rules to select the appropriate output for global
effects.
Move global effects if needed when an offloaded output is
created or released.

Bug: 8174034.

Change-Id: I0bbd8e9f8aa717f672462dd74ba0d01eaef1fda7
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
fc9b2457ce4721538dca0903de63c7766e97498a 09-Sep-2013 Eric Laurent <elaurent@google.com> AudioPolicyManageBase changes to enable HOTWORD audio source

- This change enables HOTWORD audio source to be preempted by any other
audio source

Bug: 10640877.

Change-Id: I6f7acbe95a6521306db70ad73260d2ba7b38b940
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
4e57a1d4979c2644dd8999dc5759b10ed0af56e9 31-Aug-2013 Eric Laurent <elaurent@google.com> audio policy: remove verbose logging.

Change-Id: I268935bd8f7e58f90c698c098686a04681b43887
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
41b150b659d4ba33a9be9f99fd9f0ee1f2787541 30-Aug-2013 Eric Laurent <elaurent@google.com> audio policy: disable audio offloading with video

Do not enable offloading of audio decompression when
playing video.

Change-Id: I6ee8b59370219f5ef810a99a27ba4a1cf222b55b
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
fe97ee4b99079fe4fed7151d3c7234a46900303c 25-Aug-2013 Chong Zhang <chz@google.com> audio policy: allow virtual input even if there are active inputs

Bug: 10460751

Change-Id: Ic6fcd14162e9c6e03366d887063321e21fcf14cd
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b96b2839f464f93e30d256124034ec985f8a9702 17-Aug-2013 Jeff Brown <jeffbrown@google.com> Automatically enable/disable remote submix when input started.

When recording from the audio submix begins, enable the remote
audio submit output device. When it ends, disable it.

Bug: 10265163
Change-Id: Ia0dc2e20623bb834d06561469ce856688991243b
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
a527ffd3c2ce72048a8fae51cd399024af4439b9 13-May-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Code changes for audio offload support

- Share existing offload output if compatible instead of
creating a new one. Hardware has limited number of
offload channels (possible only 1) so we must use as
few as possible

- Changes to routing handling for offloaded outputs

Change-Id: I11111d8f504828595bd8dbf66444cbd1202e7192
Signed-off-by: Eric Laurent <elaurent@google.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
ae57fbe12a00c9705cdc77bf6e688ca9b36d3871 16-Jul-2013 Eric Laurent <elaurent@google.com> am 8e7e4254: am e92d6238: audio policy: apply default device volume

* commit '8e7e42547116b1d5f49118ba41946b2906ad3936':
audio policy: apply default device volume
e92d623811f3fd3e7cc5e5dd8bc93c0c0a8fdf50 16-Jul-2013 Eric Laurent <elaurent@google.com> audio policy: apply default device volume

Make sure that we apply default device volume to
active outputs in case no specific volume for selected
device is received afterward.

Bug: 9760269.
Change-Id: I216de40396e1075e77493c97e8b192cd3a31d546
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b4d07b97d23cfaffe22c7859ad7c45e168a7df0e 25-Mar-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Add audio policy API changes for audio offload

Changes to the API of audio policy for audio offload support:
- Add isOffloadSupported() function
- Add OUTPUT_FLAG_OFFLOAD
- Extend AudioOutputDescriptor to include a sharing count for direct outputs
- Pass audio_offload_info_t when opening output streams

Change-Id: I5ad26418fdb286eb7ae299d586dd1fd525d48ab9
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
66707435156d8d99d795271a7bd54943065b4c2d 17-May-2013 Eric Laurent <elaurent@google.com> audio policy: fix device selection in startInput()

Check again input device selection when capture starts in case
conditions have changed since the input stream was opened.

This is related to but does not fix issue 8761558. It makes the
selection of BT SCO device consistent.

Bug: 8761558
Change-Id: I386b638e9c3238711e16fb848449af561624359e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5a950c960cd40648cc3ab8defe817f88e0a7ecf4 04-Apr-2013 Eric Laurent <elaurent@google.com> audio policy: reuse direct output when possible

Modified getOutput() logic to not systematically
open a new direct output when a profile matches a request.
This causes a problem when transitioning between two
multichannel tracks as the audio HAL will most of the times
only support one direct output stream open at a time.

Instead, reuse an open output if all the parameters match
or force close the output before reopening it.

Also modify releaseOuput():
- close a direct output only if no client is using it anymore
- call closeOutput() instead of removing the output from
the open output list: this factors in code executed when closing an
output stream.

Bug 8388941

Change-Id: Ic3d3beb21063622ddf57a5b932f93d56f2986f54
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
80f5b0400f86d49e70aa1a793b34f34492f005bc 25-Mar-2013 Eric Laurent <elaurent@google.com> audio policy: fix music glitch when starting call

When answering a call in silent mode, music playing over A2DP
was not immediately muted by current audio policy manager logic.

The fix consists in muting media strategy on all output streams
immediately when entering in call.

Also add methods to AudioOutputDescriptor to report
recent global, per strategy and per stream activity.

Bug 8315512

Change-Id: I4a90eb05db50e4f22374d02b1e647e8662f6bec6
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
9641bd36dbf0c4b1eeb84499b35c1cdb7fa5a530 27-Feb-2013 Eric Laurent <elaurent@google.com> audio policy: fix in call capture device

Allow use of default capture device when
AUDIO_SOURCE_VOICE_UPLINK is specified and the platform
does not support AUDIO_DEVICE_IN_VOICE_CALL.

Change-Id: Ibbc314f60c91e5a0fa75d57878f2d2a96ef2d83b
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
f32e38e24db196671d3ea43427125a4e212466fa 02-Mar-2013 Eric Laurent <elaurent@google.com> audio policy: fix music glitch with touch sounds

There is a brief music interruption when a touch sound
is played the first time after the headset insertion.

This is due to a bug in audio policy manager logic to prevent
volume bursts while changing device while music is playing.

The fix consists in muting music only on current output stream
when changing device, not all output streams.

Also prevent unecessary device change if the requested device
is not supported by the output stream profile.

Bug: 8301565
Change-Id: I00daab19bbdda10ca856a05fa32a1e333e1b9469
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
bb0e0da128d4159c87472d9d7c8899cbac00ce46 11-Feb-2013 Eric Laurent <elaurent@google.com> Merge "audio policy: fix in call audio setup delay"
8bf56b16e502b34826bc27e634534dcb9a8fb7dd 11-Feb-2013 Eric Laurent <elaurent@google.com> audio policy: fix in call audio setup delay

There is a delay inserted by audio policy manager before switching
device when entering in call mode to allow music playback to be muted
before the device actually switches.

This delay can be significant when high latency outputs (e.g. deep buffers) are
present and should not be applied if the output is not active.

Issue 7612431.

Change-Id: I04b666769033dbfdc861752b030d3f7bdffe9435
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
dc3bf1a37425697277f6ed04fc8cfe4a52fd678a 05-Feb-2013 Jean-Michel Trivi <jmtrivi@google.com> Identify remote stream activity, used for notification routing

Add support for checking remote stream activity.

Don't route notifications like media when media active remotely.

Add remote stream activity query in audio policy HAL.

Bug 7485803

Change-Id: Ifb722c7f9ffbfbdc877fec5156bcfc09bec40651
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
60758e27a4be8fc9ac1180f8a4055234e1702cc9 18-Jan-2013 Eric Laurent <elaurent@google.com> audio policy: added front + back mic

Added definition to parse front + back mic from input descriptors
in audio_policy.conf file.

Change-Id: I9ebdeac664e12104589a52d15acbbfc4db787923
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
911408bc76f833feca92b51cb7dcd91875cc48e8 08-Nov-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: fix notification start delay"
02580d804ab9d51e80298f97e0dcd7a752eaf5da 08-Nov-2012 Jason Simmons <jsimmons@google.com> am c8bc2286: am 7aab5b0f: Merge "Close a newly opened direct output if its parameters are invalid" into jb-mr1-aah-dev

* commit 'c8bc22869096ee413717102d3f5d0ca804cc3174':
Close a newly opened direct output if its parameters are invalid
42fa8215a763822c0d03fc936e4cac1eb864c9cc 07-Nov-2012 Eric Laurent <elaurent@google.com> audio policy: fix notification start delay

The mechanism delaying notifications in case of
muliple active outputs with long latencies must
take into account recently paused audio tracks.

Bug 7400428.

Change-Id: I4ac9dfac81336e33f475b4f28df82713707d0c46
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
10705c404c48ec9ac4ce47912e7731f9249cce1d 31-Oct-2012 Jason Simmons <jsimmons@google.com> Close a newly opened direct output if its parameters are invalid

Change-Id: I27ac015217480a854d25273ab9498949971b411a
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
2c72e9faa5ad5e324b85b78e383dd85c8bdc04a9 31-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: fix volume change when disabling SCO

commit 76e97d39 introduced a regression by having setDeviceConnectionState()
force a device change on duplicated outputs even if the selected device is 0.
This also forces a device 0 for the two outputs it is duplicated to,
which may override a valid device selection on those outputs and apply
default volumes.

Bug 7429869.

Change-Id: I37dd66343c54eb27e420089edbda04444fa1e2c6
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5debe92591363de3d73bc32b62f23df707b1aecf 30-Oct-2012 John Grossman <johngro@google.com> Fix a parse error in checkOutputForDevice

Fix a small parsing error in parsing the supported formats and sample
rates of a stream out with dynamic values for these parameters. The
channel mask parser was properly skipping the "=" in the setting
string, but formats and sample rates were not (cauing the first
reported format and sample rate to end up being skipped)

Change-Id: Id227a44f6b5fc0c223f2ce74f94ebb6abc5fa77d
Signed-off-by: John Grossman <johngro@google.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5a484b753cc72d6a50c1dd3bbf68b3403c741a3a 27-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: active analog dock force usage

Qualify the selection of the analog dock for media by the force use.

Bug 7302106.

Change-Id: I2ea48fd43866ce8491085bba72a27751b2203401
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
89ef58f4c0e4920d8f18112a31a4c80c766a2afa 18-Oct-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: fix scanning of supported devices" into jb-mr1-dev
672e9ace42a3f7d4f93460efc79ebd444786a5eb 18-Oct-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: tune voice/video chat volumes" into jb-mr1-dev
fd8cecbee6843b444d56a1db40af76027e2b19f1 18-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: fix scanning of supported devices

Fix is a bug in checkOutputsForDevice() which makes that we can
try to reopen an output stream after a new device is connected because
we believe that no opened output is available for this device.

Bug 7369475.

Change-Id: I2290a9b5ba102657cda495fbb8a995e0003b883a
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
0d6490a58bf607f1efc00638709f9c4c8f7dd270 17-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: tune voice/video chat volumes

Add new volume curves for VOICE_CALL stream type
to improve voice/video chat volume on speakers.

Bug 7346643.

Change-Id: Ib282a97570d2234deec6b58391bdfc45846d9cc0
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
772686310a3bc44d93591349e174a60360a3d30d 11-Oct-2012 SathishKumar Mani <smani@codeaurora.org> audio policy: update output delayMs in setPhoneState

- Issue: When call is connected in HDMI while playing music,
Playback is routed to phone shortly
- Cause: delayMs is not updated correctly, and no delay is
set when setOutputDevice is called
- Fix: update delayMs with biggest mOutput latency and mute
STRATEGY_MEDIA on all outputs

Bug: 7268860
Change-Id: I12b75443a29ab8485314bd0cbfe5ee4789be5c29
Signed-off-by: Iliyan Malchev <malchev@google.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
aac673172cd61cd862228a8d41a8f3e7d1e016fd 17-Oct-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: do not route in call audio to HDMI" into jb-mr1-dev
85ad78f27ca032e90af0f2100659d12c16322c76 17-Oct-2012 Marco Nelissen <marcone@google.com> Initialize mStrategyMutedByDevice

Valgrind found this

Change-Id: I24c640c2b0b6cac129c23bfc18828aff005ec952
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b52f373bd56fbbb07a625de15125d33672d5143f 16-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: do not route in call audio to HDMI

In call audio shuold not be routed to HDMI, S/PDIF or USB
by default as most platform do not support it.

Bug 7339490.

Change-Id: Iac4803f3fbde0c321fc7b37ab7ba34af6a16b4aa
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
31363a9cb94e80330c335fede0b92b1953a09517 12-Oct-2012 Jean-Michel Trivi <jmtrivi@google.com> Remote audio submix always has priority for media, only plays media

Don't use force use mechanism for remote audio submix routing.

Prevent streams of strategy sonification to be played over
remote audio submix (e.g. WFD) and HDMI

Bug 7318180

Change-Id: Ic5c87d3c568873dffea9002cf87ecf42b403cde6
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
abc55c698301e05a80d7f9394c75abca0b307602 10-Oct-2012 Jean-Michel Trivi <jmtrivi@google.com> AudioPolicyManager supports querying active record sources

Add support for querying whether there is currently a recording
underway from the specified audio source.

Bug 7314859

Change-Id: I8894845b176241134870af5df2bebc5ef27e4de4
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
738207def5f691d605ae33d041116829a74513a9 09-Oct-2012 Eric Laurent <elaurent@google.com> audio policy: add forced uses for system

The volume and routing policy of AUDIO_STREAM_ENFORCED_AUDIBLE is
now controlled by AudioService by means of new forced use type
AUDIO_POLICY_FORCE_FOR_SYSTEM with config
AUDIO_POLICY_FORCE_SYSTEM_ENFORCED.

Property ro.camera.sound.forced is not used anymore.

Bug 7032634.

Change-Id: I742b0eebbe6b013f61d199846454a06411b52bc8
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
76e97d3950f2654adbb0a415218b6d048200c395 27-Sep-2012 Eric Laurent <elaurent@google.com> audio policy: force device update if disconnected

Force the new device selection to be applied when a device is disconnected
even if none is select. This is to indicate to the audio HAL that current
device selection is not valid anymore even if no new device is selected because
no audio track is active.

Bug 7141149.

Change-Id: Iade02fb53a4cc2051fce9da07870c5391396b696
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
be13d2ebd0ee66e8c09d978107c14a4221b04dff 26-Sep-2012 Eric Laurent <elaurent@google.com> audio policy: fix crash when closing HDMI output

When a direct output is closed, the vector containing
the previously opened outputs must also be updated.

Bug 7157451.

Change-Id: I575b1f4928cf7527a4a98632fdec7600664a1e1c
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
6d3a115c091adc1618b3d1e50a86951c3b35fa30 17-Sep-2012 Jean-Michel Trivi <jmtrivi@google.com> Support audio recording while remote submix is active

When evaluating if an audio record is active, do not count inputs
opened on "virtual" devices, such as remote submix, as active.

Change-Id: If19c321cf673e3bdf4c3f81e73c163190df7c21e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
ed8f62d4faa53bbd53a358c5f494b653a09285e4 28-Aug-2012 Eric Laurent <elaurent@google.com> audio: new audio devices enums

Changes for new audio devices enums:
- legacy audio HAL wrapper provides conversion between new and
old device enums. It exposes a rev 2.0 audio device API to the
audio framework and allow legacy implementation to use old device enums.
- AudioPolicyManager: use standard enum value for no device (0).

Change-Id: I855d72291d672cdd8a6641bedb228634a54b7d9d
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
48387b28c87327c6c4d512eabe091c29236d2e70 20-Aug-2012 Jean-Michel Trivi <jmtrivi@google.com> Update Audio Policy Manager for remote submix

Define a new forced mode to route media to remote submix.
Update media routing rules according to mode.
Modify device connection management for remote submix.

Note that this CL doesn't implement changes to not prevent audio
recording when WFD is on, as audio recording is currently limited
to one input.

Change-Id: I458fe1802705da2d091ff82e536dc3e7f092f291
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
17a73c3394547692457299dc512b5c2312ea0344 06-Sep-2012 Eric Laurent <elaurent@google.com> audio policy: fix ringtone volume on headphones

When limiting ringtone volume because headphones are connected
and music is playing, the volume was not limited against the right
music volume. The is because the device used for music (headphone)
is not the same as the one used for ringtone (headphone + speaker).

Bug 6816207.

Change-Id: I3342be1789a1b7c58705812335b788f030bc6d76
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c8101f5b14e745b348592c5609e55f121a11a6bf 24-Aug-2012 Jean-Michel Trivi <jmtrivi@google.com> Update AudioPolicyManagerBase to only use audio_devices_t

The AudioPolicyManagerBase implementation was using some device
enum values from AudioSystemLegacy.h, of type audio_devices,
and some from /system/audio.h, of type audio_devices_t.
Now only uses audio_devices_t, and associated functions to
inspect what audio device type they correspond to.
Added #define to represent "no audio device" to clarify code.
Removed unused variable in AudioPolicyManagerBase::startOutput()

Change-Id: Ibec311dac550d6a806397377206a43bc708914c0
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c94dccc97cc3ed5171b45f46a0f7f8762d37156f 24-Jul-2012 Glenn Kasten <gkasten@google.com> effect_descriptor_t const correctness

Change-Id: I734155d4cebb22b180f25290332c7c48be1e2b36
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c952527e6f89d5427881462823514be9d79f13e6 21-Jun-2012 Eric Laurent <elaurent@google.com> audio policy: fix HDMI hot plug

When an HDMI sink is connected it is possible that
a direct output is made available for multichannel audio.
In this case, the list of outputs available to reach the HDMI device
after the connection is different from before. checkOutputForStrategy()
must take this into account in order to invalidate tracks so that
they can be re connected to the multi channel output if necessary.

Change-Id: Id0baeb51688eba8017fe96bf92aaac52eb8e0f59
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
4366b4a6735e5da342b56773073f0b41197c777f 14-Jun-2012 Eric Laurent <elaurent@google.com> 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/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
e3ce4e99970bd2820f91345b769e6f57353e02f0 08-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Merge "Increase system stream volume on speaker" into jb-dev
5568b826b6b9b084f76b777db8b0411c7565e870 07-Jun-2012 Eric Laurent <elaurent@google.com> Merge "audio policy: fix notification volume limitation" into jb-dev
ac3cf10ef6de12e69540a1244ac7255f93fa7502 07-Jun-2012 Eric Laurent <elaurent@google.com> audio policy: fix notification volume limitation

The limitation of notification volume when playing music over headphones
has been broken for devices where notifications and music are played over
separate output streams.

Fix computeVolume() to check music stream activity on all outputs.

Bug 6623707.

Change-Id: Ie25f9b428ea086efe0be5fea2d31551d2528b655
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
fa3697d716b444bbea6be480801536c44bf69214 07-Jun-2012 Eric Laurent <elaurent@google.com> audio policy: remove delay when enabling speaker

Do not force mute on a strategy when moving it from one output
stream to another if no stream is active.

Bug 6611972.

Change-Id: I21f72b0ef3600639de66e6b0a1c3ae44045fd81f
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
123897874418f9f0e48bb89386d8c470e6975f28 05-Jun-2012 Jean-Michel Trivi <jmtrivi@google.com> Increase system stream volume on speaker

Increase the volume of the system stream for speaker output, so
sounds played on this stream can be louder on devices that
need it.
Additional changes in the rest of the framework will define properties
to tune sound effect levels on a per-device basis.

Bug 6448481

Change-Id: Ia6c1ff314a321c6e271a682e3f4ff64c250b184e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
3cdfddf1b27bcb5408ca3a04fcdf206447ba07ba 01-May-2012 Eric Laurent <elaurent@google.com> audio policy: improve support for direct outputs

Add the capability to query supported parameters for
direct outputs after a device is connected. This allows
to dynamically update the output profile for devices like
HDMI where the capabilities depend on the connected sink.

Also added very verbose log mode for volume and mute.

Change-Id: I1d4ba8e7dbc3e1af883582857ce93240441e551c
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
4660455366d2ee64cb65f0ecd6f7ddeb1c17bac6 31-May-2012 Marco Nelissen <marcone@google.com> Ensure global effects are on the correct output

Global effects such as the visualizer would sometimes not be on the
right output, for example when switching from a2dp to wired headset
or back, when there are both regular and deep buffer outputs available.
We now check which of the available outputs the global effect should
be on when more than one is available.
b/6528772

Change-Id: Ie268e32ef41e7888da67c24730dc93750a2cf579
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
1afd84f62291d20414cbf58c7af01462a8fdca60 21-May-2012 Eric Laurent <elaurent@google.com> audio policy: allow disabling A2DP for media.

Added FORCE_NO_BT_A2DP forced use to allow applications to
override default policy to use A2DP whenever connected.

Bug 6485897.

Change-Id: I784271c062294fbe1aff7884965075b40c68dc24
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
01e6272f0a3a7d1d53e826012377ff9269b03b06 16-May-2012 Eric Laurent <elaurent@google.com> audio policy: fix in call volume problem.

When switching audio path, it is sometimes required
to temporarily mute certain streams to avoid glitches.
The unmute command is sent with a delay but the volume applied
when unmuting is computed according to the state at the time of mute.
If the device selection changes after the delayed unmute is programmed
the new volume will not correspond to the new device.

setStreamMute() now accepts a device selection as input parameter which is
used instead of current device for volume computation.

Bug 6497819.

Change-Id: I355ebf9e1afe814fa5c2723bda9c40e58f921b46
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
7465678e0d5711ebcd78ae47b3a76821534a23ea 10-May-2012 Eric Laurent <elaurent@google.com> Reduce system stream volume.

Reduce system stream volume by 6dB as
UI sounds are now perceived as being too loud.

Issue 6448481.

Change-Id: I0237eb94245014724dfdf55253049340e2162af8
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
ddfe26905ea3210c86a88eeb331eef4c9f99b931 26-Apr-2012 Eric Laurent <elaurent@google.com> system and UI sounds volume policy

Added specific volume curves for AUDIO_STREAM_SYSTEM,
AUDIO_STREAM_ENFORCED_AUDIBLE and AUDIO_STREAM_DTMF.
Volume for these streams tracks AUDIO_STREAM_RING on phones
and AUDIO_STREAM_MUSIC on tablets but is contrained in the range
-24dB to -6dB on speaker and -24dB to -12dB on headset.

STRATEGY_ENFORCED_AUDIBLE routing policy is now the same as
STRATEGY_MEDIA in countries where not enforced.

Change-Id: If58d96559bfe2bbff4cd94c631d5933bd940778e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
739022f26a7127ba76a98dda65411496086114a7 24-Apr-2012 Dima Zavin <dima@android.com> audio_policy: set some reasonable defaults if audio_policy.conf is not found

Change-Id: I25f7407c34b3032d4e77a27a4ac47b648098d9b0
Signed-off-by: Dima Zavin <dima@android.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5ec145df7708564d385fd3fb764085321cf4c253 24-Apr-2012 Dima Zavin <dima@android.com> audio_policy: look for config file in /vendor first

Change-Id: If10308f688437e1682e4104120772cfce16e9d89
Signed-off-by: Dima Zavin <dima@android.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
9029a4fe8abafd383e6fbb1409d1e2f749b51391 22-Apr-2012 Eric Laurent <elaurent@google.com> audio policy: volume burst when switching device

The addition of the per device volume feature has introduced
a problem where a volume burst can be heard in the headphones
just after insertion if the speaker volume is much higher than the
headphones volume.

Added a temporary mute of the output when switching device to force
volume ramp to 0 and back up to new volume.

Issue 5984108.

Change-Id: I5c9ffbbcadd12d25c78cc2614d351346b8186c55
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b2971bf2ae4e9da3155559aa134e3aa6c2b216a4 14-Apr-2012 Eric Laurent <elaurent@google.com> audio policy: add support for deep audio buffers

Added definitions for parsing deep buffer flags in output profiles.

Make sure that sound start is delayed enough to allow
duck/mute effect to apply before starting a notification on an output
with lower latency.

Change-Id: I1578e245da19d1a0f9ec62a2ea6dddaf82ea282b
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
0977cf534ffb71c2abac622716510ae8ea25f3e9 18-Apr-2012 Eric Laurent <elaurent@google.com> rename audio policy flags

Change-Id: Ic42eba3432671f651c9703a07fe7b429a8ec0dff
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
599a1fc11596ac669499c1caf87c6ceddd0bfee4 06-Apr-2012 Eric Laurent <elaurent@google.com> audio policy: added rules for USB audio devices

Change-Id: If712b0c7fcf281d66d34614529f3433e56e058fb
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
9f1f9b509c930830f6f32e9ef6c2c8a03d6fa96e 05-Apr-2012 Jean-Michel Trivi <jmtrivi@google.com> Allow non-direct output of any channel mask

Because of the downmix capability of the mixer, do not prevent
a non-direct output to be retrieved based on channel mask.

Change-Id: I911f95f4055c2134298c233d14f2f5d586091fd4
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
70c236c9290732782d5267935af1475b8d5ae602 28-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: load audio hw modules

Audio hw modules are now loaded according to configuration
data read from audio_policy.conf. They are not loaded anymore
from a hardcoded list in AudiFlinger.

Output and input streams are opened on the hw module by which
they are exposed.

Also removed obsolete "acoustics" flags for input streams.

Change-Id: I8dc658cc83890d3ac7d5e36c372a03732aa5b0c4
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5ccdf14a85ed66ac54036fb393acc06ea7acfed6 20-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: use configuration file

The audio policy manager implementation now reads a configuration file at
boot time that contains descriptors for available audio hardware
modules and for each module the profiles of available inputs and outputs streams.

The configuration file path on the target is: /system/etc/audio_policy.conf.
A default configuration file is given that defines a basic configuration
with one primary audio hw module capable of playback and capture.
Each platform or device should have its own audio_policy.conf file.

Also removed default value of fromCache argument of getDeviceForStrategy()
and getNewDevice() methods.

Change-Id: I0c773d2331508bbc787f89b123dd6a7b8c10d459
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
12bd6e4a5c26bd8035bf804d0cc821bd9b8cce9b 15-Mar-2012 Jean-Michel Trivi <jmtrivi@google.com> Only duplicate notifications when no media is playing

Map the NOTIFICATION stream type to a new strategy,
named STRATEGY_NOTIFICATION_RESPECTFUL, which differs
from STRATEGY_NOTIFICATION in that, when media is
playing, the notifications will use the same output
as the MEDIA strategy. This will results in the
notifications not being duplicated on the speaker
when a headset is in use for media playback.

Change-Id: I032be0e2d383c69b5b6c912d7174753f5572c4b4
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
f9a4e2eccfbbe451512337af0806cfc54be0eaf9 08-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: use audio_devices_t when appropriate

Change-Id: I0b4e2ff705fce96b40fdda28b1bc4b514438bec6
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
08b014d9e509c9163db6b33a63852e73db4d07cc 08-Mar-2012 Eric Laurent <elaurent@google.com> audio policy: use common string for A2DP address

Use definition from audio.h for A2DP sink address parameter.

Change-Id: I2d7905b8e3dd71fab2efc68ae16682e09c3f872e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
b4696fc22ba822ed37bd2e3a19bc17514ccc79c8 17-Feb-2012 Eric Laurent <elaurent@google.com> audio policy manager: more generic A2DP impl.

This change makes support for A2DP related audio policy more generic:
-removed WITH_A2DP compilation switch
-use output profile descriptors listing the parameters
(sampling rate, format...) devices and attributes (low power, tunneling...)
for each available output.
All the behavior specific to A2DP is derived from the A2DP output profile
descriptor.
- removed obsolete a2dpUsedForSonification() method.

This is a first step towards a more generic support for different audio
hardware modules (USB, HDMI) and output streams supporting different
combinations of parameters (sampling rate, format...) and attributes
(low power, tunneling...).
Ultimately, the hw modules and output descriptors will loaded from a
configuration file.

Change-Id: Ife3e49e1afbcb72613bfc8ce38919bb087ca85ea
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c5eb8b4a5d4395ce335bc7c3e6df2678fa47e2dd 16-Feb-2012 Eric Laurent <elaurent@google.com> Fix volume not restored when exiting silent mode

The change for volume per device introduced a problem where if a headset
is plugged in while in silent mode, the sound will not be restored
at the first press on volume up key but only at the second press.

This is because when exiting silent mode, AudioService reapplies the
last known volume for all devices in any order and the last volume
applied prevails, even if it is for a device other than currently selected
by audio policy manager.

The fix consists in applying a new volume only if the device indicated
matches currently selected device on an output.

Change-Id: I778b90a9ec5a8b4a15e0333bd045f2dd327f388c
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
70eb9dec508c3269a0792e362ab34ffb3b29976c 27-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_in_acoustics_t consistently

Change-Id: I9875afdf21937c88a5decc9d94e89fddffc3519e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
ca0657a1ca087a6d474a75fcfedd6aac3901d587 19-Jan-2012 Glenn Kasten <gkasten@google.com> Audio policy HAL set_ringer_mode is deprecated

Change-Id: I66ef40ed381151ba61debe20edaa53bece0cc139
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c6f331b3f48455c9a9cdf00fc82894badd0a7da6 15-Dec-2011 Eric Laurent <elaurent@google.com> audio policy manager: stream volume per device

Improve volume management by keeping track of volume for each type
of device independently.

AudioPolicyManagerBase now keeps track of stream volumes for each device
and apply volume according to current device selection.
Methods to set and get stream volume now specify the device class.
A value for "default" device is always present for each stream and is used
if a device is selected and no specific volume was ever set for this device.

Change-Id: I06d8f43aa151a09014f7e47e81304c73ff82e9f8
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
5efbd421e0029d6fc44b1cc65c0e5e0d85e5161f 08-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Idfcd2f2269080d92a621dc432c65f7cf244588af
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
64cca04dcbf4e21a51131224b9d0f0c596f876d4 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I86e4ce26d8fba68584d0a7fc17111b53c56d2932
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
314bacacbbc6a52b25e083a30bde8d986adc1ef3 08-Dec-2011 Eric Laurent <elaurent@google.com> audio policy manager: remove ringer mode dump

The ringer mode is at the moment not passed down from AudioService to
AudioPolicyManager as it is currently not used in any routig decision.

So the value store in audio policy manager is wrong and the dump is miss leading.

Change-Id: I3c21c168393470fd64c1b73e3c511576a9acdd7e
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
c720e569d2c180d1740c656adaf19fde5034c27d 02-Nov-2011 Eric Laurent <elaurent@google.com> am c16ac09f: Force camera shutter sound to speaker in Japan.

* commit 'c16ac09f510437e8340be691720177a490ae78f0':
Force camera shutter sound to speaker in Japan.
c16ac09f510437e8340be691720177a490ae78f0 01-Nov-2011 Eric Laurent <elaurent@google.com> Force camera shutter sound to speaker in Japan.

Make sure that camera shutter sound is output to device speaker also while
in call.
Added a new strategy for enforced audible stream to address this case as
the routing policy is now different from sonification strategy.

Issue 5548406.

Change-Id: I2de39dfaef7d90e3804b238b1379f0f59b75e985
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
6a70518b93928d1c91457ff805e375c82d76b0e5 20-Oct-2011 Steve Block <steveblock@google.com> Rename LOGV(_IF) to ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I953e5eabaf5023a4dcd76339c336d9132f257f8c
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
497fb4566204c88bd247aafc2412ddef8f85e480 20-Oct-2011 Eric Laurent <elaurent@google.com> Fix music heard in speaker before notifications.

Increase the delay after muting music when switching audio path
to both speaker and headset for notifications and ringtones.
This is required to avoid a residual of music to be output to speaker
now that the max latency has been increased in low power playback mode.

This is a temporary workaround that will be removed when low power mode
is controlled policy manager.

Change-Id: If08e7f46e499be362badb2a24a79d1723ebfc00a
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
e43c5c4ca4477a6b384711552c3e990609039d93 18-Oct-2011 Eric Laurent <elaurent@google.com> Fix issue 5440852: Youtube volume is too small ...

When no DRC is applied by the platform when playing
over the device speaker, faint audio signals are not boosted and
barely audible until the media volume is raised to about one fourth
of the range.

Compensate this by applying a different volume curve for music stream
when the speaker is selected.

Change-Id: I03f316fb28150eda50b05dfa12310701e2674648
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
cd057ad2774903c62f5c11bc71c4e7357aee71b8 12-Sep-2011 Eric Laurent <elaurent@google.com> Issue 5256795: Phone ringtone volume is too low

Modified the volume curve for ringtones and notifications
in audio policy manager. The first volume step now corresponds to
-30dB instead of -50dB thus making ringtone much more
audible for low volume settings.

Also made a generic implementation of volume curves according to
audio policy strategies.

Change-Id: Ieb7916ba2e53c2a10a47efec82814cabed21c48b
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
55ac23bc116ad9ae38266a5e660fd22f5104348e 10-Sep-2011 Eric Laurent <elaurent@google.com> audio policy manager: invert SPDIF/HDMI priority

Route media audio in priority to S/PDIF output when available
even if HDMI is connected. This allows users to chose to output audio
to a different system than the display.

Also force media volume to max when playing over S/PDIF.

Change-Id: I03b82a7235cb60f2b5d6cf7923570554b07ac400
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
582a15744be109fb630db7dbd1d1bdf22ff44f12 11-Aug-2011 Eric Laurent <elaurent@google.com> AudioPolicyManager: register effect CPU on enable

Audio effect CPU usage is now registered on enable and
unregistered on disable instead of when the effect is
created or destroyed.

Change-Id: Icffcede9558d8d41887278f0efef2df430927381
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
1c65a49da0c89f75e528354ef02de5dc93a28232 18-Jun-2011 Eric Laurent <elaurent@google.com> Audio effects: support for audio pre processing

Audio policy manager: allow registration of audio effects on
inputs too.

Change-Id: I92efa5b51cfde591052a5c56ba2b0b84de80df0f
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
e81531e91ecae92aff471dbff9cbeb0f95ff4a80 20-Apr-2011 Dima Zavin <dima@android.com> hardware_legacy: provide HAL helpers for legacy audio users

This doesn't actually create a HAL, but rather a set of helper static
libraries that device specific libraries (i.e. the old libaudio pieces)
can link against to create a proper audio HAL module.

We provide an audio_policy static wrapper and audio hardware interface
static wrapper.

Change-Id: Ie56195447ad24b83888f752dca24674b0afd8a76
Signed-off-by: Dima Zavin <dima@android.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp
f01215993dda68b6b52111d754bd0c7c2d5bcfa3 20-Apr-2011 Dima Zavin <dima@android.com> legacy: move legacy audio code from frameworks/base here

Change-Id: Ic5da0130af44354dffdf85c30cd99f57c6ee163c
Signed-off-by: Dima Zavin <dima@android.com>
/hardware/libhardware_legacy/audio/AudioPolicyManagerBase.cpp