15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#ifndef ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#define ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ash/ash_export.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ash/system/tray_accessibility.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "ui/chromeos/touch_exploration_controller.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace chromeos { 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class CrasAudioHandler; 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace ash { 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class RootWindowController; 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Responsible for initializing TouchExplorationController when spoken 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// feedback is on for ChromeOS only. This class implements 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// TouchExplorationControllerDelegate which allows touch gestures to manipulate 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// the system. 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class ASH_EXPORT AshTouchExplorationManager 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) : public ash::AccessibilityObserver, 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public ui::TouchExplorationControllerDelegate { 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) public: 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) explicit AshTouchExplorationManager( 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RootWindowController* root_window_controller); 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual ~AshTouchExplorationManager(); 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // AccessibilityObserver overrides: 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void OnAccessibilityModeChanged( 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) AccessibilityNotificationVisibility notify) OVERRIDE; 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) // TouchExplorationControllerDelegate overrides: 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) virtual void SetOutputLevel(int volume) OVERRIDE; 376e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual void SilenceSpokenFeedback() OVERRIDE; 386e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual void PlayVolumeAdjustEarcon() OVERRIDE; 396e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual void PlayPassthroughEarcon() OVERRIDE; 406e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual void PlayExitScreenEarcon() OVERRIDE; 416e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) virtual void PlayEnterScreenEarcon() OVERRIDE; 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) private: 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) void UpdateTouchExplorationState(); 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) bool VolumeAdjustSoundEnabled(); 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) scoped_ptr<ui::TouchExplorationController> touch_exploration_controller_; 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RootWindowController* root_window_controller_; 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) chromeos::CrasAudioHandler* audio_handler_; 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(AshTouchExplorationManager); 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)}; 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 545f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace ash 555f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#endif // ASH_TOUCH_EXPLORATION_MANAGER_CHROMEOS_H_ 57