| Index: chrome/browser/chromeos/cros_power_library.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/cros_power_library.cc (revision 30488)
|
| +++ chrome/browser/chromeos/cros_power_library.cc (working copy)
|
| @@ -1,103 +0,0 @@
|
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/cros_power_library.h"
|
| -
|
| -#include "base/message_loop.h"
|
| -#include "base/string_util.h"
|
| -#include "chrome/browser/chrome_thread.h"
|
| -#include "chrome/browser/chromeos/cros_library.h"
|
| -
|
| -// Allows InvokeLater without adding refcounting. This class is a Singleton and
|
| -// won't be deleted until it's last InvokeLater is run.
|
| -template <>
|
| -struct RunnableMethodTraits<CrosPowerLibrary> {
|
| - void RetainCallee(CrosPowerLibrary* obj) {}
|
| - void ReleaseCallee(CrosPowerLibrary* obj) {}
|
| -};
|
| -
|
| -CrosPowerLibrary::CrosPowerLibrary() : status_(chromeos::PowerStatus()) {
|
| - if (CrosLibrary::loaded()) {
|
| - Init();
|
| - }
|
| -}
|
| -
|
| -CrosPowerLibrary::~CrosPowerLibrary() {
|
| - if (CrosLibrary::loaded()) {
|
| - chromeos::DisconnectPowerStatus(power_status_connection_);
|
| - }
|
| -}
|
| -
|
| -// static
|
| -CrosPowerLibrary* CrosPowerLibrary::Get() {
|
| - return Singleton<CrosPowerLibrary>::get();
|
| -}
|
| -
|
| -// static
|
| -bool CrosPowerLibrary::loaded() {
|
| - return CrosLibrary::loaded();
|
| -}
|
| -
|
| -void CrosPowerLibrary::AddObserver(Observer* observer) {
|
| - observers_.AddObserver(observer);
|
| -}
|
| -
|
| -void CrosPowerLibrary::RemoveObserver(Observer* observer) {
|
| - observers_.RemoveObserver(observer);
|
| -}
|
| -
|
| -bool CrosPowerLibrary::line_power_on() const {
|
| - return status_.line_power_on;
|
| -}
|
| -
|
| -bool CrosPowerLibrary::battery_is_present() const {
|
| - return status_.battery_is_present;
|
| -}
|
| -
|
| -bool CrosPowerLibrary::battery_fully_charged() const {
|
| - return status_.battery_state == chromeos::BATTERY_STATE_FULLY_CHARGED;
|
| -}
|
| -
|
| -double CrosPowerLibrary::battery_percentage() const {
|
| - return status_.battery_percentage;
|
| -}
|
| -
|
| -base::TimeDelta CrosPowerLibrary::battery_time_to_empty() const {
|
| - return base::TimeDelta::FromSeconds(status_.battery_time_to_empty);
|
| -}
|
| -
|
| -base::TimeDelta CrosPowerLibrary::battery_time_to_full() const {
|
| - return base::TimeDelta::FromSeconds(status_.battery_time_to_full);
|
| -}
|
| -
|
| -// static
|
| -void CrosPowerLibrary::PowerStatusChangedHandler(void* object,
|
| - const chromeos::PowerStatus& status) {
|
| - CrosPowerLibrary* power = static_cast<CrosPowerLibrary*>(object);
|
| - power->UpdatePowerStatus(status);
|
| -}
|
| -
|
| -void CrosPowerLibrary::Init() {
|
| - power_status_connection_ = chromeos::MonitorPowerStatus(
|
| - &PowerStatusChangedHandler, this);
|
| -}
|
| -
|
| -void CrosPowerLibrary::UpdatePowerStatus(const chromeos::PowerStatus& status) {
|
| - // Make sure we run on UI thread.
|
| - if (!ChromeThread::CurrentlyOn(ChromeThread::UI)) {
|
| - ChromeThread::PostTask(
|
| - ChromeThread::UI, FROM_HERE,
|
| - NewRunnableMethod(this, &CrosPowerLibrary::UpdatePowerStatus, status));
|
| - return;
|
| - }
|
| -
|
| - DLOG(INFO) << "Power" <<
|
| - " lpo=" << status.line_power_on <<
|
| - " sta=" << status.battery_state <<
|
| - " per=" << status.battery_percentage <<
|
| - " tte=" << status.battery_time_to_empty <<
|
| - " ttf=" << status.battery_time_to_full;
|
| - status_ = status;
|
| - FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(this));
|
| -}
|
|
|