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

Commit 0f413b26 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

Improve AudioPolicyManager dump, Part 3

More compact and consistent representation of AudioTrack/Record
clients and effects.

This allows unified searching of devices and port instances.

Bug: 205884982
Test: Run the command below while playing audio:
      adb shell dumpsys media.audio_policy
Change-Id: Ia5abebad1991942afe1d7fa90da15adb7f95cc8a
parent fcfb516b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -319,7 +319,7 @@ void AudioProfileVector::dump(std::string *dst, int spaces) const
{
    dst->append(base::StringPrintf("%*s- Profiles (%zu):\n", spaces - 2, "", size()));
    for (size_t i = 0; i < size(); i++) {
        const std::string prefix = base::StringPrintf("%*s%zu. ", spaces + 1, "", i + 1);
        const std::string prefix = base::StringPrintf("%*s %zu. ", spaces, "", i + 1);
        dst->append(prefix);
        std::string profileStr;
        at(i)->dump(&profileStr, prefix.size());
+3 −6
Original line number Diff line number Diff line
@@ -110,11 +110,9 @@ status_t DeviceDescriptorBase::setEncapsulationMetadataTypes(uint32_t encapsulat
    return NO_ERROR;
}

void DeviceDescriptorBase::dump(std::string *dst, int spaces, int index,
void DeviceDescriptorBase::dump(std::string *dst, int spaces,
                                const char* extraInfo, bool verbose) const
{
    const std::string prefix = base::StringPrintf("%*s %d. ", spaces, "", index + 1);
    dst->append(prefix);
    if (mId != 0) {
        dst->append(base::StringPrintf("Port ID: %d; ", mId));
    }
@@ -125,11 +123,10 @@ void DeviceDescriptorBase::dump(std::string *dst, int spaces, int index,
                    mDeviceTypeAddr.toString(true /*includeSensitiveInfo*/).c_str()));

    dst->append(base::StringPrintf(
                    "%*sEncapsulation modes: %u, metadata types: %u\n",
                    static_cast<int>(prefix.size()), "",
                    "%*sEncapsulation modes: %u, metadata types: %u\n", spaces, "",
                    mEncapsulationModes, mEncapsulationMetadataTypes));

    AudioPort::dump(dst, prefix.size(), nullptr, verbose);
    AudioPort::dump(dst, spaces, nullptr, verbose);
}

std::string DeviceDescriptorBase::toString(bool includeSensitiveInfo) const
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ public:
    status_t setEncapsulationModes(uint32_t encapsulationModes);
    status_t setEncapsulationMetadataTypes(uint32_t encapsulationMetadataTypes);

    void dump(std::string *dst, int spaces, int index,
    void dump(std::string *dst, int spaces,
              const char* extraInfo = nullptr, bool verbose = true) const;
    void log() const;

+14 −10
Original line number Diff line number Diff line
@@ -16,19 +16,21 @@

#pragma once

#include <vector>
#include <map>
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>

#include <system/audio.h>
#include <map>
#include <vector>

#include <android-base/stringprintf.h>
#include <audiomanager/AudioManager.h>
#include <media/AudioProductStrategy.h>
#include <policy.h>
#include <system/audio.h>
#include <utils/Errors.h>
#include <utils/KeyedVector.h>
#include <utils/RefBase.h>
#include <utils/String8.h>
#include <policy.h>
#include <Volume.h>
#include "AudioPatch.h"
#include "EffectDescriptor.h"
@@ -52,7 +54,7 @@ public:
        mPreferredDeviceForExclusiveUse(isPreferredDeviceForExclusiveUse){}
    ~ClientDescriptor() override = default;

    virtual void dump(String8 *dst, int spaces, int index) const;
    virtual void dump(String8 *dst, int spaces) const;
    virtual std::string toShortString() const;

    audio_port_handle_t portId() const { return mPortId; }
@@ -100,7 +102,7 @@ public:
    ~TrackClientDescriptor() override = default;

    using ClientDescriptor::dump;
    void dump(String8 *dst, int spaces, int index) const override;
    void dump(String8 *dst, int spaces) const override;
    std::string toShortString() const override;

    audio_output_flags_t flags() const { return mFlags; }
@@ -168,7 +170,7 @@ public:
    ~RecordClientDescriptor() override = default;

    using ClientDescriptor::dump;
    void dump(String8 *dst, int spaces, int index) const override;
    void dump(String8 *dst, int spaces) const override;

    audio_unique_id_t riid() const { return mRIId; }
    audio_source_t source() const { return mSource; }
@@ -219,7 +221,7 @@ public:
    void setHwOutput(const sp<HwAudioOutputDescriptor>& hwOutput);

    using ClientDescriptor::dump;
    void dump(String8 *dst, int spaces, int index) const override;
    void dump(String8 *dst, int spaces) const override;

 private:
    audio_patch_handle_t mPatchHandle = AUDIO_PATCH_HANDLE_NONE;
@@ -273,7 +275,9 @@ public:
        (void)extraInfo;
        size_t index = 0;
        for (const auto& client: getClientIterable()) {
            client->dump(dst, spaces, index++);
            const std::string prefix = base::StringPrintf("%*s %zu. ", spaces, "", ++index);
            dst->appendFormat("%s", prefix.c_str());
            client->dump(dst, prefix.size());
        }
    }

+1 −1
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ public:

    void setEncapsulationInfoFromHal(AudioPolicyClientInterface *clientInterface);

    void dump(String8 *dst, int spaces, int index, bool verbose = true) const;
    void dump(String8 *dst, int spaces, bool verbose = true) const;

private:
    template <typename T, std::enable_if_t<std::is_same<T, struct audio_port>::value
Loading