summaryrefslogtreecommitdiff
path: root/pixelstats/StatsHelper.cpp
diff options
context:
space:
mode:
authorRoger Fang <rogerfang@google.com>2021-08-23 19:29:59 +0800
committerRoger Fang <rogerfang@google.com>2021-09-03 08:48:34 +0800
commit0ff3f5c4f0746a5fcc38f71c6c011072cba78803 (patch)
tree11c4c7c18f1e162866680f52ea44449fa3ac746a /pixelstats/StatsHelper.cpp
parent232b87425c4a43f9e327ff92911f1fcadee7b244 (diff)
Pixelstats: Add VendorSpeakerStatsReported to support Speaker Health
Add the new ATOM, VendorSpeakerStatsReported to support more speaker health statistics. Eldar: 999001 Bug: 175736081 Test: Manually test. Signed-off-by: Roger Fang <rogerfang@google.com> Change-Id: I1542c51ba1f7776b8dcaff7d9c8e09b6f161f152
Diffstat (limited to 'pixelstats/StatsHelper.cpp')
-rw-r--r--pixelstats/StatsHelper.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/pixelstats/StatsHelper.cpp b/pixelstats/StatsHelper.cpp
index e41ef8a..8fdb988 100644
--- a/pixelstats/StatsHelper.cpp
+++ b/pixelstats/StatsHelper.cpp
@@ -67,6 +67,31 @@ void reportSpeakerImpedance(const std::shared_ptr<IStats> &stats_client,
ALOGE("Unable to report VendorSpeakerImpedance to Stats service");
}
+void reportSpeakerHealthStat(const std::shared_ptr<IStats> &stats_client,
+ const PixelAtoms::VendorSpeakerStatsReported &speakerHealthStat) {
+ // Load values array
+ std::vector<VendorAtomValue> values(5);
+ VendorAtomValue tmp;
+ tmp.set<VendorAtomValue::intValue>(speakerHealthStat.speaker_location());
+ values[0] = tmp;
+ tmp.set<VendorAtomValue::intValue>(speakerHealthStat.impedance());
+ values[1] = tmp;
+ tmp.set<VendorAtomValue::intValue>(speakerHealthStat.max_temperature());
+ values[2] = tmp;
+ tmp.set<VendorAtomValue::intValue>(speakerHealthStat.excursion());
+ values[3] = tmp;
+ tmp.set<VendorAtomValue::intValue>(speakerHealthStat.heartbeat());
+ values[4] = tmp;
+
+ // Send vendor atom to IStats HAL
+ VendorAtom event = {.reverseDomainName = PixelAtoms::ReverseDomainNames().pixel(),
+ .atomId = PixelAtoms::Atom::kVendorSpeakerStatsReported,
+ .values = std::move(values)};
+ const ndk::ScopedAStatus ret = stats_client->reportVendorAtom(event);
+ if (!ret.isOk())
+ ALOGE("Unable to report VendorSpeakerStatsReported to Stats service");
+}
+
void reportSlowIo(const std::shared_ptr<IStats> &stats_client,
const PixelAtoms::VendorSlowIo &slowIo) {
// Load values array