histogram_util.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright 2022 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ash/rgb_keyboard/histogram_util.h"
  5. #include "base/metrics/histogram_functions.h"
  6. #include "base/notreached.h"
  7. #include "base/strings/strcat.h"
  8. namespace ash::rgb_keyboard::metrics {
  9. std::string GetCapabilityTypeStr(rgbkbd::RgbKeyboardCapabilities capabilities) {
  10. switch (capabilities) {
  11. case rgbkbd::RgbKeyboardCapabilities::kNone:
  12. NOTREACHED();
  13. return "";
  14. case rgbkbd::RgbKeyboardCapabilities::kFourZoneFortyLed:
  15. return "FourZoneFortyLed";
  16. case rgbkbd::RgbKeyboardCapabilities::kIndividualKey:
  17. return "IndividualKey";
  18. case rgbkbd::RgbKeyboardCapabilities::kFourZoneTwelveLed:
  19. return "FourZoneTwelveLed";
  20. case rgbkbd::RgbKeyboardCapabilities::kFourZoneFourLed:
  21. return "FourZoneFourLed";
  22. }
  23. }
  24. void EmitRgbKeyboardCapabilityType(
  25. rgbkbd::RgbKeyboardCapabilities capabilities) {
  26. base::UmaHistogramEnumeration(kRgbKeyboardCapabilityTypeHistogramName,
  27. RgbKeyboardCapabilityType(capabilities));
  28. }
  29. void EmitRgbBacklightChangeType(RgbKeyboardBacklightChangeType type,
  30. rgbkbd::RgbKeyboardCapabilities capabilities) {
  31. const auto name = base::StrCat(
  32. {kRgbKeyboardHistogramPrefix, GetCapabilityTypeStr(capabilities)});
  33. base::UmaHistogramEnumeration(name, type);
  34. }
  35. } // namespace ash::rgb_keyboard::metrics