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

Unified Diff: ash/root_window_controller.cc

Issue 385073009: Side Slide Gestures for Accessibility (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added Tests for Slide Gestures Created 6 years, 5 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
Index: ash/root_window_controller.cc
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc
index aafe0ba0c61f8dbeea3e3b61770b5191935adab0..189dd80114f1fe5188562ccbe5be7be02018084c 100644
--- a/ash/root_window_controller.cc
+++ b/ash/root_window_controller.cc
@@ -9,6 +9,7 @@
#include "ash/ash_constants.h"
#include "ash/ash_switches.h"
+#include "ash/audio/sounds.h"
#include "ash/desktop_background/desktop_background_controller.h"
#include "ash/desktop_background/desktop_background_widget_controller.h"
#include "ash/desktop_background/user_wallpaper_delegate.h"
@@ -51,6 +52,9 @@
#include "ash/wm/workspace_controller.h"
#include "base/command_line.h"
#include "base/time/time.h"
+#include "chromeos/audio/chromeos_sounds.h"
James Cook 2014/07/14 17:19:31 Ash code is compile on non-ChromeOS platforms (e.g
lisayin 2014/07/14 22:38:38 Done.
+#include "chromeos/audio/cras_audio_handler.h"
+#include "chromeos/chromeos_switches.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/client/screen_position_client.h"
#include "ui/aura/window.h"
@@ -264,11 +268,14 @@ class EmptyWindowDelegate : public aura::WindowDelegate {
#if defined(OS_CHROMEOS)
// Responsible for initializing TouchExplorationController when spoken
// feedback is on.
-class CrosAccessibilityObserver : public AccessibilityObserver {
+class CrosAccessibilityObserver
James Cook 2014/07/14 17:19:30 Please extract this class into its own file. It's
dmazzoni 2014/07/14 18:00:33 That sounds good to me. I'd call it something like
lisayin 2014/07/14 22:40:36 Should the file be in the same folder as this file
+ : public AccessibilityObserver,
+ public ui::TouchExplorationControllerDelegate {
public:
explicit CrosAccessibilityObserver(
RootWindowController* root_window_controller)
- : root_window_controller_(root_window_controller) {
+ : root_window_controller_(root_window_controller),
+ audio_handler_(chromeos::CrasAudioHandler::Get()) {
Shell::GetInstance()->system_tray_notifier()->
AddAccessibilityObserver(this);
UpdateTouchExplorationState();
@@ -281,6 +288,34 @@ class CrosAccessibilityObserver : public AccessibilityObserver {
system_tray_notifier->RemoveAccessibilityObserver(this);
}
+ bool VolumeAdjustSoundEnabled() {
James Cook 2014/07/14 17:19:30 const?
lisayin 2014/07/14 22:38:38 Done.
+ return !CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kDisableVolumeAdjustSound);
+ }
+
+ // Overridden from TouchExplorationControllerDelegate
James Cook 2014/07/14 17:19:30 nit: end with colon
lisayin 2014/07/14 22:38:38 Done.
+ virtual void PlayVolumeAdjustSound() OVERRIDE{
+ if (!VolumeAdjustSoundEnabled())
+ return;
+
+ if (!audio_handler_->IsOutputMuted() ||
+ !audio_handler_->GetOutputVolumePercent() == 100)
+ PlaySystemSoundIfSpokenFeedback(chromeos::SOUND_VOLUME_ADJUST);
+ }
+
+ // Overridden from TouchExplorationControllerDelegate
James Cook 2014/07/14 17:19:30 nit: We usually only have one of these lines
lisayin 2014/07/14 22:38:38 Done.
+ virtual void AdjustSound(float volume) OVERRIDE {
+ if (volume > 0) {
+ if (audio_handler_->IsOutputMuted()) {
+ audio_handler_->SetOutputMute(false);
+ }
+ }
+ audio_handler_->SetOutputVolumePercent(volume);
+ // Avoid negative volume.
+ if (audio_handler_->IsOutputVolumeBelowDefaultMuteLvel())
James Cook 2014/07/14 17:19:31 Not your typo, but could you use this CL to change
+ audio_handler_->SetOutputMute(true);
+ }
+
private:
void UpdateTouchExplorationState() {
AccessibilityDelegate* delegate =
@@ -288,9 +323,8 @@ class CrosAccessibilityObserver : public AccessibilityObserver {
bool enabled = delegate->IsSpokenFeedbackEnabled();
if (enabled && !touch_exploration_controller_.get()) {
- touch_exploration_controller_.reset(
- new ui::TouchExplorationController(
- root_window_controller_->GetRootWindow()));
+ touch_exploration_controller_.reset(new ui::TouchExplorationController(
+ root_window_controller_->GetRootWindow(), this));
} else if (!enabled) {
touch_exploration_controller_.reset();
}
@@ -304,6 +338,7 @@ class CrosAccessibilityObserver : public AccessibilityObserver {
scoped_ptr<ui::TouchExplorationController> touch_exploration_controller_;
RootWindowController* root_window_controller_;
+ chromeos::CrasAudioHandler* audio_handler_;
DISALLOW_COPY_AND_ASSIGN(CrosAccessibilityObserver);
};
« no previous file with comments | « no previous file | ui/chromeos/touch_exploration_controller.h » ('j') | ui/chromeos/touch_exploration_controller.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698