Home | History | Annotate | Download | only in braille_display_private
      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