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 3// found in the LICENSE file. 4 5#ifndef ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 6#define ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 7 8#include "ash/ash_export.h" 9#include "ash/system/tray_accessibility.h" 10#include "ui/chromeos/touch_exploration_controller.h" 11 12namespace chromeos { 13class CrasAudioHandler; 14} 15 16namespace ash { 17class RootWindowController; 18 19// Responsible for initializing TouchExplorationController when spoken 20// feedback is on for ChromeOS only. This class implements 21// TouchExplorationControllerDelegate which allows touch gestures to manipulate 22// the system. 23class ASH_EXPORT AshTouchExplorationManager 24 : public ash::AccessibilityObserver, 25 public ui::TouchExplorationControllerDelegate { 26 public: 27 explicit AshTouchExplorationManager( 28 RootWindowController* root_window_controller); 29 virtual ~AshTouchExplorationManager(); 30 31 // AccessibilityObserver overrides: 32 virtual void OnAccessibilityModeChanged( 33 AccessibilityNotificationVisibility notify) OVERRIDE; 34 35 // TouchExplorationControllerDelegate overrides: 36 virtual void SetOutputLevel(int volume) OVERRIDE; 37 virtual void SilenceSpokenFeedback() OVERRIDE; 38 virtual void PlayVolumeAdjustEarcon() OVERRIDE; 39 virtual void PlayPassthroughEarcon() OVERRIDE; 40 virtual void PlayExitScreenEarcon() OVERRIDE; 41 virtual void PlayEnterScreenEarcon() OVERRIDE; 42 43 private: 44 void UpdateTouchExplorationState(); 45 bool VolumeAdjustSoundEnabled(); 46 47 scoped_ptr<ui::TouchExplorationController> touch_exploration_controller_; 48 RootWindowController* root_window_controller_; 49 chromeos::CrasAudioHandler* audio_handler_; 50 51 DISALLOW_COPY_AND_ASSIGN(AshTouchExplorationManager); 52}; 53 54} // namespace ash 55 56#endif // ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 57