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

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

Issue 9838085: Move files inside chrome/browser/chromeos/dbus to chromeos/dbus (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase Created 8 years, 8 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
6 #define CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/callback.h"
12 #include "chrome/browser/chromeos/dbus/dbus_client_implementation_type.h"
13
14 #include "chromeos/dbus/power_supply_status.h"
15
16 namespace base {
17 class TimeTicks;
18 }
19 namespace dbus {
20 class Bus;
21 }
22
23 namespace chromeos {
24
25 // Callback used for processing the idle time. The int64 param is the number of
26 // seconds the user has been idle.
27 typedef base::Callback<void(int64)> CalculateIdleTimeCallback;
28 typedef base::Callback<void(void)> IdleNotificationCallback;
29 typedef base::Callback<void(uint32)> PowerStateRequestIdCallback;
30
31 // Callback used for getting the current screen brightness. The param is in the
32 // range [0.0, 100.0].
33 typedef base::Callback<void(double)> GetScreenBrightnessPercentCallback;
34
35 // PowerManagerClient is used to communicate with the power manager.
36 class PowerManagerClient {
37 public:
38 // Interface for observing changes from the power manager.
39 class Observer {
40 public:
41 virtual ~Observer() {}
42
43 // Called when the brightness is changed.
44 // |level| is of the range [0, 100].
45 // |user_initiated| is true if the action is initiated by the user.
46 virtual void BrightnessChanged(int level, bool user_initiated) {}
47
48 // Called when power supply polling takes place. |status| is a data
49 // structure that contains the current state of the power supply.
50 virtual void PowerChanged(const PowerSupplyStatus& status) {}
51
52 // Called when the system resumes from suspend.
53 virtual void SystemResumed() {}
54
55 // Called when the power button is pressed or released.
56 virtual void PowerButtonStateChanged(bool down,
57 const base::TimeTicks& timestamp) {}
58
59 // Called when the lock button is pressed or released.
60 virtual void LockButtonStateChanged(bool down,
61 const base::TimeTicks& timestamp) {}
62
63 // Called when the screen is locked.
64 virtual void LockScreen() {}
65
66 // Called when the screen is unlocked.
67 virtual void UnlockScreen() {}
68
69 // Called when the screen fails to unlock.
70 virtual void UnlockScreenFailed() {}
71
72 // Called when we go idle for threshold time.
73 virtual void IdleNotify(int64 threshold_secs) {}
74
75 // Called when we go from idle to active.
76 virtual void ActiveNotify() {}
77 };
78
79 enum UpdateRequestType {
80 UPDATE_INITIAL, // Initial update request.
81 UPDATE_USER, // User initialted update request.
82 UPDATE_POLL // Update requested by poll signal.
83 };
84
85 enum PowerStateOverrideType {
86 DISABLE_IDLE_DIM = 1, // Disable screen dimming on idle.
87 DISABLE_IDLE_BLANK = 2, // Disable screen blanking on idle.
88 DISABLE_IDLE_SUSPEND = 3, // Disable suspend on idle.
89 DISABLE_IDLE_LID_SUSPEND = 4, // Disable suspend on lid closed.
90 };
91
92 // Adds and removes the observer.
93 virtual void AddObserver(Observer* observer) = 0;
94 virtual void RemoveObserver(Observer* observer) = 0;
95 virtual bool HasObserver(Observer* observer) = 0;
96
97 // Decreases the screen brightness. |allow_off| controls whether or not
98 // it's allowed to turn off the back light.
99 virtual void DecreaseScreenBrightness(bool allow_off) = 0;
100
101 // Increases the screen brightness.
102 virtual void IncreaseScreenBrightness() = 0;
103
104 // Set the screen brightness to |percent|, in the range [0.0, 100.0].
105 // If |gradual| is true, the transition will be animated.
106 virtual void SetScreenBrightnessPercent(double percent, bool gradual) = 0;
107
108 // Asynchronously gets the current screen brightness, in the range
109 // [0.0, 100.0].
110 virtual void GetScreenBrightnessPercent(
111 const GetScreenBrightnessPercentCallback& callback) = 0;
112
113 // Request for power supply status update.
114 virtual void RequestStatusUpdate(UpdateRequestType update_type) = 0;
115
116 // Requests restart of the system.
117 virtual void RequestRestart() = 0;
118
119 // Requests shutdown of the system.
120 virtual void RequestShutdown() = 0;
121
122 // Notifies PowerManager that a user requested to lock the screen.
123 virtual void NotifyScreenLockRequested() = 0;
124
125 // Notifies PowerManager that screen lock has been completed.
126 virtual void NotifyScreenLockCompleted() = 0;
127
128 // Notifies PowerManager that a user unlocked the screen.
129 virtual void NotifyScreenUnlockRequested() = 0;
130
131 // Notifies PowerManager that screen is unlocked.
132 virtual void NotifyScreenUnlockCompleted() = 0;
133
134 // Idle management functions:
135
136 // Calculates idle time asynchronously, after the idle time request has
137 // replied. It passes the idle time in seconds to |callback|. If it
138 // encounters some error, it passes -1 to |callback|.
139 virtual void CalculateIdleTime(const CalculateIdleTimeCallback& callback) = 0;
140
141 // Requests notification for Idle at a certain threshold.
142 // NOTE: This notification is one shot, once the machine has been idle for
143 // threshold time, a notification will be sent and then that request will be
144 // removed from the notification queue. If you wish notifications the next
145 // time the machine goes idle for that much time, request again.
146 virtual void RequestIdleNotification(int64 threshold_secs) = 0;
147
148 // Requests that the observers be notified in case of an Idle->Active event.
149 // NOTE: Like the previous request, this will also get triggered exactly once.
150 virtual void RequestActiveNotification() = 0;
151
152 // Override the current power state on the machine. The overrides will be
153 // applied to the request ID specified. To specify a new request; use 0 as
154 // the request id and the method will call the provided callback with the
155 // new request ID for use with further calls.
156 // The overrides parameter will & out the PowerStateOverrideType types to
157 // allow specific selection of overrides. For example, to override just dim
158 // and suspending but leaving blanking in, set overrides to,
159 // DISABLE_IDLE_DIM | DISABLE_IDLE_SUSPEND.
160 virtual void RequestPowerStateOverrides(
161 uint32 request_id,
162 uint32 duration,
163 int overrides,
164 PowerStateRequestIdCallback callback) = 0;
165
166 // Creates the instance.
167 static PowerManagerClient* Create(DBusClientImplementationType type,
168 dbus::Bus* bus);
169
170 virtual ~PowerManagerClient();
171
172 protected:
173 // Create() should be used instead.
174 PowerManagerClient();
175
176 private:
177 DISALLOW_COPY_AND_ASSIGN(PowerManagerClient);
178 };
179
180 } // namespace chromeos
181
182 #endif // CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/dbus/mock_update_engine_client.cc ('k') | chrome/browser/chromeos/dbus/power_manager_client.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698