1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 "config.h" 6 #include "modules/battery/BatteryDispatcher.h" 7 8 #include "modules/battery/BatteryStatus.h" 9 #include "platform/NotImplemented.h" 10 #include "public/platform/Platform.h" 11 12 namespace WebCore { 13 14 BatteryDispatcher& BatteryDispatcher::instance() 15 { 16 DEFINE_STATIC_LOCAL(BatteryDispatcher, batteryDispatcher, ()); 17 return batteryDispatcher; 18 } 19 20 BatteryDispatcher::BatteryDispatcher() 21 { 22 } 23 24 BatteryDispatcher::~BatteryDispatcher() 25 { 26 } 27 28 void BatteryDispatcher::updateBatteryStatus(const blink::WebBatteryStatus& batteryStatus) 29 { 30 m_batteryStatus = BatteryStatus::create(batteryStatus.charging, batteryStatus.chargingTime, batteryStatus.dischargingTime, batteryStatus.level); 31 notifyControllers(); 32 } 33 34 BatteryStatus* BatteryDispatcher::latestData() 35 { 36 return m_batteryStatus.get(); 37 } 38 39 void BatteryDispatcher::startListening() 40 { 41 blink::Platform::current()->setBatteryStatusListener(this); 42 } 43 44 void BatteryDispatcher::stopListening() 45 { 46 blink::Platform::current()->setBatteryStatusListener(0); 47 m_batteryStatus.clear(); 48 } 49 50 } 51