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

Side by Side Diff: chromeos/dbus/power_manager_client.h

Issue 2768543002: chromeos: Add PowerManagerClient::GetSwitchStates(). (Closed)
Patch Set: document that callbacks aren't run on error Created 3 years, 9 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
« no previous file with comments | « chromeos/dbus/fake_power_manager_client.cc ('k') | chromeos/dbus/power_manager_client.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ 5 #ifndef CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
6 #define CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ 6 #define CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/weak_ptr.h" 12 #include "base/memory/weak_ptr.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "chromeos/chromeos_export.h" 14 #include "chromeos/chromeos_export.h"
15 #include "chromeos/dbus/dbus_client.h" 15 #include "chromeos/dbus/dbus_client.h"
16 #include "chromeos/dbus/dbus_client_implementation_type.h" 16 #include "chromeos/dbus/dbus_client_implementation_type.h"
17 #include "third_party/cros_system_api/dbus/service_constants.h" 17 #include "third_party/cros_system_api/dbus/service_constants.h"
18 18
19 namespace power_manager { 19 namespace power_manager {
20 class PowerManagementPolicy; 20 class PowerManagementPolicy;
21 class PowerSupplyProperties; 21 class PowerSupplyProperties;
22 } 22 }
23 23
24 namespace chromeos { 24 namespace chromeos {
25 25
26 // Callback used for getting the current screen brightness. The param is in the
27 // range [0.0, 100.0].
28 typedef base::Callback<void(double)> GetScreenBrightnessPercentCallback;
29
30 // Callback used for getting the current backlights forced off state.
31 typedef base::Callback<void(bool)> GetBacklightsForcedOffCallback;
32
33 // PowerManagerClient is used to communicate with the power manager. 26 // PowerManagerClient is used to communicate with the power manager.
34 class CHROMEOS_EXPORT PowerManagerClient : public DBusClient { 27 class CHROMEOS_EXPORT PowerManagerClient : public DBusClient {
35 public: 28 public:
29 enum class LidState {
30 OPEN,
31 CLOSED,
32 NOT_PRESENT,
33 };
34
35 enum class TabletMode {
36 ON,
37 OFF,
38 UNSUPPORTED,
39 };
40
41 // Callback used for getting the current screen brightness. The param is in
42 // the range [0.0, 100.0].
43 typedef base::Callback<void(double)> GetScreenBrightnessPercentCallback;
44
45 // Callback passed to GetBacklightsForcedOff().
46 typedef base::Callback<void(bool forced_off)> GetBacklightsForcedOffCallback;
47
48 // Callback passed to GetSwitchStates().
49 typedef base::Callback<void(LidState, TabletMode)> GetSwitchStatesCallback;
50
36 // Interface for observing changes from the power manager. 51 // Interface for observing changes from the power manager.
37 class Observer { 52 class Observer {
38 public: 53 public:
39 virtual ~Observer() {} 54 virtual ~Observer() {}
40 55
41 // Called if the power manager process restarts. 56 // Called if the power manager process restarts.
42 virtual void PowerManagerRestarted() {} 57 virtual void PowerManagerRestarted() {}
43 58
44 // Called when the brightness is changed. 59 // Called when the brightness is changed.
45 // |level| is of the range [0, 100]. 60 // |level| is of the range [0, 100].
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // finished running and those observers that wish to asynchronously delay 95 // finished running and those observers that wish to asynchronously delay
81 // the suspend should call PowerManagerClient::GetSuspendReadinessCallback() 96 // the suspend should call PowerManagerClient::GetSuspendReadinessCallback()
82 // from within this method. The returned callback should be run once the 97 // from within this method. The returned callback should be run once the
83 // observer is ready for suspend. 98 // observer is ready for suspend.
84 virtual void DarkSuspendImminent() {} 99 virtual void DarkSuspendImminent() {}
85 100
86 // Called when the power button is pressed or released. 101 // Called when the power button is pressed or released.
87 virtual void PowerButtonEventReceived(bool down, 102 virtual void PowerButtonEventReceived(bool down,
88 const base::TimeTicks& timestamp) {} 103 const base::TimeTicks& timestamp) {}
89 104
90 // Called when the device's lid is opened or closed. 105 // Called when the device's lid is opened or closed. LidState::NOT_PRESENT
91 virtual void LidEventReceived(bool open, 106 // is never passed.
107 virtual void LidEventReceived(LidState state,
92 const base::TimeTicks& timestamp) {} 108 const base::TimeTicks& timestamp) {}
93 109
94 // Called when the device's tablet mode switch is on or off. 110 // Called when the device's tablet mode switch is on or off.
95 virtual void TabletModeEventReceived(bool on, 111 // TabletMode::UNSUPPORTED is never passed.
112 virtual void TabletModeEventReceived(TabletMode mode,
96 const base::TimeTicks& timestamp) {} 113 const base::TimeTicks& timestamp) {}
97 114
98 // Called when the idle action will be performed after 115 // Called when the idle action will be performed after
99 // |time_until_idle_action|. 116 // |time_until_idle_action|.
100 virtual void IdleActionImminent( 117 virtual void IdleActionImminent(
101 const base::TimeDelta& time_until_idle_action) {} 118 const base::TimeDelta& time_until_idle_action) {}
102 119
103 // Called after IdleActionImminent() when the inactivity timer is reset 120 // Called after IdleActionImminent() when the inactivity timer is reset
104 // before the idle action has been performed. 121 // before the idle action has been performed.
105 virtual void IdleActionDeferred() {} 122 virtual void IdleActionDeferred() {}
(...skipping 30 matching lines...) Expand all
136 virtual void DecreaseScreenBrightness(bool allow_off) = 0; 153 virtual void DecreaseScreenBrightness(bool allow_off) = 0;
137 154
138 // Increases the screen brightness. 155 // Increases the screen brightness.
139 virtual void IncreaseScreenBrightness() = 0; 156 virtual void IncreaseScreenBrightness() = 0;
140 157
141 // Set the screen brightness to |percent|, in the range [0.0, 100.0]. 158 // Set the screen brightness to |percent|, in the range [0.0, 100.0].
142 // If |gradual| is true, the transition will be animated. 159 // If |gradual| is true, the transition will be animated.
143 virtual void SetScreenBrightnessPercent(double percent, bool gradual) = 0; 160 virtual void SetScreenBrightnessPercent(double percent, bool gradual) = 0;
144 161
145 // Asynchronously gets the current screen brightness, in the range 162 // Asynchronously gets the current screen brightness, in the range
146 // [0.0, 100.0]. 163 // [0.0, 100.0]. On error (e.g. powerd not running), |callback| will not be
164 // run.
147 virtual void GetScreenBrightnessPercent( 165 virtual void GetScreenBrightnessPercent(
148 const GetScreenBrightnessPercentCallback& callback) = 0; 166 const GetScreenBrightnessPercentCallback& callback) = 0;
149 167
150 // Decreases the keyboard brightness. 168 // Decreases the keyboard brightness.
151 virtual void DecreaseKeyboardBrightness() = 0; 169 virtual void DecreaseKeyboardBrightness() = 0;
152 170
153 // Increases the keyboard brightness. 171 // Increases the keyboard brightness.
154 virtual void IncreaseKeyboardBrightness() = 0; 172 virtual void IncreaseKeyboardBrightness() = 0;
155 173
156 // Requests an updated copy of the power status. Observer::PowerChanged() 174 // Requests an updated copy of the power status. Observer::PowerChanged()
(...skipping 23 matching lines...) Expand all
180 198
181 // Tells powerd whether or not we are in a projecting mode. This is used to 199 // Tells powerd whether or not we are in a projecting mode. This is used to
182 // adjust idleness thresholds and derived, on this side, from the number of 200 // adjust idleness thresholds and derived, on this side, from the number of
183 // video outputs attached. 201 // video outputs attached.
184 virtual void SetIsProjecting(bool is_projecting) = 0; 202 virtual void SetIsProjecting(bool is_projecting) = 0;
185 203
186 // Tells powerd to change the power source to the given ID. An empty string 204 // Tells powerd to change the power source to the given ID. An empty string
187 // causes powerd to switch to using the battery on devices with type-C ports. 205 // causes powerd to switch to using the battery on devices with type-C ports.
188 virtual void SetPowerSource(const std::string& id) = 0; 206 virtual void SetPowerSource(const std::string& id) = 0;
189 207
190 // Forces the display and keyboard backlights (if present) to |forced_off|. 208 // Forces the display and (if present) keyboard backlights to |forced_off|.
191 virtual void SetBacklightsForcedOff(bool forced_off) = 0; 209 virtual void SetBacklightsForcedOff(bool forced_off) = 0;
192 210
193 // Gets the display and keyboard backlights (if present) forced off state. 211 // Gets the display and (if present) keyboard backlights' forced-off state. On
212 // error (e.g. powerd not running), |callback| will not be run.
194 virtual void GetBacklightsForcedOff( 213 virtual void GetBacklightsForcedOff(
195 const GetBacklightsForcedOffCallback& callback) = 0; 214 const GetBacklightsForcedOffCallback& callback) = 0;
196 215
216 // Asynchronously fetches the current state of various hardware switches (e.g.
217 // the lid switch and the tablet-mode switch). On error (e.g. powerd not
218 // running), |callback| will not be run.
219 virtual void GetSwitchStates(const GetSwitchStatesCallback& callback) = 0;
220
197 // Returns a callback that can be called by an observer to report 221 // Returns a callback that can be called by an observer to report
198 // readiness for suspend. See Observer::SuspendImminent(). 222 // readiness for suspend. See Observer::SuspendImminent().
199 virtual base::Closure GetSuspendReadinessCallback() = 0; 223 virtual base::Closure GetSuspendReadinessCallback() = 0;
200 224
201 // Returns the number of callbacks returned by GetSuspendReadinessCallback() 225 // Returns the number of callbacks returned by GetSuspendReadinessCallback()
202 // for the current suspend attempt but not yet called. Used by tests. 226 // for the current suspend attempt but not yet called. Used by tests.
203 virtual int GetNumPendingSuspendReadinessCallbacks() = 0; 227 virtual int GetNumPendingSuspendReadinessCallbacks() = 0;
204 228
205 // Creates the instance. 229 // Creates the instance.
206 static PowerManagerClient* Create(DBusClientImplementationType type); 230 static PowerManagerClient* Create(DBusClientImplementationType type);
207 231
208 ~PowerManagerClient() override; 232 ~PowerManagerClient() override;
209 233
210 protected: 234 protected:
211 // Needs to call DBusClient::Init(). 235 // Needs to call DBusClient::Init().
212 friend class PowerManagerClientTest; 236 friend class PowerManagerClientTest;
213 237
214 // Create() should be used instead. 238 // Create() should be used instead.
215 PowerManagerClient(); 239 PowerManagerClient();
216 240
217 private: 241 private:
218 DISALLOW_COPY_AND_ASSIGN(PowerManagerClient); 242 DISALLOW_COPY_AND_ASSIGN(PowerManagerClient);
219 }; 243 };
220 244
221 } // namespace chromeos 245 } // namespace chromeos
222 246
223 #endif // CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ 247 #endif // CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
OLDNEW
« no previous file with comments | « chromeos/dbus/fake_power_manager_client.cc ('k') | chromeos/dbus/power_manager_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698