power_monitor_source.cc 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // Copyright 2013 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 "base/power_monitor/power_monitor_source.h"
  5. #include "base/notreached.h"
  6. #include "base/power_monitor/power_monitor.h"
  7. #include "base/power_monitor/power_observer.h"
  8. #include "build/build_config.h"
  9. namespace base {
  10. PowerMonitorSource::PowerMonitorSource() = default;
  11. PowerMonitorSource::~PowerMonitorSource() = default;
  12. PowerThermalObserver::DeviceThermalState
  13. PowerMonitorSource::GetCurrentThermalState() {
  14. return PowerThermalObserver::DeviceThermalState::kUnknown;
  15. }
  16. int PowerMonitorSource::GetInitialSpeedLimit() {
  17. return PowerThermalObserver::kSpeedLimitMax;
  18. }
  19. void PowerMonitorSource::SetCurrentThermalState(
  20. PowerThermalObserver::DeviceThermalState state) {}
  21. #if BUILDFLAG(IS_ANDROID)
  22. int PowerMonitorSource::GetRemainingBatteryCapacity() {
  23. return 0;
  24. }
  25. #endif // BUILDFLAG(IS_ANDROID)
  26. // static
  27. void PowerMonitorSource::ProcessPowerEvent(PowerEvent event_id) {
  28. if (!PowerMonitor::IsInitialized())
  29. return;
  30. switch (event_id) {
  31. case POWER_STATE_EVENT:
  32. PowerMonitor::NotifyPowerStateChange(
  33. PowerMonitor::Source()->IsOnBatteryPower());
  34. break;
  35. case RESUME_EVENT:
  36. PowerMonitor::NotifyResume();
  37. break;
  38. case SUSPEND_EVENT:
  39. PowerMonitor::NotifySuspend();
  40. break;
  41. }
  42. }
  43. // static
  44. void PowerMonitorSource::ProcessThermalEvent(
  45. PowerThermalObserver::DeviceThermalState new_thermal_state) {
  46. if (!PowerMonitor::IsInitialized())
  47. return;
  48. PowerMonitor::NotifyThermalStateChange(new_thermal_state);
  49. }
  50. // static
  51. void PowerMonitorSource::ProcessSpeedLimitEvent(int speed_limit) {
  52. if (!PowerMonitor::IsInitialized())
  53. return;
  54. PowerMonitor::NotifySpeedLimitChange(speed_limit);
  55. }
  56. // static
  57. const char* PowerMonitorSource::DeviceThermalStateToString(
  58. PowerThermalObserver::DeviceThermalState state) {
  59. switch (state) {
  60. case PowerThermalObserver::DeviceThermalState::kUnknown:
  61. return "Unknown";
  62. case PowerThermalObserver::DeviceThermalState::kNominal:
  63. return "Nominal";
  64. case PowerThermalObserver::DeviceThermalState::kFair:
  65. return "Fair";
  66. case PowerThermalObserver::DeviceThermalState::kSerious:
  67. return "Serious";
  68. case PowerThermalObserver::DeviceThermalState::kCritical:
  69. return "Critical";
  70. }
  71. NOTREACHED();
  72. return "Unknown";
  73. }
  74. } // namespace base