Index: components/arc/power/arc_power_bridge.cc |
diff --git a/components/arc/power/arc_power_bridge.cc b/components/arc/power/arc_power_bridge.cc |
index a9a47f52230fa89212c416b9dfca5a0d4cbbd55d..e0b50f84199d084d4ce77d3ab1d181959eab2f03 100644 |
--- a/components/arc/power/arc_power_bridge.cc |
+++ b/components/arc/power/arc_power_bridge.cc |
@@ -17,7 +17,7 @@ |
namespace arc { |
ArcPowerBridge::ArcPowerBridge(ArcBridgeService* bridge_service) |
- : ArcService(bridge_service), binding_(this) { |
+ : ArcService(bridge_service), binding_(this), weak_ptr_factory_(this) { |
arc_bridge_service()->power()->AddObserver(this); |
} |
@@ -34,6 +34,10 @@ void ArcPowerBridge::OnInstanceReady() { |
ash::Shell::GetInstance()->display_configurator()->AddObserver(this); |
chromeos::DBusThreadManager::Get()->GetPowerManagerClient()-> |
AddObserver(this); |
+ chromeos::DBusThreadManager::Get() |
+ ->GetPowerManagerClient() |
+ ->GetScreenBrightnessPercent(base::Bind(&ArcPowerBridge::UpdateBrightness, |
+ weak_ptr_factory_.GetWeakPtr())); |
} |
void ArcPowerBridge::OnInstanceClosed() { |
@@ -74,6 +78,18 @@ void ArcPowerBridge::OnPowerStateChanged( |
power_instance->SetInteractive(enabled); |
} |
+void ArcPowerBridge::UpdateBrightness(double percent) { |
+ mojom::PowerInstance* power_instance = ARC_GET_INSTANCE_FOR_METHOD( |
+ arc_bridge_service()->power(), UpdateBrightness); |
+ if (!power_instance) |
+ return; |
+ power_instance->UpdateBrightness(percent); |
Daniel Erat
2017/04/05 23:43:38
nit: just do:
if (power_instance)
power_ins
|
+} |
+ |
+void ArcPowerBridge::BrightnessChanged(int level, bool user_initiated) { |
Daniel Erat
2017/04/05 23:43:38
please make order of methods in .cc files match or
yueli
2017/04/06 01:12:37
Done.
|
+ UpdateBrightness(static_cast<double>(level)); |
+} |
+ |
void ArcPowerBridge::OnAcquireDisplayWakeLock(mojom::DisplayWakeLockType type) { |
if (!chromeos::PowerPolicyController::IsInitialized()) { |
LOG(WARNING) << "PowerPolicyController is not available"; |
@@ -126,6 +142,13 @@ void ArcPowerBridge::IsDisplayOn(const IsDisplayOnCallback& callback) { |
ash::Shell::GetInstance()->display_configurator()->IsDisplayOn()); |
} |
+void ArcPowerBridge::SetBrightness(double percent) { |
+ chromeos::DBusThreadManager::Get() |
+ ->GetPowerManagerClient() |
+ ->SetScreenBrightnessPercent(percent, true); |
+ return; |
Daniel Erat
2017/04/05 23:43:38
remove pointless return statement
yueli
2017/04/06 01:12:37
Done.
|
+} |
+ |
void ArcPowerBridge::ReleaseAllDisplayWakeLocks() { |
if (!chromeos::PowerPolicyController::IsInitialized()) { |
LOG(WARNING) << "PowerPolicyController is not available"; |