| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "device/battery/battery_status_manager_win.h" | 5 #include "device/battery/battery_status_manager_win.h" |
| 6 | 6 |
| 7 #include <memory> |
| 8 |
| 7 #include "base/bind.h" | 9 #include "base/bind.h" |
| 8 #include "base/macros.h" | 10 #include "base/macros.h" |
| 9 #include "base/memory/scoped_ptr.h" | |
| 10 #include "base/metrics/histogram.h" | 11 #include "base/metrics/histogram.h" |
| 11 #include "base/strings/string16.h" | 12 #include "base/strings/string16.h" |
| 12 #include "base/win/message_window.h" | 13 #include "base/win/message_window.h" |
| 13 #include "base/win/windows_version.h" | 14 #include "base/win/windows_version.h" |
| 14 #include "device/battery/battery_status_manager.h" | 15 #include "device/battery/battery_status_manager.h" |
| 15 | 16 |
| 16 namespace device { | 17 namespace device { |
| 17 | 18 |
| 18 namespace { | 19 namespace { |
| 19 | 20 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 LOG(ERROR) << "Failed to create message window: " << kWindowClassName; | 146 LOG(ERROR) << "Failed to create message window: " << kWindowClassName; |
| 146 window_.reset(); | 147 window_.reset(); |
| 147 return false; | 148 return false; |
| 148 } | 149 } |
| 149 return true; | 150 return true; |
| 150 } | 151 } |
| 151 | 152 |
| 152 HPOWERNOTIFY power_handle_; | 153 HPOWERNOTIFY power_handle_; |
| 153 HPOWERNOTIFY battery_change_handle_; | 154 HPOWERNOTIFY battery_change_handle_; |
| 154 BatteryCallback callback_; | 155 BatteryCallback callback_; |
| 155 scoped_ptr<base::win::MessageWindow> window_; | 156 std::unique_ptr<base::win::MessageWindow> window_; |
| 156 | 157 |
| 157 DISALLOW_COPY_AND_ASSIGN(BatteryStatusObserver); | 158 DISALLOW_COPY_AND_ASSIGN(BatteryStatusObserver); |
| 158 }; | 159 }; |
| 159 | 160 |
| 160 class BatteryStatusManagerWin : public BatteryStatusManager { | 161 class BatteryStatusManagerWin : public BatteryStatusManager { |
| 161 public: | 162 public: |
| 162 explicit BatteryStatusManagerWin(const BatteryCallback& callback) | 163 explicit BatteryStatusManagerWin(const BatteryCallback& callback) |
| 163 : battery_observer_(new BatteryStatusObserver(callback)) {} | 164 : battery_observer_(new BatteryStatusObserver(callback)) {} |
| 164 ~BatteryStatusManagerWin() override { battery_observer_->Stop(); } | 165 ~BatteryStatusManagerWin() override { battery_observer_->Stop(); } |
| 165 | 166 |
| 166 public: | 167 public: |
| 167 // BatteryStatusManager: | 168 // BatteryStatusManager: |
| 168 bool StartListeningBatteryChange() override { | 169 bool StartListeningBatteryChange() override { |
| 169 battery_observer_->Start(); | 170 battery_observer_->Start(); |
| 170 return true; | 171 return true; |
| 171 } | 172 } |
| 172 | 173 |
| 173 void StopListeningBatteryChange() override { battery_observer_->Stop(); } | 174 void StopListeningBatteryChange() override { battery_observer_->Stop(); } |
| 174 | 175 |
| 175 private: | 176 private: |
| 176 scoped_ptr<BatteryStatusObserver> battery_observer_; | 177 std::unique_ptr<BatteryStatusObserver> battery_observer_; |
| 177 | 178 |
| 178 DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerWin); | 179 DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerWin); |
| 179 }; | 180 }; |
| 180 | 181 |
| 181 } // namespace | 182 } // namespace |
| 182 | 183 |
| 183 BatteryStatus ComputeWebBatteryStatus(const SYSTEM_POWER_STATUS& win_status) { | 184 BatteryStatus ComputeWebBatteryStatus(const SYSTEM_POWER_STATUS& win_status) { |
| 184 BatteryStatus status; | 185 BatteryStatus status; |
| 185 status.charging = win_status.ACLineStatus != WIN_AC_LINE_STATUS_OFFLINE; | 186 status.charging = win_status.ACLineStatus != WIN_AC_LINE_STATUS_OFFLINE; |
| 186 | 187 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 199 } else { | 200 } else { |
| 200 // Set charging_time to +Infinity if not fully charged, otherwise leave the | 201 // Set charging_time to +Infinity if not fully charged, otherwise leave the |
| 201 // default value, which is 0. | 202 // default value, which is 0. |
| 202 if (status.level < 1) | 203 if (status.level < 1) |
| 203 status.charging_time = std::numeric_limits<double>::infinity(); | 204 status.charging_time = std::numeric_limits<double>::infinity(); |
| 204 } | 205 } |
| 205 return status; | 206 return status; |
| 206 } | 207 } |
| 207 | 208 |
| 208 // static | 209 // static |
| 209 scoped_ptr<BatteryStatusManager> BatteryStatusManager::Create( | 210 std::unique_ptr<BatteryStatusManager> BatteryStatusManager::Create( |
| 210 const BatteryStatusService::BatteryUpdateCallback& callback) { | 211 const BatteryStatusService::BatteryUpdateCallback& callback) { |
| 211 return scoped_ptr<BatteryStatusManager>( | 212 return std::unique_ptr<BatteryStatusManager>( |
| 212 new BatteryStatusManagerWin(callback)); | 213 new BatteryStatusManagerWin(callback)); |
| 213 } | 214 } |
| 214 | 215 |
| 215 } // namespace device | 216 } // namespace device |
| OLD | NEW |