| Index: base/power_monitor/power_monitor_device_source_mac.mm
|
| diff --git a/base/power_monitor/power_monitor_mac.mm b/base/power_monitor/power_monitor_device_source_mac.mm
|
| similarity index 79%
|
| rename from base/power_monitor/power_monitor_mac.mm
|
| rename to base/power_monitor/power_monitor_device_source_mac.mm
|
| index ee906f63c8f438adce187a1d758eb1db1af86fbb..c7a93263f3de449f2995fc711a1f4a377adf9fdd 100644
|
| --- a/base/power_monitor/power_monitor_mac.mm
|
| +++ b/base/power_monitor/power_monitor_device_source_mac.mm
|
| @@ -5,6 +5,8 @@
|
| // Implementation based on sample code from
|
| // http://developer.apple.com/library/mac/#qa/qa1340/_index.html.
|
|
|
| +#include "base/power_monitor/power_monitor_device_source.h"
|
| +
|
| #include "base/power_monitor/power_monitor.h"
|
|
|
| #include <IOKit/pwr_mgt/IOPMLib.h>
|
| @@ -12,10 +14,10 @@
|
|
|
| namespace base {
|
|
|
| -void ProcessPowerEventHelper(PowerMonitor::PowerEvent event) {
|
| +void ProcessPowerEventHelper(PowerMonitorSource::PowerEvent event) {
|
| DCHECK(PowerMonitor::Get());
|
| if (PowerMonitor::Get())
|
| - PowerMonitor::Get()->ProcessPowerEvent(event);
|
| + PowerMonitor::Get()->Source()->ProcessPowerEvent(event);
|
| }
|
|
|
| namespace {
|
| @@ -29,14 +31,19 @@ void SystemPowerEventCallback(void*,
|
| natural_t message_type,
|
| void* message_argument) {
|
| switch (message_type) {
|
| + // If this message is not handled the system may delay sleep for 30 seconds
|
| + case kIOMessageCanSystemSleep:
|
| + IOAllowPowerChange(g_system_power_io_port,
|
| + reinterpret_cast<intptr_t>(message_argument));
|
| + break;
|
| case kIOMessageSystemWillSleep:
|
| - ProcessPowerEventHelper(base::PowerMonitor::SUSPEND_EVENT);
|
| + ProcessPowerEventHelper(base::PowerMonitorSource::SUSPEND_EVENT);
|
| IOAllowPowerChange(g_system_power_io_port,
|
| reinterpret_cast<intptr_t>(message_argument));
|
| break;
|
|
|
| case kIOMessageSystemWillPowerOn:
|
| - ProcessPowerEventHelper(PowerMonitor::RESUME_EVENT);
|
| + ProcessPowerEventHelper(PowerMonitorSource::RESUME_EVENT);
|
| break;
|
| }
|
| }
|
| @@ -49,7 +56,7 @@ void SystemPowerEventCallback(void*,
|
| // See crbug.com/83783 .
|
|
|
| // static
|
| -void PowerMonitor::AllocateSystemIOPorts() {
|
| +void PowerMonitorDeviceSource::AllocateSystemIOPorts() {
|
| DCHECK_EQ(g_system_power_io_port, 0u);
|
|
|
| // Notification port allocated by IORegisterForSystemPower.
|
| @@ -60,7 +67,7 @@ void PowerMonitor::AllocateSystemIOPorts() {
|
| DCHECK_NE(g_system_power_io_port, 0u);
|
| }
|
|
|
| -void PowerMonitor::PlatformInit() {
|
| +void PowerMonitorDeviceSource::PlatformInit() {
|
| // Need to call AllocateSystemIOPorts() before creating a PowerMonitor
|
| // object.
|
| DCHECK_NE(g_system_power_io_port, 0u);
|
| @@ -74,7 +81,7 @@ void PowerMonitor::PlatformInit() {
|
| kCFRunLoopCommonModes);
|
| }
|
|
|
| -void PowerMonitor::PlatformDestroy() {
|
| +void PowerMonitorDeviceSource::PlatformDestroy() {
|
| DCHECK_NE(g_system_power_io_port, 0u);
|
| if (g_system_power_io_port == 0)
|
| return;
|
|
|