diff options
author | Roger Fang <rogerfang@google.com> | 2021-08-23 19:29:59 +0800 |
---|---|---|
committer | Roger Fang <rogerfang@google.com> | 2021-09-03 08:48:34 +0800 |
commit | 0ff3f5c4f0746a5fcc38f71c6c011072cba78803 (patch) | |
tree | 11c4c7c18f1e162866680f52ea44449fa3ac746a /pixelstats/StatsHelper.cpp | |
parent | 232b87425c4a43f9e327ff92911f1fcadee7b244 (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.cpp | 25 |
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 |