| 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 #ifndef DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 4 #ifndef DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 
| 5 #define DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 5 #define DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 
| 6 | 6 | 
| 7 #include "device/battery/battery_export.h" | 7 #include "device/battery/battery_export.h" | 
| 8 #include "device/battery/battery_status.mojom.h" | 8 #include "device/battery/battery_status.mojom.h" | 
|  | 9 #include "device/battery/battery_status_manager.h" | 
| 9 | 10 | 
| 10 namespace base { | 11 namespace dbus { | 
| 11 class DictionaryValue; | 12 class Bus; | 
| 12 } | 13 }  // namespace dbus | 
| 13 | 14 | 
| 14 namespace device { | 15 namespace device { | 
| 15 |  | 
| 16 // UPowerDeviceState reflects the possible UPower.Device.State values, | 16 // UPowerDeviceState reflects the possible UPower.Device.State values, | 
| 17 // see upower.freedesktop.org/docs/Device.html#Device:State. | 17 // see upower.freedesktop.org/docs/Device.html#Device:State. | 
| 18 enum UPowerDeviceState { | 18 enum UPowerDeviceState { | 
| 19   UPOWER_DEVICE_STATE_UNKNOWN = 0, | 19   UPOWER_DEVICE_STATE_UNKNOWN = 0, | 
| 20   UPOWER_DEVICE_STATE_CHARGING = 1, | 20   UPOWER_DEVICE_STATE_CHARGING = 1, | 
| 21   UPOWER_DEVICE_STATE_DISCHARGING = 2, | 21   UPOWER_DEVICE_STATE_DISCHARGING = 2, | 
| 22   UPOWER_DEVICE_STATE_EMPTY = 3, | 22   UPOWER_DEVICE_STATE_EMPTY = 3, | 
| 23   UPOWER_DEVICE_STATE_FULL = 4, | 23   UPOWER_DEVICE_STATE_FULL = 4, | 
| 24   UPOWER_DEVICE_STATE_PENDING_CHARGE = 5, | 24   UPOWER_DEVICE_STATE_PENDING_CHARGE = 5, | 
| 25   UPOWER_DEVICE_STATE_PENDING_DISCHARGE = 6, | 25   UPOWER_DEVICE_STATE_PENDING_DISCHARGE = 6, | 
| 26 }; | 26 }; | 
| 27 | 27 | 
| 28 // Returns the BatteryStatus computed using the provided dictionary. | 28 // UPowerDeviceType reflects the possible UPower.Device.Type values, | 
| 29 DEVICE_BATTERY_EXPORT BatteryStatus ComputeWebBatteryStatus( | 29 // see upower.freedesktop.org/docs/Device.html#Device:Type. | 
| 30     const base::DictionaryValue& dictionary); | 30 enum UPowerDeviceType { | 
|  | 31   UPOWER_DEVICE_TYPE_UNKNOWN = 0, | 
|  | 32   UPOWER_DEVICE_TYPE_LINE_POWER = 1, | 
|  | 33   UPOWER_DEVICE_TYPE_BATTERY = 2, | 
|  | 34   UPOWER_DEVICE_TYPE_UPS = 3, | 
|  | 35   UPOWER_DEVICE_TYPE_MONITOR = 4, | 
|  | 36   UPOWER_DEVICE_TYPE_MOUSE = 5, | 
|  | 37   UPOWER_DEVICE_TYPE_KEYBOARD = 6, | 
|  | 38   UPOWER_DEVICE_TYPE_PDA = 7, | 
|  | 39   UPOWER_DEVICE_TYPE_PHONE = 8, | 
|  | 40 }; | 
|  | 41 | 
|  | 42 // Creates a notification thread and delegates Start/Stop calls to it. | 
|  | 43 class DEVICE_BATTERY_EXPORT BatteryStatusManagerLinux | 
|  | 44     : public BatteryStatusManager { | 
|  | 45  public: | 
|  | 46   explicit BatteryStatusManagerLinux( | 
|  | 47       const BatteryStatusService::BatteryUpdateCallback& callback); | 
|  | 48   ~BatteryStatusManagerLinux() override; | 
|  | 49 | 
|  | 50  private: | 
|  | 51   friend class BatteryStatusManagerLinuxTest; | 
|  | 52   class BatteryStatusNotificationThread; | 
|  | 53 | 
|  | 54   // BatteryStatusManager: | 
|  | 55   bool StartListeningBatteryChange() override; | 
|  | 56   void StopListeningBatteryChange() override; | 
|  | 57 | 
|  | 58   // Starts the notifier thread if not already started and returns true on | 
|  | 59   // success. | 
|  | 60   bool StartNotifierThreadIfNecessary(); | 
|  | 61   base::Thread* GetNotifierThreadForTesting(); | 
|  | 62 | 
|  | 63   static std::unique_ptr<BatteryStatusManagerLinux> CreateForTesting( | 
|  | 64       const BatteryStatusService::BatteryUpdateCallback& callback, | 
|  | 65       dbus::Bus* bus); | 
|  | 66 | 
|  | 67   BatteryStatusService::BatteryUpdateCallback callback_; | 
|  | 68   std::unique_ptr<BatteryStatusNotificationThread> notifier_thread_; | 
|  | 69 | 
|  | 70   DISALLOW_COPY_AND_ASSIGN(BatteryStatusManagerLinux); | 
|  | 71 }; | 
| 31 | 72 | 
| 32 }  // namespace device | 73 }  // namespace device | 
| 33 | 74 | 
| 34 #endif  // DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 75 #endif  // DEVICE_BATTERY_BATTERY_STATUS_MANAGER_LINUX_H_ | 
| OLD | NEW | 
|---|