summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/managerdefault
Commit message (Collapse)AuthorAgeFilesLines
* audio policy: protect capture from telephony RX path.Eric Laurent2015-08-071-0/+2
| | | | | | | | Add permission check if the capture device selected is telephony RX path. Bug: 23017158. Change-Id: Iaa34d836e6cf46b7cbbf2483fcd4306dcd27ce90
* audio policy: populate attributes for attached capture devicesEric Laurent2015-08-061-2/+6
| | | | | | | | | | Populate supported sampling rates, channel masks and formats when enumerating attached build in capture devices. Having this information for build-in mic is important for some applications. Bug: 22729461. Change-Id: I93f03296447a87c10f2615fa1b1c45e9879b4aa7
* Prevent notifications from muting accessibility promptsJean-Michel Trivi2015-07-211-6/+6
| | | | | | | | | | | | | | | When evaluating on which device a sound is to be played, the policy must consider which current routing strategy, if any, has priority for overriding the choice. Here the playback of notifications, when duplicated over speaker and headphones, was causing the accessibility prompt to be muted because the it was of a higher priority, and incompatible with the accessibility routing. The fix consists in assigning a higher priority to the accessbility routing strategy over the notification routing strategy. Bug 18834451 Change-Id: I8228b30a7d80bd61d1c223afb030d9421d4f33cf
* audio: several fixes in audio routing callbacksEric Laurent2015-07-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | - audio policy: Force device change to ensure new audio patch creation upon first track activity on a given output. Fix function device_distinguishes_on_address() which could mistake some output device with remote submix input device. - audio flinger: Reduce number of binder calls upon new client registration by only sending ioConfigChanged() callbacks to newly registered client. Fix first patch after output thread creation not triggering an ioConfigChanged() callback. -audio system: Force client registration upon routing callback installation to force new ioConfigChanged() callback from audio flinger. Bug: 22381136. Change-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4
* audio policy: session route: move SessionRoute to commonFrançois Gaffie2015-07-092-179/+1
| | | | | | | | | | | | Move the SessionRoute and SessionRouteMap inner class from policy manager to common policy pillars as initiated by the refactor. This code was added at teh wrong place by commit aa981194. Bug: 22376521. Change-Id: I29aca21614e409c59aae4b7b14163552fb0bffb1 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* audio policy: fix regression in incall notification managementEric Laurent2015-07-021-2/+5
| | | | | | | | | | | | Commit 2110e04c introduced a regression preventing ongoing alarms to be restored when exiting a call and leaving the replacement tone playing for ever. Also add missing management of accessibility prompts when entering a call. Bug: 21857005. Change-Id: I4295c791c003db42c0fba9f618e51f60438158d1
* audio policy: fix several device descriptor issues.Eric Laurent2015-06-251-3/+11
| | | | | | | | | | | | - checkOutputsForDevice() should only clear device descriptor attributes if the device is digital. - checkInputsForDevice() did not clear device descriptor attributes at all. - AudioPort::clearCapabilities() and importAudioPort() should not manage gains as these are device specific. - importAudioPort() should load a default port config. Bug: 21990937. Change-Id: Ida762ed8f9baaabae392cb4291eff1a8d3009751
* Fixing no rates, chans & encodings on input devices for device enum API.Paul McLean2015-06-192-7/+20
| | | | | | | | | Filtering digital attributes for non-digital audio devices. Bug: 21876072 21903975 Change-Id: Ia5c81a8160f4b4ebf5941dd0c5dfb68d01699ca6
* Merge "audio policy: fix explicit routing and accessibility" into mnc-devEric Laurent2015-06-181-1/+8
|\
| * audio policy: fix explicit routing and accessibilityEric Laurent2015-06-111-1/+8
| | | | | | | | | | | | | | | | | | If a session has an active explicit routing request, this routing must also be applied to accessibility prompts if accessibility usage is currrently remapped to the strategy used by this session. Bug: 20873151. Change-Id: I97c6ece98cf1af9c64c2d2eb1fe382c7c0d657b4
* | audiopolicy: use deep buffer output by default for music streamsRavi Kumar Alamanda2015-06-111-0/+5
|/ | | | | | | | | | | | | | | | | | | | Default disabled. This is enabled by adb shell setprop audio.deep_buffer.media 1 Applications that use AudioTrack java interface for audio rendering defaults to primary output as flags indicated as FLAG_NONE. If the primary output is low latency output, it results higher power consumption than deep-buffer path if used. Make the deep buffer output as default option for music streams if flags are not specified. It may also be used for testing audio glitches from heavy CPU or DRM which may cause issues with the FastMixer. Bug: 21198655 Bug: 21785618 Change-Id: I909c296ddcf4484b9a877ef1c0230ea58537e06a
* audio policy: fix very verbose log build.Eric Laurent2015-06-081-1/+2
| | | | Change-Id: I94a69207059d8010ded14bce5d6e39c3f3074649
* Add property to control audio offload with video contentAndy Hung2015-06-011-2/+3
| | | | | | | Property audio.offload.video normally disabled (set to 1 to enable) Bug: 21198655 Change-Id: Ib1c457b1e3950f18d91b855424aa80bd23c723b0
* Merge "audio policy: add checks on primary output" into mnc-devEric Laurent2015-05-222-30/+47
|\
| * audio policy: add checks on primary outputEric Laurent2015-05-222-30/+47
| | | | | | | | | | | | | | | | | | Check if primary output has been initialized before using it. The primary output may not be initialized either due to HAL failure or on devices without telephony. Bug: 19573336. Change-Id: Id1fc3ed588268e1232b43d1e6235254d2f1a71d0
* | audio policy: fix direct output profile selectionEric Laurent2015-05-191-12/+44
|/ | | | | | | | | | | | | | | | | | Fix logic in AudioPolicyManager::getProfileForDirectOutput() to select the direct output with most matching flags and not just the first compatible one. Also fixes issue 17783395 which was fixed by commit f7bc29b02 in lmp-tv-dev branch only but in a way that caused a regression for HW A/V sync (issue 19384172). Also removed duplicated code lines in getOutputForDevice() Bug: 20819715. Bug: 17783395. Bug: 19384172. Change-Id: I7fc793b37f9b53fabd92cab6b884ef85cfdafee4
* audiopolicy: Use AUDIO_OUTPUT_FLAG_TTS for TTS streamRavi Kumar Alamanda2015-05-111-0/+3
| | | | | | | | Use AUDIO_OUTPUT_FLAG_TTS by default for TTS stream to see if the HW supports a dedicated output for the same. If not, fallback to primary output as it is done currently. Change-Id: Ifb2ef7066e75c61fe4c1b9783c12627386a00ea5
* audio policy: clarify use of mName field for audio devicesEric Laurent2015-05-061-2/+2
| | | | | | | | | | | | The audio port field mName was used for two different purposes which caused a problem when exposing this information at the SDK API. Create a new "mTag" field storing the audio_policy.conf device tag if needed. Field "mName" is now used to store any additional name associated to a given device when available (e.g Manufacturer and model name for a USB device). Change-Id: I17fa872e4a3a2e1b7cbb807c6f72e095a8a2c9c5
* Merge "audio policy: session routes continued." into mnc-devEric Laurent2015-04-302-48/+162
|\
| * audio policy: session routes continued.Eric Laurent2015-04-302-48/+162
| | | | | | | | | | | | | | | | | | | | | | - Clear session routes when client process dies. - Enforce the route only when the requesting session is active. - Fix requested route not working if an output mix change is required (e.g forcing to SPEAKER when the default route is USB or A2DP). - Make sure all sessions sharing the strategy with a rerouted session have the same route (needed for volume control consistency) Change-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1
* | Merge "AudioSystem callback for dynamic policy mix activity" into mnc-devJean-Michel Trivi2015-04-301-2/+2
|\ \ | |/ |/|
| * AudioSystem callback for dynamic policy mix activityJean-Michel Trivi2015-04-291-2/+2
| | | | | | | | | | | | | | | | | | | | Add method to AudioPolicyServiceClient for dynamic policy mix activity notification. Propagate notification to a dedicated callback. Bug 20226914 Change-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876
* | Explicit routing in AudioRecordPaul McLean2015-04-282-47/+127
|/ | | | Change-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5
* Merge "AudioPolicyManager: notification of dynamic policy mix activity (input)"Jean-Michel Trivi2015-04-241-0/+13
|\
| * AudioPolicyManager: notification of dynamic policy mix activity (input)Jean-Michel Trivi2015-04-211-0/+13
| | | | | | | | | | | | | | | | | | Use ref counting on start/stop inputs to notify audio policy client of mix activity changes. Bug 20226914 Change-Id: Ic4f9c91301d0bcbc0ff749acebdc3b2300309c38
* | audio policy: fix AudioTrack output device selectionEric Laurent2015-04-222-11/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Have AudioTrack::setOutputDevice() set CBLK_INVALID flag instead of calling restoreTrack_l(). This allows restoreTrack_l() to be called in a safe context. Allow device change while the AudioTrack is active by forcing a new device selection in startOutput() if the output route for this session was changed. Remove some warnings. Change-Id: I2d921a63c9bfa0e122233645e2d6d39f95f5f17d
* | audio policy: add binder calls for audio source controlEric Laurent2015-04-152-0/+17
|/ | | | | | | Add binder methods to IAudioPolicyService to control activity of external audio sources (e.g FM tuner). Change-Id: I2008308a6a996baeae502b68a790d87281efe2ff
* Enable 8 bit and float pcm record formats for AudioPolicyManagerAndy Hung2015-04-082-31/+51
| | | | | | Add capability for handling different record channel masks. Change-Id: I63f6b029aca5cefff7adf26198a3b594a7ea2d71
* Merge "Fix AudioPolicyManager dynamic policy initialization"Jean-Michel Trivi2015-04-091-3/+3
|\
| * Fix AudioPolicyManager dynamic policy initializationJean-Michel Trivi2015-04-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | AudioPolicyManager::getInputForAttr() is initializing the AudioMix for the new AudioInputDescriptor. The audio policy manager refactoring introduced a regression where the association of an existing AudioMix (registered when the associated AudioPolicy was registered) with the input descriptor copied a value of local scope, instead of referencing the AudioMix in the list of mixes. Bug 20081375 Change-Id: Iddd57fed8525880afd1d4a5493f97130aabe4816
* | audio policy: volume in dBsEric Laurent2015-04-082-15/+16
| | | | | | | | | | | | | | | | | | | | Volumes are now stored and exchanged in dBs to be consistent with the volume tables. They are converted if needed when applied to the target gain controller. Change-Id: I916cbb0bbe65c916444b8c65a2bdca9645c58399
* | audio policy: volume control reorganizationEric Laurent2015-04-082-255/+279
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Output volume and routing control by AudioOutputDescriptor is reorganized to prepare hardware source volume and routing control. AudioOutputDescriptor contains all volume, device and activity state common to software (audio flinger mixers) and hardware sources (tuners, A2DP, HDMI). A new class SwAudioOutputDescriptor is derived from AudioOutputDescriptor and is specific to software sources. Low level routing and volume control methods receive an AudioOutputDescriptor parameter instead of an IO handle. mPrimaryOutput is now an AudioOutputDescriptor. Change-Id: Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf
* | audio flinger: improve device to device audio patchesEric Laurent2015-04-081-2/+9
| | | | | | | | | | | | | | Allow creation of audio patches between input and output devices managed by the same audio HW module. Change-Id: I4b83268a4d5c41f3d5905d7581202cf5193efd32
* | audio policy: fix unique audio port ID.Eric Laurent2015-04-081-14/+16
| | | | | | | | | | | | | | | | | | | | | | | | Remove mId member from AudioPort as it was shadowed by mId in DeviceDescriptor. Add getters for Id, and HW module name and version to device, output and input descriptors. Fix DeviceDescriptor name initialization. Change-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1
* | Adding explicit routing API to AudioTrackPaul McLean2015-04-082-10/+155
|/ | | | Change-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc
* Updates to AudioPolicyManager refactorJean-Michel Trivi2015-04-012-8/+13
| | | | | | | | | | | | | | | | Use protected access in AudioPolicyManager class for - engine field - querying phone state - isStrategyActive Fix inclusion of AudioPolicyManagerInterface header. Use "APM_" prefix in audio policy conf parsing code to avoid naming conflicts with some HALs. DeviceDescriptor and its collection class are good friends now. Change-Id: I236d62a2b8a4b6bf68dd515932650b912577c145
* Split ManagerDefault into manager and engineFrançois Gaffie2015-04-012-659/+160
| | | | | | | | | | | This patch defines an interface for a new component: policy engine. The APIs found under this interface are the one we may want to customize and to configure easily. This patch also split the current manager code into manager and engine to provide a default version of the policy engine. Change-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Create StreamDescriptor and associated collection within commonFrançois Gaffie2015-04-012-53/+44
| | | | | | | | | | | Create StreamDescriptor and associated collection within common common policy pillar elements. It moves the code from managerdefault and creates helpers function within the collection. It also split the AudioGain in a common volume header and AudioGain class. Change-Id: I1bb80e4219506f8c9042367085db328d317cb668 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Create SoundTriggerSession and associated collection within commonFrançois Gaffie2015-04-012-17/+7
| | | | | | | | | | This patch creates a SoundTriggerSession and associated collection within common policy pillar elements. It moves the code from managerdefault and creates helpers function within the collection. Change-Id: I83ea230573c05e8ab99f4489c20059ed27678221 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Add EffectDescriptor and associated collection to common elementsFrançois Gaffie2015-04-012-180/+23
| | | | | | | | | | | | This patch adds EffectDescriptor and associated collection to common policy pillar elements. It moves the code from the policy manager and creates helpers function in the collection. It also factorize the RoutingStrategy structure within a separated header file. Change-Id: I29964ff77564fadedf3237c8754240b21ae77297 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Add AudioMix and AudioMixCollection to common policy elementFrançois Gaffie2015-04-012-102/+32
| | | | | | | | | | This patch adds AudioMix and associated collection to the common policy pillar elements library. It removes the code from the manager and creates also helpers function associated to the mix collection. Change-Id: Ia3536fdef09da13734d2895030d736c701040237 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Migrate helper functions from managerdefault to commonFrançois Gaffie2015-04-012-610/+158
| | | | | | | | | | | | | | | This patch moves from manager to common: -parse helper functions of the policy configuration file -collection helper function on -output / input descriptors -DeviceDescriptor -AudioPatch / Audio Port -IO Profile -HwModule Change-Id: If45e53418db75af1af198f43c4ef27884499055f Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Split ManagerDefault into Manager and ManagerDefinitionsFrançois Gaffie2015-04-0120-3348/+16
| | | | | | | | | | | | This patch splits the managerdefault into a manager and a manager defintion library that contains all pillar elements of a policy manager. It renames the file with the name of the main class they contains. It splits the AudioPort into AudioPort and AudioPatch. Change-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Audio Policy Refactor: reorganise headers inclusionFrançois Gaffie2015-04-0120-58/+159
| | | | | | | | | | | | This patch reoganises the headers inclusion in order to prepare the split of managerdefault into a manager and a separated lib of pillar policy elements. It also moves back the isStrategyActive to the manager to avoid any dependancies from this pillars to the manager. Change-Id: I1a35c45d86db7a3878a40dc7d6858dfea37c5ac9 Signed-off-by: François Gaffie <francois.gaffie@intel.com>
* Merge "audio policy: fix IOProfile::isCompatibleProfile()"Eric Laurent2015-03-302-3/+11
|\
| * audio policy: fix IOProfile::isCompatibleProfile()Eric Laurent2015-03-302-3/+11
| | | | | | | | | | | | | | | | | | | | | | Handle composite devices in IOProfile::isCompatibleProfile() by just checking the type in this case, not the address which is relevant only if a single device type is passed as input. Also remove warning. Bug: 19762960. Change-Id: Iaecb7fcfbf7ad39b1e33cb460922f7c069a34a00
* | audio policy: fix DeviceVector::getDevicesFromType()Eric Laurent2015-03-261-2/+6
|/ | | | | | | | Fix device type comparison in DeviceVector::getDevicesFromType(): AUDIO_DEVICE_BIT_IN bit must be excluded from type comparison and used as an orthogonal match criterium. Change-Id: Ie7378723f5a3d613b1b045ccdda69650a9d655fc
* Merge "Remove mId from DeviceDescriptor."Rakesh Iyer2015-03-161-1/+0
|\
| * Remove mId from DeviceDescriptor.Rakesh Iyer2015-03-131-1/+0
| | | | | | | | | | | | | | | | | | | | DeviceDescriptor inherits from AudioPort which has the correct handle mId. The mId in DeviceDescriptor shadows this so calls like DeviceVector::getDeviceFromId() findDeviceById fail because they are looking at the wrong mId. The failure itself manifested as createAudioPatch failing. Change-Id: I8dd012d0678facaac84844b92226cc4b788abece
* | Fix warning while building mediaserverGlenn Kasten2015-03-091-0/+2
|/ | | | | | | | | | | | | | | | In file included from frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.h:31:0, from frameworks/av/services/audiopolicy/service/AudioPolicyService.h:38, from frameworks/av/media/mediaserver/main_mediaserver.cpp:36: frameworks/av/services/audiopolicy/managerdefault/ConfigParsingUtils.h:29:0: warning: "ARRAY_SIZE" redefined #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) ^ In file included from frameworks/av/media/libmediaplayerservice/MediaPlayerService.h:31:0, from frameworks/av/media/mediaserver/main_mediaserver.cpp:35: frameworks/av/include/media/stagefright/foundation/ABase.h:21:0: note: this is the location of the previous definition #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a))) ^ Change-Id: I4b80f783c592a78aa88b3dad297278353740466e