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
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
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
Add a default implementation of get_next_write_timestamp to the C <--> C++
legacy audio HAL implementation allowing HALs using the legacy C++
AudioStreamOut to overload and implement get_next_write_timestamp. Default
implementation returns INVALID_OPERATION to indicate that the functionality is
not supported.
Change-Id: I087347649e9ba186a74cb34aaadf989bf90720fe
Add an implementation of the new get_master_volume method to bridge from the new
C only audio HAL to the old C++ legacy audio HAL.
Change-Id: I5c29814623b5141b0c69927ea60be9873c8a5dab
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
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
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
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
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
This uses the legacy policy code to build a default implementation that
can be used while we figure out what the new policy inheritance should
look like.
Change-Id: I3e4154abc7152b4f560b28e391a268bf508767e3
Signed-off-by: Dima Zavin <dima@android.com>
Note that the legacy audio helper libs are not part of the
main libhardware_legacy lib itself.
Change-Id: Ie08343ab8de2d298db0041c711d7e02a284bc4c3
Signed-off-by: Dima Zavin <dima@android.com>
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>