Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(602)

Side by Side Diff: chromeos/dbus/fake_power_manager_client.cc

Issue 1206733002: ChromeOs Power Emulation Impl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: New Impl, Work with UI Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "chromeos/dbus/fake_power_manager_client.h" 5 #include "chromeos/dbus/fake_power_manager_client.h"
6 6
7 #include <algorithm>
mozartalouis 2015/06/30 02:16:09 will remove. not used.
8
7 #include "base/bind.h" 9 #include "base/bind.h"
8 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
9 #include "base/time/time.h" 11 #include "base/time/time.h"
10 12
11 namespace chromeos { 13 namespace chromeos {
14 namespace {
15
16 const int kDefaultBatteryLifeSpanSec = 6 * 3600; // 6 hours
17
18 } // namespace
12 19
13 FakePowerManagerClient::FakePowerManagerClient() 20 FakePowerManagerClient::FakePowerManagerClient()
14 : num_request_restart_calls_(0), 21 : num_request_restart_calls_(0),
15 num_request_shutdown_calls_(0), 22 num_request_shutdown_calls_(0),
16 num_set_policy_calls_(0), 23 num_set_policy_calls_(0),
17 num_set_is_projecting_calls_(0), 24 num_set_is_projecting_calls_(0),
18 num_pending_suspend_readiness_callbacks_(0), 25 num_pending_suspend_readiness_callbacks_(0),
19 is_projecting_(false) { 26 is_projecting_(false) {
20 } 27 }
21 28
22 FakePowerManagerClient::~FakePowerManagerClient() { 29 FakePowerManagerClient::~FakePowerManagerClient() {
23 } 30 }
24 31
25 void FakePowerManagerClient::Init(dbus::Bus* bus) { 32 void FakePowerManagerClient::Init(dbus::Bus* bus) {
33 UpdatePowerProperties(
34 50, false, power_manager::PowerSupplyProperties_BatteryState_DISCHARGING,
35 power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
26 } 36 }
27 37
28 void FakePowerManagerClient::AddObserver(Observer* observer) { 38 void FakePowerManagerClient::AddObserver(Observer* observer) {
29 observers_.AddObserver(observer); 39 observers_.AddObserver(observer);
30 } 40 }
31 41
32 void FakePowerManagerClient::RemoveObserver(Observer* observer) { 42 void FakePowerManagerClient::RemoveObserver(Observer* observer) {
33 observers_.RemoveObserver(observer); 43 observers_.RemoveObserver(observer);
34 } 44 }
35 45
36 bool FakePowerManagerClient::HasObserver(const Observer* observer) const { 46 bool FakePowerManagerClient::HasObserver(const Observer* observer) const {
37 return false; 47 return observers_.HasObserver(observer);
38 } 48 }
39 49
40 void FakePowerManagerClient::SetRenderProcessManagerDelegate( 50 void FakePowerManagerClient::SetRenderProcessManagerDelegate(
41 base::WeakPtr<RenderProcessManagerDelegate> delegate) { 51 base::WeakPtr<RenderProcessManagerDelegate> delegate) {
42 render_process_manager_delegate_ = delegate; 52 render_process_manager_delegate_ = delegate;
43 } 53 }
44 54
45 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) { 55 void FakePowerManagerClient::DecreaseScreenBrightness(bool allow_off) {
46 } 56 }
47 57
48 void FakePowerManagerClient::IncreaseScreenBrightness() { 58 void FakePowerManagerClient::IncreaseScreenBrightness() {
49 } 59 }
50 60
51 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent, 61 void FakePowerManagerClient::SetScreenBrightnessPercent(double percent,
52 bool gradual) { 62 bool gradual) {
53 } 63 }
54 64
55 void FakePowerManagerClient::GetScreenBrightnessPercent( 65 void FakePowerManagerClient::GetScreenBrightnessPercent(
56 const GetScreenBrightnessPercentCallback& callback) { 66 const GetScreenBrightnessPercentCallback& callback) {
57 } 67 }
58 68
59 void FakePowerManagerClient::DecreaseKeyboardBrightness() { 69 void FakePowerManagerClient::DecreaseKeyboardBrightness() {
60 } 70 }
61 71
62 void FakePowerManagerClient::IncreaseKeyboardBrightness() { 72 void FakePowerManagerClient::IncreaseKeyboardBrightness() {
63 } 73 }
64 74
65 void FakePowerManagerClient::RequestStatusUpdate() { 75 void FakePowerManagerClient::RequestStatusUpdate() {
76 NotifyObservers();
66 } 77 }
67 78
68 void FakePowerManagerClient::RequestSuspend() { 79 void FakePowerManagerClient::RequestSuspend() {
69 } 80 }
70 81
71 void FakePowerManagerClient::RequestRestart() { 82 void FakePowerManagerClient::RequestRestart() {
72 ++num_request_restart_calls_; 83 ++num_request_restart_calls_;
73 } 84 }
74 85
75 void FakePowerManagerClient::RequestShutdown() { 86 void FakePowerManagerClient::RequestShutdown() {
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent()); 133 FOR_EACH_OBSERVER(Observer, observers_, DarkSuspendImminent());
123 } 134 }
124 135
125 void FakePowerManagerClient::SendPowerButtonEvent( 136 void FakePowerManagerClient::SendPowerButtonEvent(
126 bool down, 137 bool down,
127 const base::TimeTicks& timestamp) { 138 const base::TimeTicks& timestamp) {
128 FOR_EACH_OBSERVER(Observer, observers_, 139 FOR_EACH_OBSERVER(Observer, observers_,
129 PowerButtonEventReceived(down, timestamp)); 140 PowerButtonEventReceived(down, timestamp));
130 } 141 }
131 142
143 void FakePowerManagerClient::UpdatePowerProperties(
144 int battery_percent,
145 bool is_calculating_battery_time,
146 power_manager::PowerSupplyProperties::BatteryState battery_state,
147 power_manager::PowerSupplyProperties::ExternalPower external_power) {
148 int remaining_battery_sec =
149 battery_percent * kDefaultBatteryLifeSpanSec / 100;
150
151 // Sets the charging state based on the battery percentage to mimic real
152 // implementation.
153 if (battery_percent == 100 &&
154 battery_state ==
155 power_manager::PowerSupplyProperties_BatteryState_CHARGING) {
156 props_.set_battery_state(
157 power_manager::PowerSupplyProperties_BatteryState_FULL);
158 props_.set_battery_time_to_full_sec(0);
159 props_.set_battery_time_to_empty_sec(0);
160 } else if (battery_state ==
161 power_manager::PowerSupplyProperties_BatteryState_CHARGING) {
162 props_.set_battery_state(
163 power_manager::PowerSupplyProperties_BatteryState_CHARGING);
164 props_.set_battery_time_to_full_sec(kDefaultBatteryLifeSpanSec -
165 remaining_battery_sec);
166 props_.set_battery_time_to_empty_sec(0);
167 } else {
168 props_.set_battery_state(
169 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING);
170 props_.set_battery_time_to_full_sec(0);
171 props_.set_battery_time_to_empty_sec(remaining_battery_sec);
172 }
Daniel Erat 2015/06/30 14:03:40 it seems like the handling of _FULL is broken here
mozartalouis 2015/06/30 18:29:47 No. The reason _FULL is not handled is because it
Daniel Erat 2015/06/30 20:35:18 i don't think i follow. if i call: UpdatePowerP
mozartalouis 2015/06/30 21:29:50 OH! I understand. Added in next patch.
173
174 // checks if the battery is in a discharging state first before setting a
Daniel Erat 2015/06/30 14:03:40 nit: capitalize 'Checks'
mozartalouis 2015/06/30 18:29:47 Done.
175 // charger. It wouldn't make sense for the battery to be discharging on AC,
176 // but it is possible for it to be discharging on low power USB.
177 if (battery_state ==
178 power_manager::PowerSupplyProperties_BatteryState_DISCHARGING)
Daniel Erat 2015/06/30 14:03:40 multiline "then" sections of if/else statements sh
mozartalouis 2015/06/30 18:29:47 Done.
179 props_.set_external_power(
180 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
181 ? power_manager::PowerSupplyProperties_ExternalPower_USB
182 : power_manager::PowerSupplyProperties_ExternalPower_DISCONNECTED);
183 else
184 props_.set_external_power(
185 external_power == power_manager::PowerSupplyProperties_ExternalPower_USB
186 ? power_manager::PowerSupplyProperties_ExternalPower_USB
187 : power_manager::PowerSupplyProperties_ExternalPower_AC);
188
189 props_.set_battery_percent(battery_percent);
190 props_.set_is_calculating_battery_time(is_calculating_battery_time);
191
192 NotifyObservers();
193 }
194
195 void FakePowerManagerClient::NotifyObservers() {
196 FOR_EACH_OBSERVER(Observer, observers_, PowerChanged(props_));
197 }
198
132 void FakePowerManagerClient::HandleSuspendReadiness() { 199 void FakePowerManagerClient::HandleSuspendReadiness() {
133 CHECK(num_pending_suspend_readiness_callbacks_ > 0); 200 CHECK(num_pending_suspend_readiness_callbacks_ > 0);
134 201
135 --num_pending_suspend_readiness_callbacks_; 202 --num_pending_suspend_readiness_callbacks_;
136 } 203 }
137 204
138 } // namespace chromeos 205 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698