summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy
Commit message (Collapse)AuthorAgeFilesLines
* audiopolicy: refactor audio command threadsEric Laurent2014-05-122-118/+83
| | | | | | | | | | | - 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
* audio policy: fix mute delay when setting output deviceEric Laurent2014-05-081-18/+25
| | | | | | | | | | | | | 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
* Merge "audio policy: cleanup AudioPolicyService destructor"Eric Laurent2014-05-081-3/+1
|\
| * audio policy: cleanup AudioPolicyService destructorEric Laurent2014-05-071-3/+1
| | | | | | | | | | | | | | No need to clear strong pointers in the destuctor. Add explicit exit() command to mOutputCommandThread. Change-Id: I60bb248fe6a20bfd8a55358ef139692b93df0238
* | audio policy: fix typo in AudioPolicyManager constructorEric Laurent2014-05-071-6/+6
|/ | | | | | | Fix cut/paste error in new AudioPolicyManager constructor causing the same index variable to be reused in nested for loops. Change-Id: Id57ff19bf6dd8974486b07c8252029e377df2747
* audio policy: update from libhardware_legacyEric Laurent2014-05-062-108/+349
| | | | | | | | | | | | | 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
* am 71171988: am f655acf1: am 8fb04d47: Merge "Fix memory leak when filtering ↵Eric Laurent2014-05-062-10/+27
| | | | | | | commands in insertCommand_l()" * commit '711719885d7563068579abf347c366cf6bc906f5': Fix memory leak when filtering commands in insertCommand_l()
* Fix the buildEric Laurent2014-03-262-5/+5
| | | | Change-Id: I2169a3d26f4e35e5cfa35a1264175aab6ac4db41
* audio policy: remove obsolete AudioPolicyManager class membersEric Laurent2014-03-262-38/+0
| | | | | | | | | | | 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
* audio policy: use new audio device representationEric Laurent2014-03-262-281/+549
| | | | | | | | | | | | | | | | | | | | 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
* Merge "audio policy: add option to use new policy manager"Eric Laurent2014-03-218-218/+997
|\
| * audio policy: add option to use new policy managerEric Laurent2014-03-188-218/+997
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | am 0c282de7: am 77658a06: Merge "AudioPolicyService: malloc/delete pair"Glenn Kasten2014-03-181-1/+1
|/ | | | | * commit '0c282de73240b1efce64558ab2fa0a8be1f4292b': AudioPolicyService: malloc/delete pair
* audio policy: renamed AudioPolicyManagerBase to AudioPolicyManagerEric Laurent2014-03-112-158/+153
| | | | Change-Id: Ia8b5ae9c3a9cf6ed98f162614ea331efc78e9ff2
* audio policy: remove dependency from AudioSystemLegacyEric Laurent2014-03-113-243/+252
| | | | | | | | 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
* audio policy: import audio policy manager from hardware legacyEric Laurent2014-03-113-0/+4939
| | | | | | | Import AudioPolicyManagerBase from hardware/libhardware_legacy to prepare move from android_audio_legacy name space. Change-Id: I5d6682ccd2bfdeefbf2f6f81a557480a76aaf4fc
* audio policy: split implementationEric Laurent2014-03-114-642/+784
| | | | | | | | | | | | | | | 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
* move audio policy service to a separate libraryEric Laurent2014-03-113-0/+2078
Change-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf