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

Commit 692ecc04 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "AidlUtils: update AUGMENT_LOG to support variable arguments" into main...

Merge "AidlUtils: update AUGMENT_LOG to support variable arguments" into main am: 28492108 am: 6bd9848a

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/3233663



Change-Id: I0f85dba4af3e804c9fe43bd39f53343ebbd1a381
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 429b4e32 6bd9848a
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -25,32 +25,6 @@

namespace android {

/*
 * Helper macro to add instance name, function name in logs
 * classes should provide getInstanceName and getClassName API to use these macros.
 * print function names along with instance name.
 *
 * Usage:
 *  AUGMENT_LOG(I, "hello!");
 *  AUGMENT_LOG(W, "value: %d", value);
 *
 * AUGMENT_LOG_IF(D, value < 0, "negative");
 * AUGMENT_LOG_IF(E, value < 0, "bad value: %d", value);
 */

#define AUGMENT_LOG(level, ...)                                                              \
    ALOG##level("[%s] %s: " __android_second(0, __VA_ARGS__, ""), getInstanceName().c_str(), \
                __func__ __android_rest(__VA_ARGS__))

#define AUGMENT_LOG_IF(level, cond, ...)                                     \
    ALOG##level##_IF(cond, "[%s] %s: " __android_second(0, __VA_ARGS__, ""), \
                     getInstanceName().c_str(), __func__ __android_rest(__VA_ARGS__))
// Used to register an entry into the function
#define LOG_ENTRY() ALOGD("[%s] %s", getInstanceName().c_str(), __func__)

// entry logging as verbose level
#define LOG_ENTRY_V() ALOGV("[%s] %s", getInstanceName().c_str(), __func__)

class HalDeathHandler {
  public:
    static HalDeathHandler& getInstance();
+22 −0
Original line number Diff line number Diff line
@@ -32,6 +32,28 @@

namespace android {

/*
 * Helper macro to add instance name, function name in logs
 * classes should provide getInstanceName API to use these macros.
 * print function names along with instance name.
 *
 * Usage:
 *  AUGMENT_LOG(D);
 *  AUGMENT_LOG(I, "hello!");
 *  AUGMENT_LOG(W, "value: %d", value);
 *
 *  AUGMENT_LOG_IF(D, value < 0, "negative");
 *  AUGMENT_LOG_IF(E, value < 0, "bad value: %d", value);
 */

#define AUGMENT_LOG(level, ...)                                                  \
    ALOG##level("[%s] %s" __VA_OPT__(": " __android_second(0, __VA_ARGS__, "")), \
                getInstanceName().c_str(), __func__ __VA_OPT__(__android_rest(__VA_ARGS__)))

#define AUGMENT_LOG_IF(level, cond, ...)                                                    \
    ALOG##level##_IF(cond, "[%s] %s" __VA_OPT__(": " __android_second(0, __VA_ARGS__, "")), \
                     getInstanceName().c_str(), __func__ __VA_OPT__(__android_rest(__VA_ARGS__)))

