summaryrefslogtreecommitdiffstats
path: root/services/audiopolicy/AudioPolicyService.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge commit 'f5a968a0' into mmGlenn Kasten2014-12-101-0/+3
|\ | | | | | | Change-Id: Ifd30546c11def40ad483f27c9d7baa4008fcbac3
| * audio policy: binder calls for dynamic audio policy mixesEric Laurent2014-12-091-0/+3
| | | | | | | | | | | | | | | | | | Add binder calls to register and unregister dynamic mixes to AudioPolicyManager. Bug: 16009464. Change-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac
* | am 390ef843: am f20c4356: Merge "AudioRecord: use audio attributes instead ↵Eric Laurent2014-11-271-6/+7
|\ \ | |/ | | | | | | | | | | of audio source." into lmp-mr1-dev * commit '390ef84373b7edd1397381f780ca235326357094': AudioRecord: use audio attributes instead of audio source.
| * AudioRecord: use audio attributes instead of audio source.Eric Laurent2014-11-251-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added AudioRecord constructor with audio attributes. Replaced AudioPolicymanager::getInput() by getInputForAttr(). No new functionality for now. Also: - Fixed warnings in AudioPolicyManager - Allocate audio session ID before calling getOutputForAttr() in AudioTrack. Bug: 16006090. Change-Id: I15df21e4411db688e3096dd801cf579d76d81711
* | am bf14c62e: am 72bf901c: Merge "audio policy: new getOutputForAttr() ↵Eric Laurent2014-11-261-15/+26
|\ \ | |/ | | | | | | | | | | prototype." into lmp-mr1-dev * commit 'bf14c62e7973ed793a3b00c2c67beca4484c1c7a': audio policy: new getOutputForAttr() prototype.
| * audio policy: new getOutputForAttr() prototype.Eric Laurent2014-11-251-15/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update getOutputForAttr() prototype and group all logic dealing with audio attributes to stream type conversion in audio policy manager. getOutputForAttr(): - specifies the audio session (for future use) - returns a status code - receives either stream type (for legacy) or audio attributes - returns an updated streamtype Remove logic dealing with legacy stream types to attributes conversion from AudioTrack. Use correct type for audio sessions in other APIs (startOutput() ...). releaseOutput() specifies the audio session (for future use). Bug: 18067208. Change-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817
* | am 568689b1: am 3a2a32b5: Merge "AudioSystem: fix cross deadlock" into ↵Eric Laurent2014-11-211-1/+1
|\ \ | |/ | | | | | | | | | | lmp-mr1-dev * commit '568689b169d8b0ae2cc252b88602db5e5acaa604': AudioSystem: fix cross deadlock
| * AudioSystem: fix cross deadlockEric Laurent2014-11-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Do not hold gLockAPS when calling AudioPolicyService::registerClient() in get_audio_policy_service(). registerClient() will need to acquire the AudioPolicyService mutex and if at the same time a method called from AudioPolicyService (with mutex held) calls back into AudioSystem and get_audio_policy_service() a cross deadlock occurs. Same preventive fix for get_audio_flinger(). Use a separate mutex for notification client list in AudioPolicyService. This prevents deadlocking if registerClient() is called as a consequence of AudioFlinger calling back into AudioPolicyManager while executing a method with AudioPolicyService locked Bug: 18403952. Bug: 18450065. Change-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5
* | Include AudioPolicyInterface.h only when needed.Chih-Hung Hsieh2014-11-141-0/+2
|/ | | | | | | | | | Both legacy and non-legacy AudioPolicyInterface define extern "C" functions createAudioPloicyManager and destroyAudioPloicyManager. Standard C++ does not allow overloading of extern C functions. g++ did not catch this problem but clang++ does. Change-Id: I80869cdb26e7721777e53d4eff71c5c733044abf
* audio policy: move intializations to onFirstRef()Eric Laurent2014-10-101-0/+3
| | | | | | Bug: 17896324. Change-Id: I3bb74f5397142ac354bd815eb362e5ddacdcb463
* audio: fix stream type for accessibility usageEric Laurent2014-09-251-0/+3
| | | | | | | | | Make sure that accessibility prompts are heard when a ringtone is active by forcing stream type to AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE. Bug: 17558149. Change-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628
* Add sound trigger control by audio policyEric Laurent2014-08-051-0/+6
| | | | | | | | | | | | | | | | | Audio policy: - Added active capture indication to sound trigger service: recognition stops if concurrent capture is not supported. - Added generation of reserved I/O handle and session ID for utterance capture. Sound trigger service - Added sound model update callback handling. - Added service state callback - Simplified callback shared memory allocation. Bug: 12378680. Change-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1
* audio policy: pass session ID to capture activity methodsEric Laurent2014-07-281-3/+6
| | | | | | | | Indicate the audio session ID when calling getInput(), startInput(), stopInput(), releaseInput(). Bug: 12378680. Change-Id: I763793752f93e2f4e1445a5ab217c895af011038
* rename AudioSystem::newAudioSessionId()Eric Laurent2014-07-281-0/+2
| | | | | | | | | Rename AudioSystem::newAudioSessionId() to AudioSystem::newAudioUniqueId() as it can be used also for I/O handles. Bug: 12378680. Change-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2
* AudioFlinger: update openInput() and openOutput()Eric Laurent2014-07-281-12/+12
| | | | | | | | | | Add parameters to openInput() and openOutput(): device address, input source. Allow caller to specify a given I/O handle Group parameters in a struct audio_config. Bug: 12378680. Change-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025
* Remove execute bitGlenn Kasten2014-07-211-0/+0
| | | | Change-Id: I1cf0c0d9375779b3074af12f4cbf9c1ec07bf4ff
* Add audio_input_flags_t to IAudioPolicyService::getInputGlenn Kasten2014-07-171-4/+5
| | | | Change-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170
* Add audio_input_flags_t to IAudioFlinger::openInputGlenn Kasten2014-07-171-1/+2
| | | | | | | For backward compatibility, until flags are correctly calculated, we will assume that the request is for a low latency input stream. Change-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95
* frameworks: av: services: audiopolicy: Added AudioPolicyEffectsbryant_liu2014-07-011-77/+5
| | | | | | Manage pre- and postprocessing effects defined in audio_effects.conf Change-Id: Idea1478e3d434f8ff66907adb3c77663db78d583
* AudioPolicyManager: return output for audio attributesJean-Michel Trivi2014-06-181-0/+6
| | | | | | | | | | In AudioPolicyManager, support querying an output or playback strategy for audio attributes, instead of a stream type, In AudioTrack creation, use the output returned for the track's attributes. Change-Id: I0fef05845ba676404775e2e338c10e6a96237268
* audio policy: use factory to create audio policy managerEric Laurent2014-06-101-1/+1
| | | | | | | | Use the class factory to create the audio policy mamager instead of AudioPolicyManager class constructor and use a pointer to an AudioPolicyInterface. Change-Id: Ibb5a8eee5d597db67cf13f279c909181cfee9949
* audio policy: add audio port gain controlEric Laurent2014-05-301-2/+15
| | | | | | | | | | Implement setAudioPortConfig() API to configure an audio port. Currently limited to gain control. Bug: 14815883. Change-Id: Ic1b268e5ba5c277e9f5b8fa63c81dd7c0b250024
* audio policy: add routing update client interfaceEric Laurent2014-05-291-0/+39
| | | | | | | | | | | | | Added IAudioPolicyServiceClient client binder interface for client process to receive notifications from AudioPolicyService when audio ports are added/removed or audio patches created/released. The audio patches owned by a given client are automatically released when this client binder dies. Bug: 14815883. Change-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5
* DO NOT MERGE - IAudioPolicyService interface extension for patch panelEric Laurent2014-05-281-0/+14
| | | | Change-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1
* DO NOT MERGE - audioflinger: first patch panel implementation.Eric Laurent2014-05-281-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* audiopolicy: refactor audio command threadsEric Laurent2014-05-121-8/+9
| | | | | | | | | | | - 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
* am 71171988: am f655acf1: am 8fb04d47: Merge "Fix memory leak when filtering ↵Eric Laurent2014-05-061-7/+16
| | | | | | | commands in insertCommand_l()" * commit '711719885d7563068579abf347c366cf6bc906f5': Fix memory leak when filtering commands in insertCommand_l()
* audio policy: add option to use new policy managerEric Laurent2014-03-181-1/+90
| | | | | | | | | | | | | | | | | 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
* move audio policy service to a separate libraryEric Laurent2014-03-111-0/+353
Change-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf