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

Unified Diff: ash/common/accelerators/accelerator_controller.cc

Issue 2427913003: Use mojo volume interfaces for mash and classic ash. (Closed)
Patch Set: Split volume and system events observers; only hook up volume. Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/common/accelerators/accelerator_controller.h ('k') | ash/common/system/audio/tray_audio.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/accelerators/accelerator_controller.cc
diff --git a/ash/common/accelerators/accelerator_controller.cc b/ash/common/accelerators/accelerator_controller.cc
index aa8bcf0573b83f1d71afcfe1d39df6d2c34ccccb..2a58f7c9fd2c712e945000f2f1a8ebb2e35a1c7b 100644
--- a/ash/common/accelerators/accelerator_controller.cc
+++ b/ash/common/accelerators/accelerator_controller.cc
@@ -23,7 +23,6 @@
#include "ash/common/system/status_area_widget.h"
#include "ash/common/system/tray/system_tray_delegate.h"
#include "ash/common/system/tray/system_tray_notifier.h"
-#include "ash/common/system/volume_control_delegate.h"
#include "ash/common/system/web_notification/web_notification_tray.h"
#include "ash/common/wm/mru_window_tracker.h"
#include "ash/common/wm/overview/window_selector_controller.h"
@@ -36,6 +35,7 @@
#include "ash/common/wm_window.h"
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics.h"
+#include "services/service_manager/public/cpp/connector.h"
#include "ui/base/accelerators/accelerator.h"
#include "ui/base/accelerators/accelerator_manager.h"
#include "ui/keyboard/keyboard_controller.h"
@@ -479,25 +479,31 @@ void HandleToggleSpokenFeedback() {
A11Y_NOTIFICATION_SHOW);
}
-void HandleVolumeDown(const ui::Accelerator& accelerator) {
- VolumeControlDelegate* volume_delegate =
- WmShell::Get()->system_tray_delegate()->GetVolumeControlDelegate();
- if (volume_delegate)
- volume_delegate->HandleVolumeDown(accelerator);
+void HandleVolumeDown(mojom::VolumeController* volume_controller,
+ const ui::Accelerator& accelerator) {
+ if (accelerator.key_code() == ui::VKEY_VOLUME_DOWN)
+ base::RecordAction(UserMetricsAction("Accel_VolumeDown_F9"));
+
+ if (volume_controller)
+ volume_controller->VolumeDown();
}
-void HandleVolumeMute(const ui::Accelerator& accelerator) {
- VolumeControlDelegate* volume_delegate =
- WmShell::Get()->system_tray_delegate()->GetVolumeControlDelegate();
- if (volume_delegate)
- volume_delegate->HandleVolumeMute(accelerator);
+void HandleVolumeMute(mojom::VolumeController* volume_controller,
+ const ui::Accelerator& accelerator) {
+ if (accelerator.key_code() == ui::VKEY_VOLUME_MUTE)
+ base::RecordAction(UserMetricsAction("Accel_VolumeMute_F8"));
+
+ if (volume_controller)
+ volume_controller->VolumeMute();
}
-void HandleVolumeUp(const ui::Accelerator& accelerator) {
- VolumeControlDelegate* volume_delegate =
- WmShell::Get()->system_tray_delegate()->GetVolumeControlDelegate();
- if (volume_delegate)
- volume_delegate->HandleVolumeUp(accelerator);
+void HandleVolumeUp(mojom::VolumeController* volume_controller,
+ const ui::Accelerator& accelerator) {
+ if (accelerator.key_code() == ui::VKEY_VOLUME_UP)
+ base::RecordAction(UserMetricsAction("Accel_VolumeUp_F10"));
+
+ if (volume_controller)
+ volume_controller->VolumeUp();
}
#endif // defined(OS_CHROMEOS)
@@ -1060,13 +1066,13 @@ void AcceleratorController::PerformAction(AcceleratorAction action,
WmShell::Get()->system_tray_notifier()->NotifyRequestToggleWifi();
break;
case VOLUME_DOWN:
- HandleVolumeDown(accelerator);
+ HandleVolumeDown(GetVolumeController(), accelerator);
break;
case VOLUME_MUTE:
- HandleVolumeMute(accelerator);
+ HandleVolumeMute(GetVolumeController(), accelerator);
break;
case VOLUME_UP:
- HandleVolumeUp(accelerator);
+ HandleVolumeUp(GetVolumeController(), accelerator);
break;
#else
case DUMMY_FOR_RESERVED:
@@ -1129,4 +1135,19 @@ AcceleratorController::GetAcceleratorProcessingRestriction(int action) {
return RESTRICTION_NONE;
}
+mojom::VolumeController* AcceleratorController::GetVolumeController() {
+ if (!volume_controller_ && WmShell::Get()->delegate()->GetShellConnector()) {
+ WmShell::Get()->delegate()->GetShellConnector()->ConnectToInterface(
+ "service:content_browser", &volume_controller_);
+ volume_controller_.set_connection_error_handler(
+ base::Bind(&AcceleratorController::OnVolumeControllerConnectionError,
+ base::Unretained(this)));
+ }
+ return volume_controller_.get();
+}
+
+void AcceleratorController::OnVolumeControllerConnectionError() {
+ volume_controller_.reset();
+}
+
} // namespace ash
« no previous file with comments | « ash/common/accelerators/accelerator_controller.h ('k') | ash/common/system/audio/tray_audio.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698