xref: /aosp_15_r20/external/cronet/base/power_monitor/power_monitor_source.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2013 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "base/power_monitor/power_monitor_source.h"
6 
7 #include "base/notreached.h"
8 #include "base/power_monitor/power_monitor.h"
9 #include "base/power_monitor/power_observer.h"
10 #include "build/build_config.h"
11 
12 namespace base {
13 
14 PowerMonitorSource::PowerMonitorSource() = default;
15 PowerMonitorSource::~PowerMonitorSource() = default;
16 
17 PowerThermalObserver::DeviceThermalState
GetCurrentThermalState()18 PowerMonitorSource::GetCurrentThermalState() {
19   return PowerThermalObserver::DeviceThermalState::kUnknown;
20 }
21 
GetInitialSpeedLimit()22 int PowerMonitorSource::GetInitialSpeedLimit() {
23   return PowerThermalObserver::kSpeedLimitMax;
24 }
25 
SetCurrentThermalState(PowerThermalObserver::DeviceThermalState state)26 void PowerMonitorSource::SetCurrentThermalState(
27     PowerThermalObserver::DeviceThermalState state) {}
28 
29 #if BUILDFLAG(IS_ANDROID)
GetRemainingBatteryCapacity()30 int PowerMonitorSource::GetRemainingBatteryCapacity() {
31   return 0;
32 }
33 #endif  // BUILDFLAG(IS_ANDROID)
34 
35 // static
ProcessPowerEvent(PowerEvent event_id)36 void PowerMonitorSource::ProcessPowerEvent(PowerEvent event_id) {
37   if (!PowerMonitor::IsInitialized())
38     return;
39 
40   switch (event_id) {
41     case POWER_STATE_EVENT:
42       PowerMonitor::NotifyPowerStateChange(
43           PowerMonitor::Source()->IsOnBatteryPower());
44       break;
45       case RESUME_EVENT:
46         PowerMonitor::NotifyResume();
47       break;
48       case SUSPEND_EVENT:
49         PowerMonitor::NotifySuspend();
50       break;
51   }
52 }
53 
54 // static
ProcessThermalEvent(PowerThermalObserver::DeviceThermalState new_thermal_state)55 void PowerMonitorSource::ProcessThermalEvent(
56     PowerThermalObserver::DeviceThermalState new_thermal_state) {
57   if (!PowerMonitor::IsInitialized())
58     return;
59   PowerMonitor::NotifyThermalStateChange(new_thermal_state);
60 }
61 
62 // static
ProcessSpeedLimitEvent(int speed_limit)63 void PowerMonitorSource::ProcessSpeedLimitEvent(int speed_limit) {
64   if (!PowerMonitor::IsInitialized())
65     return;
66   PowerMonitor::NotifySpeedLimitChange(speed_limit);
67 }
68 
69 // static
DeviceThermalStateToString(PowerThermalObserver::DeviceThermalState state)70 const char* PowerMonitorSource::DeviceThermalStateToString(
71     PowerThermalObserver::DeviceThermalState state) {
72   switch (state) {
73     case PowerThermalObserver::DeviceThermalState::kUnknown:
74       return "Unknown";
75     case PowerThermalObserver::DeviceThermalState::kNominal:
76       return "Nominal";
77     case PowerThermalObserver::DeviceThermalState::kFair:
78       return "Fair";
79     case PowerThermalObserver::DeviceThermalState::kSerious:
80       return "Serious";
81     case PowerThermalObserver::DeviceThermalState::kCritical:
82       return "Critical";
83   }
84   NOTREACHED();
85   return "Unknown";
86 }
87 
88 }  // namespace base
89