| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Add new volume curves for VOICE_CALL stream type
to improve voice/video chat volume on speakers.
Bug 7346643.
Change-Id: Ib282a97570d2234deec6b58391bdfc45846d9cc0
|
| |
|
|
|
|
|
|
|
| |
Add support for querying whether there is currently a recording
underway from the specified audio source.
Bug 7314859
Change-Id: I8894845b176241134870af5df2bebc5ef27e4de4
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
The fields for the lists of input and output IOProfile are
not used in the AudioPolicyManagerBase class. Those are
actually stored inside each HwModule instance.
Change-Id: Iebb9fa5b7599a74013fd785a87de692890a89758
|
| |
|
|
| |
Change-Id: I734155d4cebb22b180f25290332c7c48be1e2b36
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
Change-Id: I25f7407c34b3032d4e77a27a4ac47b648098d9b0
Signed-off-by: Dima Zavin <dima@android.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: Ic42eba3432671f651c9703a07fe7b429a8ec0dff
|
| |
|
|
| |
Change-Id: If712b0c7fcf281d66d34614529f3433e56e058fb
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: I0b4e2ff705fce96b40fdda28b1bc4b514438bec6
|
| |
|
|
| |
Change-Id: Ie72dcb9e33afb217bb7e37081500a7fc53d7a047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: I66ef40ed381151ba61debe20edaa53bece0cc139
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Audio policy manager: allow registration of audio effects on
inputs too.
Change-Id: I92efa5b51cfde591052a5c56ba2b0b84de80df0f
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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>
|
| |
|
|
|
|
| |
Add a parameter to applyStreamVolumes() to force stream volume update.
Change-Id: I3cc82e516bb7c76c28c2470b06711c44f4789ce5
|
| |
|
|
|
|
| |
Add hidden AudioManager.getDevicesForStream and output device codes.
Change-Id: I45be59a2774196a135d013e45f38033036f74257
|
| |\
| |
| |
| |
| | |
* commit '01056fcfbbbb577f7d70324a4d6a3a211a519951':
Fix issue 3371080.
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Move isStreamActive() method from AudioFlinger to AudioPolicyManager.
iStreamActive() now specifies a time window during which the stream is considered
active after it actually stopped.
Change-Id: Ib0d7d8f061b9f809d307ecfac40960ef582e5f0f
|
| |/
|
|
| |
Change-Id: I7cb31c9ecd3c347bfa72cad5a331500a20fdcfbe
|
| |
|
|
|
|
|
| |
Added an initCheck() method to AudioPolicyInterface to verify
successful initialization of AudioPolicyManager.
Change-Id: I4c892282dbeb3246ee6c006bd206a3e723bcb71f
|
| |\
| |
| |
| |
| | |
* commit '3cb64cb8bbda335affcb3c71fce3c4f908a97111':
Fix issue 3142808.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a bug in the way audio policy manager handles A2DP interface suspend/restore
when SCO is used. This bug is not new but has been triggered by a change in the timing
of the events received by audio policy manager when a call is setup and torn down
introduced by commit 164a8f86c7e48992691368c4895709c3bdb835a4.
The fix consists in grouping the control of A2DP suspended state in a single function
that is called systematically when conditions affecting this state are changed:
- call state change
- device connection/disconnection
- change in forced usage.
Change-Id: Ib76a999513b5afbfd59ba945f8650d2a48d6f480
|
| | |
| |
| |
| | |
Change-Id: I965cbeee67f72e31240e3e8cd2630bf22a03b9ea
|
| |\|
| |
| |
| |
| |
| |
| | |
Merge commit 'bab20b6759d9f0445e4ff5f27f0a3666f0efafa5'
* commit 'bab20b6759d9f0445e4ff5f27f0a3666f0efafa5':
Fix issue 2952766.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The fix for issue 2952766 showed some unused code in
AudioPolicyManagerBase::checkOutputForStrategy(): since commit
eb8f850d0b7e53956e917fd9645f808c1a09bc88: there is no need
to update the hardware output device as it will be updated when the
new tracks are created by audioflinger.
Change-Id: I2f46fab58a5db3b4cd03fdaeebd7d6603c8dbbdd
|
| |\|
| |
| |
| | |
Change-Id: Ib6ab3b02aede7e07b71e19b16d305919be849bdd
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.
Change-Id: I3467e64035387cc5272266b1318a5ed788958374
|
| |/
|
|
|
|
|
|
|
|
|
| |
The problem is that the code in AudioPolicyManagerBase::checkAndSetVolume() that forces
voice volume to max when setting bluetooth SCO volume is not called if the bluetooth stream
volume did not actually change. So even if we re apply volumes when switching to bluetooth
device, the voice volume is not changed in audio HAL and remains what it was when routed to earpiece.
What makes things worse on Passion is that stream volumes are limited when connected to bluetooth
and their actual value does not change as soon as they exceed the limit threshold.
Change-Id: Ic6c54b4a7fd54983f445de9a9b5cd2ea0025155c
|
| |
|
|
|
|
| |
Make the choice of opening a direct output stream platform specific.
Change-Id: I63e5464a18aaa3600e9fed6cec0518ff1fad4dbd
|
| |
|
|
|
|
|
|
|
|
| |
headset connected.
The noise is the residual ring tone that is still playing while the call is answered and the
audio route changed to headset or earpiece.
The fix consists in muting the ringing tone when changing mode from ringtone to in call
and delaying the route change until the audio buffers are emptied.
|
| |
|
|
| |
Make computeVolume() method virtual so that its implementation can be platform specific.
|
|
|
First implementations of audio policy manager in Eclair branch have shown that most code is common to all platforms.
Creating AudioPolicyManagerBase base class will improve code maintainability and readability.
|