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()18PowerMonitorSource::GetCurrentThermalState() { 19 return PowerThermalObserver::DeviceThermalState::kUnknown; 20 } 21 GetInitialSpeedLimit()22int PowerMonitorSource::GetInitialSpeedLimit() { 23 return PowerThermalObserver::kSpeedLimitMax; 24 } 25 SetCurrentThermalState(PowerThermalObserver::DeviceThermalState state)26void PowerMonitorSource::SetCurrentThermalState( 27 PowerThermalObserver::DeviceThermalState state) {} 28 29 #if BUILDFLAG(IS_ANDROID) GetRemainingBatteryCapacity()30int PowerMonitorSource::GetRemainingBatteryCapacity() { 31 return 0; 32 } 33 #endif // BUILDFLAG(IS_ANDROID) 34 35 // static ProcessPowerEvent(PowerEvent event_id)36void 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)55void 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)63void PowerMonitorSource::ProcessSpeedLimitEvent(int speed_limit) { 64 if (!PowerMonitor::IsInitialized()) 65 return; 66 PowerMonitor::NotifySpeedLimitChange(speed_limit); 67 } 68 69 // static DeviceThermalStateToString(PowerThermalObserver::DeviceThermalState state)70const 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