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

Commit 2e5167e1 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

AudioPolicy: Print the actual config file name in the dump

Since the audio policy config file is looked up in many locations,
specify which one we have ended up using.

Simplify rendering of the audio policy state header.

Test: adb shell dumpsys media.audio_policy
Change-Id: I0d410eb697898acf4e4beb2333949b1daf08c92b
parent c08db98c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -48,6 +48,14 @@ public:
          mIsSpeakerDrcEnabled(false)
    {}

    const std::string& getSource() const {
        return mSource;
    }

    void setSource(const std::string& file) {
        mSource = file;
    }

    void setVolumes(const VolumeCurvesCollection &volumes)
    {
        if (mVolumeCurves != nullptr) {
@@ -107,6 +115,7 @@ public:

    void setDefault(void)
    {
        mSource = "AudioPolicyConfig::setDefault";
        mDefaultOutputDevices = new DeviceDescriptor(AUDIO_DEVICE_OUT_SPEAKER);
        sp<HwModule> module;
        sp<DeviceDescriptor> defaultInputDevice = new DeviceDescriptor(AUDIO_DEVICE_IN_BUILTIN_MIC);
@@ -136,6 +145,7 @@ public:
    }

private:
    std::string mSource;
    HwModuleCollection &mHwModules; /**< Collection of Module, with Profiles, i.e. Mix Ports. */
    DeviceVector &mAvailableOutputDevices;
    DeviceVector &mAvailableInputDevices;
+1 −0
Original line number Diff line number Diff line
@@ -412,6 +412,7 @@ status_t ConfigParsingUtils::loadConfig(const char *path, AudioPolicyConfig &con
    free(data);

    ALOGI("loadAudioPolicyConfig() loaded %s\n", path);
    config.setSource(path);

    return NO_ERROR;
}
+15 −32
Original line number Diff line number Diff line
@@ -2570,42 +2570,24 @@ status_t AudioPolicyManager::unregisterPolicyMixes(Vector<AudioMix> mixes)

status_t AudioPolicyManager::dump(int fd)
{
    const size_t SIZE = 256;
    char buffer[SIZE];
    String8 result;

    snprintf(buffer, SIZE, "\nAudioPolicyManager Dump: %p\n", this);
    result.append(buffer);

    snprintf(buffer, SIZE, " Primary Output: %d\n",
    result.appendFormat("\nAudioPolicyManager Dump: %p\n", this);
    result.appendFormat(" Primary Output: %d\n",
             hasPrimaryOutput() ? mPrimaryOutput->mIoHandle : AUDIO_IO_HANDLE_NONE);
    result.append(buffer);
    std::string stateLiteral;
    AudioModeConverter::toString(mEngine->getPhoneState(), stateLiteral);
    snprintf(buffer, SIZE, " Phone state: %s\n", stateLiteral.c_str());
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for communications %d\n",
             mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_COMMUNICATION));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for media %d\n", mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_MEDIA));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for record %d\n", mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_RECORD));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for dock %d\n", mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_DOCK));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for system %d\n", mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_SYSTEM));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for hdmi system audio %d\n",
            mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_HDMI_SYSTEM_AUDIO));
    result.append(buffer);
    snprintf(buffer, SIZE, " Force use for encoded surround output %d\n",
            mEngine->getForceUse(AUDIO_POLICY_FORCE_FOR_ENCODED_SURROUND));
    result.append(buffer);
    snprintf(buffer, SIZE, " TTS output %s\n", mTtsOutputAvailable ? "available" : "not available");
    result.append(buffer);
    snprintf(buffer, SIZE, " Master mono: %s\n", mMasterMono ? "on" : "off");
    result.append(buffer);

    result.appendFormat(" Phone state: %s\n", stateLiteral.c_str());
    const char* forceUses[AUDIO_POLICY_FORCE_USE_CNT] = {
        "communications", "media", "record", "dock", "system",
        "HDMI system audio", "encoded surround output", "vibrate ringing" };
    for (audio_policy_force_use_t i = AUDIO_POLICY_FORCE_FOR_COMMUNICATION;
         i < AUDIO_POLICY_FORCE_USE_CNT; i = (audio_policy_force_use_t)((int)i + 1)) {
        result.appendFormat(" Force use for %s: %d\n",
                forceUses[i], mEngine->getForceUse(i));
    }
    result.appendFormat(" TTS output %savailable\n", mTtsOutputAvailable ? "" : "not ");
    result.appendFormat(" Master mono: %s\n", mMasterMono ? "on" : "off");
    result.appendFormat(" Config source: %s\n", getConfig().getSource().c_str());
    write(fd, result.string(), result.size());

    mAvailableOutputDevices.dump(fd, String8("Available output"));
@@ -3555,6 +3537,7 @@ static status_t deserializeAudioPolicyXmlConfig(AudioPolicyConfig &config) {
                     "%s/%s", kConfigLocationList[i], fileName);
            ret = serializer.deserialize(audioPolicyXmlConfigFile, config);
            if (ret == NO_ERROR) {
                config.setSource(audioPolicyXmlConfigFile);
                return ret;
            }
        }