| Index: ash/system/chromeos/emulator/battery_emulation_controller.h
|
| diff --git a/ash/system/chromeos/emulator/battery_emulation_controller.h b/ash/system/chromeos/emulator/battery_emulation_controller.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..427b444d0aa9cde1a0f882663b0d67ed89674665
|
| --- /dev/null
|
| +++ b/ash/system/chromeos/emulator/battery_emulation_controller.h
|
| @@ -0,0 +1,104 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef ASH_SYSTEM_CHROMEOS_EMULATOR_BATTERY_EMULATION_CONTROLLER_H_
|
| +#define ASH_SYSTEM_CHROMEOS_EMULATOR_BATTERY_EMULATION_CONTROLLER_H_
|
| +
|
| +#include "ash/ash_export.h"
|
| +#include "base/command_line.h"
|
| +#include "base/observer_list.h"
|
| +#include "base/power_monitor/power_monitor_device_source.h"
|
| +#include "base/strings/string_number_conversions.h"
|
| +#include "base/strings/string_split.h"
|
| +#include "chromeos/chromeos_switches.h"
|
| +#include "chromeos/dbus/power_manager/input_event.pb.h"
|
| +#include "chromeos/dbus/power_manager/peripheral_battery_status.pb.h"
|
| +#include "chromeos/dbus/power_manager/policy.pb.h"
|
| +#include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
|
| +#include "chromeos/dbus/power_manager/suspend.pb.h"
|
| +#include "chromeos/dbus/power_manager_client.h"
|
| +
|
| +namespace ash {
|
| +class ASH_EXPORT BatteryEmulationController
|
| + : public chromeos::PowerManagerClient {
|
| + public:
|
| + BatteryEmulationController();
|
| +
|
| + ~BatteryEmulationController() override;
|
| +
|
| + int num_pending_suspend_readiness_callbacks() const {
|
| + return num_pending_suspend_readiness_callbacks_;
|
| + }
|
| +
|
| + void Init(dbus::Bus* bus) override;
|
| +
|
| + void AddObserver(Observer* observer) override;
|
| + void RemoveObserver(Observer* observer) override;
|
| + bool HasObserver(const Observer* observer) const override;
|
| + void SetRenderProcessManagerDelegate(
|
| + base::WeakPtr<RenderProcessManagerDelegate> delegate) override {}
|
| +
|
| + void SetBatteryCharging(bool charge);
|
| + void SetBatteryPercentage(int percentage);
|
| + void SetBatteryFullTimeToEmpty(int time_in_hours);
|
| + void SetExternalPower(int power_source);
|
| + void SetIsCalculatingBatteryTime(bool calculating);
|
| +
|
| + void DecreaseScreenBrightness(bool allow_off) override;
|
| + void IncreaseScreenBrightness() override;
|
| +
|
| + void SetScreenBrightnessPercent(double percent, bool gradual) override;
|
| + void GetScreenBrightnessPercent(
|
| + const chromeos::GetScreenBrightnessPercentCallback& callback) override;
|
| +
|
| + void DecreaseKeyboardBrightness() override;
|
| + void IncreaseKeyboardBrightness() override;
|
| +
|
| + void RequestStatusUpdate() override;
|
| + void RequestSuspend() override {}
|
| + void RequestRestart() override {}
|
| + void RequestShutdown() override {}
|
| +
|
| + void NotifyUserActivity(power_manager::UserActivityType type) override {}
|
| + void NotifyVideoActivity(bool is_fullscreen) override {}
|
| +
|
| + void SetPolicy(const power_manager::PowerManagementPolicy& policy) override {}
|
| + void SetIsProjecting(bool is_projecting) override {}
|
| + base::Closure GetSuspendReadinessCallback() override;
|
| + int GetNumPendingSuspendReadinessCallbacks() override;
|
| +
|
| + void UpdateStatus();
|
| +
|
| + private:
|
| + void HandleSuspendReadiness();
|
| +
|
| + void SetBrightness(double percent, bool user_initiated);
|
| +
|
| + void ParseCommandLineSwitch();
|
| +
|
| + void ParseOption(const std::string& arg0, const std::string& arg1);
|
| +
|
| + base::TimeDelta power_cycle_delay_; // Time over which to cycle power state
|
| + bool discharging_;
|
| + double brightness_;
|
| + int battery_percentage_;
|
| + bool is_calculating_;
|
| + int power_source_;
|
| + base::ObserverList<Observer> observers_;
|
| + base::RepeatingTimer<BatteryEmulationController> update_timer_;
|
| + power_manager::PowerSupplyProperties props_;
|
| +
|
| + int hours_to_empty_full_battery = 4 * 60 * 60; // 4 hours.
|
| +
|
| + // Number of callbacks returned by GetSuspendReadinessCallback() but not yet
|
| + // invoked.
|
| + int num_pending_suspend_readiness_callbacks_;
|
| +
|
| + // Note: This should remain the last member so it'll be destroyed and
|
| + // invalidate its weak pointers before any other members are destroyed.
|
| + base::WeakPtrFactory<BatteryEmulationController> weak_ptr_factory_;
|
| +};
|
| +}
|
| +
|
| +#endif // ASH_SYSTEM_CHROMEOS_EMULATOR_CHROMEOS_BATTERY_EMULATION_CONTROLLER_H_
|
|
|