1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/power_monitor/power_monitor_device_source.h" 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "base/time/time.h" 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace base { 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(ENABLE_BATTERY_MONITORING) 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// The amount of time (in ms) to wait before running the initial 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// battery check. 14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)static int kDelayedBatteryCheckMs = 10 * 1000; 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif // defined(ENABLE_BATTERY_MONITORING) 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)PowerMonitorDeviceSource::PowerMonitorDeviceSource() { 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) DCHECK(MessageLoop::current()); 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(ENABLE_BATTERY_MONITORING) 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) delayed_battery_check_.Start(FROM_HERE, 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::TimeDelta::FromMilliseconds(kDelayedBatteryCheckMs), this, 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) &PowerMonitorDeviceSource::BatteryCheck); 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif // defined(ENABLE_BATTERY_MONITORING) 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(OS_MACOSX) 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) PlatformInit(); 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)PowerMonitorDeviceSource::~PowerMonitorDeviceSource() { 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#if defined(OS_MACOSX) 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) PlatformDestroy(); 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#endif 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void PowerMonitorDeviceSource::BatteryCheck() { 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) ProcessPowerEvent(PowerMonitorSource::POWER_STATE_EVENT); 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace base 40