1// Copyright 2013 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 CHROME_BROWSER_EXTENSIONS_API_BRAILLE_DISPLAY_PRIVATE_BRAILLE_CONTROLLER_H_ 6#define CHROME_BROWSER_EXTENSIONS_API_BRAILLE_DISPLAY_PRIVATE_BRAILLE_CONTROLLER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/callback_forward.h" 12#include "base/memory/scoped_ptr.h" 13#include "base/values.h" 14#include "chrome/common/extensions/api/braille_display_private.h" 15 16namespace extensions { 17namespace api { 18namespace braille_display_private { 19class BrailleObserver; 20 21// Singleton class that controls the braille display. 22class BrailleController { 23 public: 24 static BrailleController* GetInstance(); 25 26 virtual scoped_ptr<DisplayState> GetDisplayState() = 0; 27 virtual void WriteDots(const std::string& cells) = 0; 28 virtual void AddObserver(BrailleObserver* observer) = 0; 29 virtual void RemoveObserver(BrailleObserver* observer) = 0; 30 31 protected: 32 BrailleController(); 33 virtual ~BrailleController(); 34 35 private: 36 DISALLOW_COPY_AND_ASSIGN(BrailleController); 37}; 38 39// Observer for events from the BrailleController 40class BrailleObserver { 41 public: 42 virtual void OnBrailleDisplayStateChanged( 43 const DisplayState& display_state) {} 44 virtual void OnBrailleKeyEvent(const KeyEvent& event) {} 45}; 46 47} // namespace braille_display_private 48} // namespace api 49} // namespace extensions 50 51#endif // CHROME_BROWSER_EXTENSIONS_API_BRAILLE_DISPLAY_PRIVATE_BRAILLE_CONTROLLER_H_ 52