OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ | 5 #ifndef CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ |
6 #define CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ | 6 #define CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/callback.h" |
11 | 12 |
12 namespace dbus { | 13 namespace dbus { |
13 class Bus; | 14 class Bus; |
14 } // namespace | 15 } // namespace |
15 | 16 |
16 namespace chromeos { | 17 namespace chromeos { |
17 | 18 |
18 // This is the local struct that is used in Chrome. | 19 // This is the local struct that is used in Chrome. |
19 struct PowerSupplyStatus { | 20 struct PowerSupplyStatus { |
20 bool line_power_on; | 21 bool line_power_on; |
21 | 22 |
22 bool battery_is_present; | 23 bool battery_is_present; |
23 bool battery_is_full; | 24 bool battery_is_full; |
24 | 25 |
25 // Time in seconds until the battery is empty or full, 0 for unknown. | 26 // Time in seconds until the battery is empty or full, 0 for unknown. |
26 int64 battery_seconds_to_empty; | 27 int64 battery_seconds_to_empty; |
27 int64 battery_seconds_to_full; | 28 int64 battery_seconds_to_full; |
28 | 29 |
29 double battery_percentage; | 30 double battery_percentage; |
30 | 31 |
31 PowerSupplyStatus(); | 32 PowerSupplyStatus(); |
32 const std::string& ToString() const; | 33 const std::string& ToString() const; |
33 }; | 34 }; |
34 | 35 |
| 36 // Callback used for processing the idle time. The int64 param is the number of |
| 37 // seconds the user has been idle. |
| 38 typedef base::Callback<void(int64)> CalculateIdleTimeCallback; |
| 39 |
35 // PowerManagerClient is used to communicate with the power manager. | 40 // PowerManagerClient is used to communicate with the power manager. |
36 class PowerManagerClient { | 41 class PowerManagerClient { |
37 public: | 42 public: |
38 // Interface for observing changes from the power manager. | 43 // Interface for observing changes from the power manager. |
39 class Observer { | 44 class Observer { |
40 public: | 45 public: |
41 // Called when the brightness is changed. | 46 // Called when the brightness is changed. |
42 // |level| is of the range [0, 100]. | 47 // |level| is of the range [0, 100]. |
43 // |user_initiated| is true if the action is initiated by the user. | 48 // |user_initiated| is true if the action is initiated by the user. |
44 virtual void BrightnessChanged(int level, bool user_initiated) {} | 49 virtual void BrightnessChanged(int level, bool user_initiated) {} |
(...skipping 16 matching lines...) Expand all Loading... |
61 | 66 |
62 // UI initiated request for power supply status update. | 67 // UI initiated request for power supply status update. |
63 virtual void RequestStatusUpdate() = 0; | 68 virtual void RequestStatusUpdate() = 0; |
64 | 69 |
65 // Requests restart of the system. | 70 // Requests restart of the system. |
66 virtual void RequestRestart() = 0; | 71 virtual void RequestRestart() = 0; |
67 | 72 |
68 // Requests shutdown of the system. | 73 // Requests shutdown of the system. |
69 virtual void RequestShutdown() = 0; | 74 virtual void RequestShutdown() = 0; |
70 | 75 |
| 76 // Calculates idle time asynchronously, after the idle time request has |
| 77 // replied. It passes the idle time in seconds to |callback|. If it |
| 78 // encounters some error, it passes -1 to |callback|. |
| 79 virtual void CalculateIdleTime(const CalculateIdleTimeCallback& callback) = 0; |
| 80 |
71 // Creates the instance. | 81 // Creates the instance. |
72 static PowerManagerClient* Create(dbus::Bus* bus); | 82 static PowerManagerClient* Create(dbus::Bus* bus); |
73 | 83 |
74 virtual ~PowerManagerClient(); | 84 virtual ~PowerManagerClient(); |
75 | 85 |
76 protected: | 86 protected: |
77 // Create() should be used instead. | 87 // Create() should be used instead. |
78 PowerManagerClient(); | 88 PowerManagerClient(); |
79 | 89 |
80 private: | 90 private: |
81 DISALLOW_COPY_AND_ASSIGN(PowerManagerClient); | 91 DISALLOW_COPY_AND_ASSIGN(PowerManagerClient); |
82 }; | 92 }; |
83 | 93 |
84 } // namespace chromeos | 94 } // namespace chromeos |
85 | 95 |
86 #endif // CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ | 96 #endif // CHROME_BROWSER_CHROMEOS_DBUS_POWER_MANAGER_CLIENT_H_ |
OLD | NEW |