OSDN Git Service

audioflinger: first patch panel implementation.
authorEric Laurent <elaurent@google.com>
Tue, 20 May 2014 17:48:17 +0000 (10:48 -0700)
committerEric Laurent <elaurent@google.com>
Tue, 27 May 2014 17:53:51 +0000 (10:53 -0700)
commit1c333e252cbca3337c1bedbc57a005f3b7d23fdb
tree327f985a0db89dad8fc742baf5b198c3b78c429b
parent4b123406c10c17852734a1b691bb9ce2a4cb7caf
audioflinger: first patch panel implementation.

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
13 files changed:
services/audioflinger/Android.mk
services/audioflinger/AudioFlinger.cpp
services/audioflinger/AudioFlinger.h
services/audioflinger/PatchPanel.cpp [new file with mode: 0644]
services/audioflinger/PatchPanel.h [new file with mode: 0644]
services/audioflinger/Threads.cpp
services/audioflinger/Threads.h
services/audiopolicy/AudioPolicyClientImpl.cpp
services/audiopolicy/AudioPolicyInterface.h
services/audiopolicy/AudioPolicyManager.cpp
services/audiopolicy/AudioPolicyManager.h
services/audiopolicy/AudioPolicyService.cpp
services/audiopolicy/AudioPolicyService.h