class Args {
  public:
    explicit Args(const Vector<String16>& args)
+25 −24
Original line number Diff line number Diff line
@@ -141,7 +141,7 @@ status_t DeviceHalAidl::getAudioRoutes(std::vector<media::AudioRoute> *routes) {
}

status_t DeviceHalAidl::getSupportedModes(std::vector<media::audio::common::AudioMode> *modes) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    RETURN_IF_TELEPHONY_NOT_INIT(INVALID_OPERATION);
@@ -165,7 +165,7 @@ status_t DeviceHalAidl::getSupportedDevices(uint32_t*) {
}

status_t DeviceHalAidl::initCheck() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    std::lock_guard l(mLock);
@@ -197,7 +197,7 @@ status_t DeviceHalAidl::setMasterVolume(float volume) {
}

status_t DeviceHalAidl::getMasterVolume(float *volume) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (volume == nullptr) {
@@ -228,7 +228,7 @@ status_t DeviceHalAidl::setMicMute(bool state) {
}

status_t DeviceHalAidl::getMicMute(bool *state) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -248,7 +248,7 @@ status_t DeviceHalAidl::setMasterMute(bool state) {
}

status_t DeviceHalAidl::getMasterMute(bool *state) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -307,7 +307,7 @@ status_t DeviceHalAidl::getParameters(const String8& keys, String8 *values) {
}

status_t DeviceHalAidl::getInputBufferSize(struct audio_config* config, size_t* size) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -463,6 +463,7 @@ status_t DeviceHalAidl::openOutputStream(
        sp<StreamOutHalInterface>* outStream,
        const std::vector<playback_track_metadata_v7_t>& sourceMetadata) {
    AUGMENT_LOG(D, "handle: %d devices %0x flags %0x", handle, devices, flags);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (outStream == nullptr || config == nullptr) {
@@ -612,7 +613,7 @@ status_t DeviceHalAidl::openInputStream(
}

status_t DeviceHalAidl::supportsAudioPatches(bool* supportsPatches) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (supportsPatches == nullptr) {
        AUGMENT_LOG(E, "uninitialized supportsPatches");
@@ -728,7 +729,7 @@ status_t DeviceHalAidl::releaseAudioPatch(audio_patch_handle_t patch) {
}

status_t DeviceHalAidl::getAudioPort(struct audio_port* port) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (port == nullptr) {
        AUGMENT_LOG(E, "port not initialized");
@@ -741,7 +742,7 @@ status_t DeviceHalAidl::getAudioPort(struct audio_port* port) {
}

status_t DeviceHalAidl::getAudioPort(struct audio_port_v7 *port) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -773,7 +774,7 @@ status_t DeviceHalAidl::getAudioPort(struct audio_port_v7 *port) {

status_t DeviceHalAidl::getAudioMixPort(const struct audio_port_v7 *devicePort,
                                        struct audio_port_v7 *mixPort) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);

@@ -797,7 +798,7 @@ status_t DeviceHalAidl::getAudioMixPort(const struct audio_port_v7 *devicePort,
}

status_t DeviceHalAidl::setAudioPortConfig(const struct audio_port_config* config) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -816,7 +817,7 @@ status_t DeviceHalAidl::setAudioPortConfig(const struct audio_port_config* confi
}

MicrophoneInfoProvider::Info const* DeviceHalAidl::getMicrophoneInfo() {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT({});
@@ -843,7 +844,7 @@ MicrophoneInfoProvider::Info const* DeviceHalAidl::getMicrophoneInfo() {

status_t DeviceHalAidl::getMicrophones(
        std::vector<audio_microphone_characteristic_t>* microphones) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -867,7 +868,7 @@ status_t DeviceHalAidl::getMicrophones(

status_t DeviceHalAidl::addDeviceEffect(
        const struct audio_port_config *device, sp<EffectHalInterface> effect) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -900,7 +901,7 @@ status_t DeviceHalAidl::addDeviceEffect(
}
status_t DeviceHalAidl::removeDeviceEffect(
        const struct audio_port_config *device, sp<EffectHalInterface> effect) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (device == nullptr || effect == nullptr) {
@@ -932,7 +933,7 @@ status_t DeviceHalAidl::removeDeviceEffect(
status_t DeviceHalAidl::getMmapPolicyInfos(
        media::audio::common::AudioMMapPolicyType policyType,
        std::vector<media::audio::common::AudioMMapPolicyInfo>* policyInfos) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -954,7 +955,7 @@ status_t DeviceHalAidl::getMmapPolicyInfos(
}

int32_t DeviceHalAidl::getAAudioMixerBurstCount() {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -966,7 +967,7 @@ int32_t DeviceHalAidl::getAAudioMixerBurstCount() {
}

int32_t DeviceHalAidl::getAAudioHardwareBurstMinUsec() {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -978,7 +979,7 @@ int32_t DeviceHalAidl::getAAudioHardwareBurstMinUsec() {
}

error::Result<audio_hw_sync_t> DeviceHalAidl::getHwAvSync() {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -997,7 +998,7 @@ status_t DeviceHalAidl::dump(int fd, const Vector<String16>& args) {
}

status_t DeviceHalAidl::supportsBluetoothVariableLatency(bool* supports) {
    LOG_ENTRY();
    AUGMENT_LOG(D);

    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
@@ -1009,7 +1010,7 @@ status_t DeviceHalAidl::supportsBluetoothVariableLatency(bool* supports) {

status_t DeviceHalAidl::getSoundDoseInterface([[maybe_unused]] const std::string& module,
                                              ::ndk::SpAIBinder* soundDoseBinder) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);

    if (soundDoseBinder == nullptr) {
@@ -1031,7 +1032,7 @@ status_t DeviceHalAidl::getSoundDoseInterface([[maybe_unused]] const std::string
}

status_t DeviceHalAidl::prepareToDisconnectExternalDevice(const struct audio_port_v7* port) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (port == nullptr) {
@@ -1070,7 +1071,7 @@ status_t DeviceHalAidl::prepareToDisconnectExternalDevice(const struct audio_por
}

status_t DeviceHalAidl::setConnectedState(const struct audio_port_v7 *port, bool connected) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    if (port == nullptr) {
@@ -1102,7 +1103,7 @@ status_t DeviceHalAidl::setConnectedState(const struct audio_port_v7 *port, bool
}

status_t DeviceHalAidl::setSimulateDeviceConnections(bool enabled) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    TIME_CHECK();
    RETURN_IF_MODULE_NOT_INIT(NO_INIT);
    {
+26 −26
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ StreamHalAidl::StreamHalAidl(std::string_view className, bool isInput, const aud
                           mContext.getBufferDurationMs(mConfig.sample_rate))
                  * NANOS_PER_MILLISECOND)
{
    LOG_ENTRY();
    AUGMENT_LOG(D);
    {
        std::lock_guard l(mLock);
        mLastReply.latencyMs = nominalLatency;
@@ -106,7 +106,7 @@ StreamHalAidl::StreamHalAidl(std::string_view className, bool isInput, const aud
}

StreamHalAidl::~StreamHalAidl() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    if (mStream != nullptr) {
        ndk::ScopedAStatus status = mStream->close();
        AUGMENT_LOG_IF(E, !status.isOk(), "status %s", status.getDescription().c_str());
@@ -114,7 +114,7 @@ StreamHalAidl::~StreamHalAidl() {
}

status_t StreamHalAidl::getBufferSize(size_t *size) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    if (size == nullptr) {
        return BAD_VALUE;
    }
@@ -128,7 +128,7 @@ status_t StreamHalAidl::getBufferSize(size_t *size) {
}

status_t StreamHalAidl::getAudioProperties(audio_config_base_t *configBase) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    if (configBase == nullptr) {
        return BAD_VALUE;
    }
@@ -138,7 +138,7 @@ status_t StreamHalAidl::getAudioProperties(audio_config_base_t *configBase) {
}

status_t StreamHalAidl::setParameters(const String8& kvPairs) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    AudioParameter parameters(kvPairs);
@@ -153,7 +153,7 @@ status_t StreamHalAidl::setParameters(const String8& kvPairs) {
}

status_t StreamHalAidl::getParameters(const String8& keys __unused, String8 *values) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (values == nullptr) {
@@ -165,7 +165,7 @@ status_t StreamHalAidl::getParameters(const String8& keys __unused, String8 *val
}

status_t StreamHalAidl::getFrameSize(size_t *size) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    if (size == nullptr) {
        return BAD_VALUE;
    }
@@ -177,7 +177,7 @@ status_t StreamHalAidl::getFrameSize(size_t *size) {
}

status_t StreamHalAidl::addEffect(sp<EffectHalInterface> effect) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (effect == nullptr) {
@@ -188,7 +188,7 @@ status_t StreamHalAidl::addEffect(sp<EffectHalInterface> effect) {
}

status_t StreamHalAidl::removeEffect(sp<EffectHalInterface> effect) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (effect == nullptr) {
@@ -199,7 +199,7 @@ status_t StreamHalAidl::removeEffect(sp<EffectHalInterface> effect) {
}

status_t StreamHalAidl::standby() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    const auto state = getState();
@@ -247,7 +247,7 @@ status_t StreamHalAidl::standby() {
}

status_t StreamHalAidl::dump(int fd, const Vector<String16>& args) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    Vector<String16> newArgs = args;
@@ -258,7 +258,7 @@ status_t StreamHalAidl::dump(int fd, const Vector<String16>& args) {
}

status_t StreamHalAidl::start() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (!mContext.isMmapped()) {
@@ -304,7 +304,7 @@ status_t StreamHalAidl::start() {
}

status_t StreamHalAidl::stop() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (!mContext.isMmapped()) {
@@ -329,7 +329,7 @@ status_t StreamHalAidl::stop() {
}

status_t StreamHalAidl::getLatency(uint32_t *latency) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    if (!mStream) return NO_INIT;
    StreamDescriptor::Reply reply;
    RETURN_STATUS_IF_ERROR(updateCountersIfNeeded(&reply));
@@ -342,7 +342,7 @@ status_t StreamHalAidl::getLatency(uint32_t *latency) {

status_t StreamHalAidl::getObservablePosition(int64_t* frames, int64_t* timestamp,
        StatePositions* statePositions) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    if (!mStream) return NO_INIT;
    StreamDescriptor::Reply reply;
    RETURN_STATUS_IF_ERROR(updateCountersIfNeeded(&reply, statePositions));
@@ -352,7 +352,7 @@ status_t StreamHalAidl::getObservablePosition(int64_t* frames, int64_t* timestam
}

status_t StreamHalAidl::getHardwarePosition(int64_t *frames, int64_t *timestamp) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    if (!mStream) return NO_INIT;
    StreamDescriptor::Reply reply;
    RETURN_STATUS_IF_ERROR(updateCountersIfNeeded(&reply));
@@ -362,7 +362,7 @@ status_t StreamHalAidl::getHardwarePosition(int64_t *frames, int64_t *timestamp)
}

status_t StreamHalAidl::getXruns(int32_t *frames) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    if (!mStream) return NO_INIT;
    StreamDescriptor::Reply reply;
    RETURN_STATUS_IF_ERROR(updateCountersIfNeeded(&reply));
@@ -371,7 +371,7 @@ status_t StreamHalAidl::getXruns(int32_t *frames) {
}

status_t StreamHalAidl::transfer(void *buffer, size_t bytes, size_t *transferred) {
    LOG_ENTRY_V();
    AUGMENT_LOG(V);
    // TIME_CHECK();  // TODO(b/243839867) reenable only when optimized.
    if (!mStream || mContext.getDataMQ() == nullptr) return NO_INIT;
    mWorkerTid.store(gettid(), std::memory_order_release);
@@ -422,7 +422,7 @@ status_t StreamHalAidl::transfer(void *buffer, size_t bytes, size_t *transferred
}

status_t StreamHalAidl::pause(StreamDescriptor::Reply* reply) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;

@@ -438,7 +438,7 @@ status_t StreamHalAidl::pause(StreamDescriptor::Reply* reply) {
}

status_t StreamHalAidl::resume(StreamDescriptor::Reply* reply) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (mIsInput) {
@@ -475,7 +475,7 @@ status_t StreamHalAidl::resume(StreamDescriptor::Reply* reply) {
}

status_t StreamHalAidl::drain(bool earlyNotify, StreamDescriptor::Reply* reply) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    return sendCommand(makeHalCommand<HalCommand::Tag::drain>(
@@ -486,7 +486,7 @@ status_t StreamHalAidl::drain(bool earlyNotify, StreamDescriptor::Reply* reply)
}

status_t StreamHalAidl::flush(StreamDescriptor::Reply* reply) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;

@@ -505,7 +505,7 @@ status_t StreamHalAidl::flush(StreamDescriptor::Reply* reply) {
}

status_t StreamHalAidl::exit() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    return statusTFromBinderStatus(mStream->prepareToClose());
@@ -545,7 +545,7 @@ void StreamHalAidl::onAsyncError() {

status_t StreamHalAidl::createMmapBuffer(int32_t minSizeFrames __unused,
                                         struct audio_mmap_buffer_info *info) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (!mContext.isMmapped()) {
@@ -783,7 +783,7 @@ status_t StreamOutHalAidl::getRenderPosition(uint64_t *dspFrames) {
}

status_t StreamOutHalAidl::setCallback(wp<StreamOutHalInterfaceCallback> callback) {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    TIME_CHECK();
    if (!mStream) return NO_INIT;
    if (!mContext.isAsynchronous()) {
@@ -859,7 +859,7 @@ status_t StreamOutHalAidl::getPresentationPosition(uint64_t *frames, struct time
}

status_t StreamOutHalAidl::presentationComplete() {
    LOG_ENTRY();
    AUGMENT_LOG(D);
    return OK;
}