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 16 namespace extensions { 17 namespace api { 18 namespace braille_display_private { 19 class BrailleObserver; 20 21 // Singleton class that controls the braille display. 22 class 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 40 class 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