Merge "audio: add dump on Streams, StreamWrapper and Module." into main
diff --git a/audio/aidl/default/Module.cpp b/audio/aidl/default/Module.cpp
index 077d80b..6a92481 100644
--- a/audio/aidl/default/Module.cpp
+++ b/audio/aidl/default/Module.cpp
@@ -612,6 +612,15 @@
return ndk::ScopedAStatus::ok();
}
+binder_status_t Module::dump(int fd, const char** args, uint32_t numArgs) {
+ for (const auto& portConfig : getConfig().portConfigs) {
+ if (portConfig.ext.getTag() == AudioPortExt::Tag::mix) {
+ getStreams().dump(portConfig.id, fd, args, numArgs);
+ }
+ }
+ return STATUS_OK;
+}
+
ndk::ScopedAStatus Module::setModuleDebug(
const ::aidl::android::hardware::audio::core::ModuleDebug& in_debug) {
LOG(DEBUG) << __func__ << ": " << mType << ": old flags:" << mDebug.toString()
diff --git a/audio/aidl/default/include/core-impl/Module.h b/audio/aidl/default/include/core-impl/Module.h
index 6a43102..6d59028 100644
--- a/audio/aidl/default/include/core-impl/Module.h
+++ b/audio/aidl/default/include/core-impl/Module.h
@@ -61,6 +61,8 @@
// The vendor extension done via inheritance can override interface methods and augment
// a call to the base implementation.
+ binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;
+
ndk::ScopedAStatus setModuleDebug(
const ::aidl::android::hardware::audio::core::ModuleDebug& in_debug) override;
ndk::ScopedAStatus getTelephony(std::shared_ptr<ITelephony>* _aidl_return) override;
diff --git a/audio/aidl/default/include/core-impl/Stream.h b/audio/aidl/default/include/core-impl/Stream.h
index 975507c..376c684 100644
--- a/audio/aidl/default/include/core-impl/Stream.h
+++ b/audio/aidl/default/include/core-impl/Stream.h
@@ -653,6 +653,12 @@
return ndk::ScopedAStatus::ok();
}
+ void dump(int fd, const char** args, uint32_t numArgs) const {
+ auto s = ::ndk::ICInterface::asInterface(mStreamBinder.get());
+ if (s) s->dump(fd, args, numArgs);
+ return;
+ }
+
private:
std::weak_ptr<StreamCommonInterface> mStream;
ndk::SpAIBinder mStreamBinder;
@@ -694,6 +700,12 @@
}
return ndk::ScopedAStatus::ok();
}
+ void dump(int32_t portConfigId, int fd, const char** args, uint32_t numArgs) const {
+ if (auto it = mStreams.find(portConfigId); it != mStreams.end()) {
+ it->second.dump(fd, args, numArgs);
+ }
+ return;
+ }
private:
// Maps port ids and port config ids to streams. Multimap because a port