Home | History | Annotate | Download | only in ash
      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 
     12 namespace chromeos {
     13 class CrasAudioHandler;
     14 }
     15 
     16 namespace ash {
     17 class 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.
     23 class 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