// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "base/power_monitor/power_monitor_source.h" #include "base/notreached.h" #include "base/power_monitor/power_monitor.h" #include "base/power_monitor/power_observer.h" #include "build/build_config.h" namespace base { PowerMonitorSource::PowerMonitorSource() = default; PowerMonitorSource::~PowerMonitorSource() = default; PowerThermalObserver::DeviceThermalState PowerMonitorSource::GetCurrentThermalState() const { return PowerThermalObserver::DeviceThermalState::kUnknown; } int PowerMonitorSource::GetInitialSpeedLimit() const { return PowerThermalObserver::kSpeedLimitMax; } void PowerMonitorSource::SetCurrentThermalState( PowerThermalObserver::DeviceThermalState state) {} #if BUILDFLAG(IS_ANDROID) int PowerMonitorSource::GetRemainingBatteryCapacity() const { return 0; } #endif // BUILDFLAG(IS_ANDROID) // static void PowerMonitorSource::ProcessPowerEvent(PowerEvent event_id) { auto* power_monitor = base::PowerMonitor::GetInstance(); if (!power_monitor->IsInitialized()) { return; } switch (event_id) { case POWER_STATE_EVENT: power_monitor->NotifyPowerStateChange( power_monitor->Source()->GetBatteryPowerStatus()); break; case RESUME_EVENT: power_monitor->NotifyResume(); break; case SUSPEND_EVENT: power_monitor->NotifySuspend(); break; } } // static void PowerMonitorSource::ProcessThermalEvent( PowerThermalObserver::DeviceThermalState new_thermal_state) { if (auto* power_monitor = base::PowerMonitor::GetInstance(); power_monitor->IsInitialized()) { power_monitor->NotifyThermalStateChange(new_thermal_state); } } // static void PowerMonitorSource::ProcessSpeedLimitEvent(int speed_limit) { if (auto* power_monitor = base::PowerMonitor::GetInstance(); power_monitor->IsInitialized()) { power_monitor->NotifySpeedLimitChange(speed_limit); } } // static const char* PowerMonitorSource::DeviceThermalStateToString( PowerThermalObserver::DeviceThermalState state) { switch (state) { case PowerThermalObserver::DeviceThermalState::kUnknown: return "Unknown"; case PowerThermalObserver::DeviceThermalState::kNominal: return "Nominal"; case PowerThermalObserver::DeviceThermalState::kFair: return "Fair"; case PowerThermalObserver::DeviceThermalState::kSerious: return "Serious"; case PowerThermalObserver::DeviceThermalState::kCritical: return "Critical"; } NOTREACHED(); } } // namespace base