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 blink { 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 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 Platform::current()->startListening(WebPlatformEventBattery, this); 42 } 43 44 void BatteryDispatcher::stopListening() 45 { 46 Platform::current()->stopListening(WebPlatformEventBattery); 47 m_batteryStatus.clear(); 48 } 49 50 } // namespace blink 51