Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56ecd202 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

Add support for audio recording source in generic audio policy mgr.

Update the platform-independent audio policy manager to pass the
 nature of the audio recording source to the audio policy client
 interface through the AudioPolicyClientInterface::setParameters()
 method.

Change-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf
parent 54f5501a
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -472,7 +472,7 @@ public:
    AudioParameter(const String8& keyValuePairs);
    AudioParameter(const String8& keyValuePairs);
    virtual ~AudioParameter();
    virtual ~AudioParameter();


    // reserved parameter keys for changeing standard parameters with setParameters() function.
    // reserved parameter keys for changing standard parameters with setParameters() function.
    // Using these keys is mandatory for AudioFlinger to properly monitor audio output/input
    // Using these keys is mandatory for AudioFlinger to properly monitor audio output/input
    // configuration changes and act accordingly.
    // configuration changes and act accordingly.
    //  keyRouting: to change audio routing, value is an int in AudioSystem::audio_devices
    //  keyRouting: to change audio routing, value is an int in AudioSystem::audio_devices
@@ -480,11 +480,14 @@ public:
    //  keyFormat: to change audio format, value is an int in AudioSystem::audio_format
    //  keyFormat: to change audio format, value is an int in AudioSystem::audio_format
    //  keyChannels: to change audio channel configuration, value is an int in AudioSystem::audio_channels
    //  keyChannels: to change audio channel configuration, value is an int in AudioSystem::audio_channels
    //  keyFrameCount: to change audio output frame count, value is an int
    //  keyFrameCount: to change audio output frame count, value is an int
    //  keyInputSource: to change audio input source, value is an int in audio_source
    //     (defined in media/mediarecorder.h)
    static const char *keyRouting;
    static const char *keyRouting;
    static const char *keySamplingRate;
    static const char *keySamplingRate;
    static const char *keyFormat;
    static const char *keyFormat;
    static const char *keyChannels;
    static const char *keyChannels;
    static const char *keyFrameCount;
    static const char *keyFrameCount;
    static const char *keyInputSource;


    String8 toString();
    String8 toString();


+1 −0
Original line number Original line Diff line number Diff line
@@ -835,6 +835,7 @@ const char *AudioParameter::keySamplingRate = "sampling_rate";
const char *AudioParameter::keyFormat = "format";
const char *AudioParameter::keyFormat = "format";
const char *AudioParameter::keyChannels = "channels";
const char *AudioParameter::keyChannels = "channels";
const char *AudioParameter::keyFrameCount = "frame_count";
const char *AudioParameter::keyFrameCount = "frame_count";
const char *AudioParameter::keyInputSource = "input_source";


AudioParameter::AudioParameter(const String8& keyValuePairs)
AudioParameter::AudioParameter(const String8& keyValuePairs)
{
{
+2 −4
Original line number Original line Diff line number Diff line
@@ -760,10 +760,8 @@ status_t AudioPolicyManagerBase::startInput(audio_io_handle_t input)
    AudioParameter param = AudioParameter();
    AudioParameter param = AudioParameter();
    param.addInt(String8(AudioParameter::keyRouting), (int)inputDesc->mDevice);
    param.addInt(String8(AudioParameter::keyRouting), (int)inputDesc->mDevice);


    // use Voice Recognition mode or not for this input based on input source
    param.addInt(String8(AudioParameter::keyInputSource), (int)inputDesc->mInputSource);
    int vr_enabled = inputDesc->mInputSource == AUDIO_SOURCE_VOICE_RECOGNITION ? 1 : 0;
    LOGV("AudioPolicyManager::startInput() input source = %d", inputDesc->mInputSource);
    param.addInt(String8("vr_mode"), vr_enabled);
    LOGV("AudioPolicyManager::startInput(%d), setting vr_mode to %d", inputDesc->mInputSource, vr_enabled);


    mpClientInterface->setParameters(input, param.toString());
    mpClientInterface->setParameters(input, param.toString());