16 Commits

Author SHA1 Message Date
Eric Laurent
0163594301 Tentative fix for issue 3362362.
The problem is likely that one method is called on the AudioPolicyManagerBase
instance while it is still being constructed by AudioPolicyService.

To avoid this, the AudioPolicyService mutex is held by the constructor until the
platform specific AudioPolicyManager is constructed and the member
mpPolicyManager initialized.

Also added an initCheck() method to AudioPolicyInterface to verify successful
initialization of AudioPolicyManager.

A similar change is done in AudioFlinger constructor.
Also added some missing protections in AudioFlinger methods where the
playback thread list is parsed.

Change-Id: I006b244ec057e1bb0aa5ebe426ef006e3b171056
2011-01-19 09:04:27 -08:00
Eric Laurent
58bf1d9165 Fix issue 3317627.
The fix consists in selecting the digital audio device (SPDIF/HDMI)
when available if the routing strategy is STRATEGY_PHONE.

Change-Id: Ie500ae92f5c01f2511988543852ba559c6e5994b
2011-01-09 16:05:30 -08:00
Eric Laurent
aef0cbb885 Fix speakerphone routing to analog dock
The audio routing policy when speakerphone is on and a dock with built-in
speakers is connected should be to output audio to teh dock speakers

Also removed route to SCO car kit if forced usage is not SCO as the SCO
socket might not be established.

Change-Id: I1aa2954092e28de935304b90f7a7a64d661934c7
2010-12-16 09:44:42 -08:00
Eric Laurent
2c61bee2b0 Change audio routing policy for HDMI
HDMI device should have a higher priority than analog dock audio but a lower priority
than wired headsets.
Also modified AudioService so that HDMI is mapped to DEVICE_OUT_AUX_DIGITAL device and not
DEVICE_OUT_DGTL_DOCK_HEADSET as before to enable discrimination between SPDIF going to
digital dock and SPIDF going to HDMI.

Change-Id: I887d0c73479784dd2edaf41ce1a7d8d0bdcbb4bd
2010-12-15 11:01:48 -08:00
Eric Laurent
fad778754c resolved conflicts for merge of 0d28be68 to master
Change-Id: Iec5f810c366d3e1c14a6f6294b0aea4ffb30ae3e
2010-12-01 12:11:10 -08:00
Eric Laurent
b87b53d7a8 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: I46ee2399ee5547b60511fc6cfd32e2720091b0f8
2010-12-01 09:45:33 -08:00
Jean-Michel Trivi
8f677d66d9 Add new audio mode for audio communications other than telelphony.
The audio mode MODE_IN_CALL signals the system the device a phone
 call is currently underway. There was no way for audio video
 chat or VoIP applications to signal a call is underway, but not
 using the telephony resources. This change introduces a new mode
 to address this. Changes in other parts of the system (java
 and native) are required to take this new mode into account.
The generic AudioPolicyManager is updated to not use its phone
 state variable directly, but to use two new convenience methods,
 isInCall() and isStateInCall(int) instead.

Change-Id: Id744cd26520ea1d1a4795eabe6a1f0c58789af76
2010-11-16 10:23:37 -08:00
Jean-Michel Trivi
1a22bdb01a Add support for audio recording source in generic audio policy mgr.
Update the platform-independent audio policy manager to pass the
 nature of the audio recording source to the audio policy client
 interface through the AudioPolicyClientInterface::setParameters()
 method.

Change-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf
2010-11-12 14:35:52 -08:00
Jean-Michel Trivi
820b9e0d3b Add recording source for voice communication
Add a recording source used to designate a recording stream for
voice communications such as VoIP.

Change-Id: I4091d67069b1a0170c1a5ca5e6acd51eb0aa08f9
2010-11-09 14:32:43 -08:00
Praveen Bharathi
21e941bf43 Added support for dock headset observer
Change-Id: I06b2e65e3bfa10735e6c7fd3349afa9ae7d45292
Signed-off-by: Praveen Bharathi <pbharathi@motorola.com>
2010-11-01 18:41:19 -07:00
Eric Laurent
2ed7818129 am 44217848: am ae6bdc23: Merge "Fix issue 2952766." into gingerbread
Merge commit '4421784895a58bb7bcf90236a9e443b372b5b80e'

* commit '4421784895a58bb7bcf90236a9e443b372b5b80e':
  Fix issue 2952766.
2010-08-30 15:07:45 -07:00
Eric Laurent
b8453f4e0e Fix issue 2952766.
The problem is that the audio policy manager does not handle the input devices
when forced use for telephony is changed.
The problem does not appear in a call over PSTN becasue only teh output devices drives the
routing of in call audio to/from the base band.

The fix consists in modifying AudioPolicyManagerBase::setForceUse() to check for active inputs
and update the input device if needed.

Change-Id: I0d36d1f5eef1cce527929180c29b025439902f10
2010-08-27 17:10:36 -07:00
Eric Laurent
240677ec68 resolved conflicts for merge of dd206093 to master
Change-Id: I21dd2321a4839d034d49092baccbf40986f17dae
2010-07-20 13:37:19 -07:00
Eric Laurent
8ed6ed0b62 Audio policy manager changes for audio effects
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.

Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.

Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
2010-07-20 10:31:57 -07:00
Mathias Agopian
0779682a49 am 78983a91: am 4055b780: Merge "move native services under services/" into gingerbread
Merge commit '78983a9133d3dd3f08b1ec462a7e2f9e7bfa9e2f'

* commit '78983a9133d3dd3f08b1ec462a7e2f9e7bfa9e2f':
  move native services under services/
2010-07-14 18:48:58 -07:00
Mathias Agopian
08e83bb3b7 move native services under services/
moved surfaceflinger, audioflinger, cameraservice

all native services should now reside in this location.

Change-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8
2010-07-14 17:59:35 -07:00