| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
AudioService now indicates in and out device connection
separately in case of combined devices like wired headset
or BT SCO headset.
Change-Id: I97adf8343d0ce32c279ffc3cce5c84ca7a349e16
|
|
|
|
| |
Change-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not define USE_LEGACY_AUDIO_POLICY by default.
By default, all devices will now use the new audio policy implementation
in AudioPolicyManager.cpp
To continue using the legacy audio policy implemented by
AudioPolicyManagerBase in libhardware_legacy a device should
define USE_LEGACY_AUDIO_POLICY in its makefile.
Change-Id: I7b8cac3cbb24b11105ba6233501c7212f5985727
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Split audio policy library into a service part and a policy part.
This will allow OEMs to customize the policy part:
- libaudiopolicyservice for the service.
- libaudiopolicymanager for the policy.
Two build options can be defined in device make file to select
the policy library:
- USE_LEGACY_AUDIO_POLICY = 1: this will use the legacy policy
in hardware/libhardware_legacy implemented by AudioPolicyManagerBase class.
This policy is loaded as a harware module and exposes the audio policy HAL
defined in include/hardware/audio_policy.h and is in a library called
audio_policy.XXX.so (e.g audio_policy.default.so)
The legacy HAL will not be updated with new features.
If USE_LEGACY_AUDIO_POLICY is not defined, the policy is implemented by
a class named AudioPolicyManager exposing an interface defined in
AudioPolicyInterface.h.
The corresponding library is libaudiopolicymanager.so.
New features will be added only to AudioPolicyInterface.h
The default implementation is provided here in file AudioPolicyManager.cpp
OEMs wanting to cutomize the policy can implement the AudioPolicyManager class
and provide the libaudiopolicymanager.so library.
In this case the device make file should define:
- USE_CUSTOM_AUDIO_POLICY = 1
For now, USE_LEGACY_AUDIO_POLICY = 1 is forced in audio policy service make file.
This will be removed when the new audio policy is enabled.
Change-Id: I066799dacc9b182b468a43d48ff7798c9109a414
|
|/
|
|
|
|
|
| |
Add entries for new audio devices to string to enum table used
for audio_policy.conf file parsing.
Change-Id: Ica04c34af037d890a343af0b9eeb2ff0e5c86b02
|
|
|
|
|
|
|
|
|
|
|
| |
- Use strong pointers for command data to avoid transfering
ownership of the object to receiver thread.
This avoids waiting for the command acknowlegement to proceed
with next command on server side.
- Use a separate mutex for each command condition.
- Factor in duplicated code to send commands.
Change-Id: Ib0526e7c4fa64a71ad4015f477c6361727c6f40a
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The duration of the temporary mute applied on each output
when switching device must be more than twice the actual delay
we wait for the mute to be effective at the output.
Otherwise some outputs with short latencies will be unmuted before the
device switch is actually executed.
This change makes sure that we take the maximum wait time into account
when requesting the delayed unmuting of each output.
Change-Id: Id92c201b47786082a44b6a5c1c8015273835a42e
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
No need to clear strong pointers in the destuctor.
Add explicit exit() command to mOutputCommandThread.
Change-Id: I60bb248fe6a20bfd8a55358ef139692b93df0238
|
|/
|
|
|
|
|
| |
Fix cut/paste error in new AudioPolicyManager constructor
causing the same index variable to be reused in nested for loops.
Change-Id: Id57ff19bf6dd8974486b07c8252029e377df2747
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
commands in insertCommand_l()"
* commit '711719885d7563068579abf347c366cf6bc906f5':
Fix memory leak when filtering commands in insertCommand_l()
|
|
|
|
| |
Change-Id: I2169a3d26f4e35e5cfa35a1264175aab6ac4db41
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add build option USE_LEGACY_AUDIO_POLICY to use either new
audio policy manager in local AudioPolicyManager.cpp
or the legacy AudioPolicyManagerBase.cpp via the policy HAL.
New features will be implemented only by the new audio policy manager.
Platform customiization will be by config file or new policy HAL.
AudioPolicyClientImplLegacy.cpp copied from AudioPolicyClientImpl.cpp
AudioPolicyInterfaceImplLegacy.cpp copied from AudioPolicyInterfaceImpl.cpp
New implementations of AudioPolicyInterface and AudioPolicyClient talking directly to
AudioPolicyManager.
Change-Id: I7a320883a1de13de2c9295343e996addf2f3c154
|
|/
|
|
|
| |
* commit '0c282de73240b1efce64558ab2fa0a8be1f4292b':
AudioPolicyService: malloc/delete pair
|
|
|
|
| |
Change-Id: Ia8b5ae9c3a9cf6ed98f162614ea331efc78e9ff2
|
|
|
|
|
|
|
|
| |
Remove all dependencies on AudioSystemLegacy from AudioPolicyManagerBase.
Only use types and definitions from audio.h and audio_policy.h.
Also move code back into android name space.
Change-Id: I0c2582cf854027fb1e599981865a6cbe7b5a9490
|
|
|
|
|
|
|
| |
Import AudioPolicyManagerBase from hardware/libhardware_legacy
to prepare move from android_audio_legacy name space.
Change-Id: I5d6682ccd2bfdeefbf2f6f81a557480a76aaf4fc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Split audio policy service implementation to ease
further evolution:
AudioPolicyInterfaceImpl.cpp contains the implementation of
IAudioPolicyService interface
AudioPolicyClientImpl.cpp contains the implementation of the
AudioPolicyManager client interface
AudioPolicyService.cpp contains the rest of the code mostly
command threads implementation and pre processing management.
AudioPolicyService.cpp:
Change-Id: Ic48ba165532ef66e84a30894d01f750ed6619d02
|
|
Change-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf
|