diff options
Diffstat (limited to 'libaudio/AudioPolicyManager.cpp')
-rw-r--r-- | libaudio/AudioPolicyManager.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libaudio/AudioPolicyManager.cpp b/libaudio/AudioPolicyManager.cpp index 41c0fd0..93d70d8 100644 --- a/libaudio/AudioPolicyManager.cpp +++ b/libaudio/AudioPolicyManager.cpp @@ -42,4 +42,33 @@ extern "C" void destroyAudioPolicyManager(AudioPolicyInterface *interface) delete interface; } + +status_t AudioPolicyManager::startInput(audio_io_handle_t input) +{ + status_t status = AudioPolicyManagerBase::startInput(input); + + if (status == NO_ERROR) { + AudioInputDescriptor *inputDesc = mInputs.valueFor(input); + String8 key = String8("Input Source"); + String8 value; + switch(inputDesc->mInputSource) { + case AUDIO_SOURCE_VOICE_RECOGNITION: + value = String8("Voice Recognition"); + break; + case AUDIO_SOURCE_CAMCORDER: + value = String8("Camcorder"); + break; + case AUDIO_SOURCE_DEFAULT: + case AUDIO_SOURCE_MIC: + value = String8("Default"); + default: + break; + } + AudioParameter param = AudioParameter(); + param.add(key, value); + mpClientInterface->setParameters(input, param.toString()); + } + return status; +} + }; // namespace android |