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#include "chrome/browser/extensions/api/braille_display_private/braille_controller.h"
6
7#include "base/memory/scoped_ptr.h"
8#include "base/memory/singleton.h"
9#include "chrome/common/extensions/api/braille_display_private.h"
10
11namespace extensions {
12namespace api {
13namespace braille_display_private {
14
15// Stub implementation of BrailleController for use when brlapi is not
16// enabled.
17class BrailleControllerImpl : public BrailleController {
18 public:
19  static BrailleControllerImpl* GetInstance();
20  virtual scoped_ptr<DisplayState> GetDisplayState() OVERRIDE;
21  virtual void WriteDots(const std::string& cells) OVERRIDE;
22  virtual void AddObserver(BrailleObserver* observer) OVERRIDE;
23  virtual void RemoveObserver(BrailleObserver* observer) OVERRIDE;
24
25 private:
26  BrailleControllerImpl();
27  virtual ~BrailleControllerImpl();
28  friend struct DefaultSingletonTraits<BrailleControllerImpl>;
29  DISALLOW_COPY_AND_ASSIGN(BrailleControllerImpl);
30};
31
32BrailleController::BrailleController() {
33}
34
35BrailleController::~BrailleController() {
36}
37
38// static
39BrailleController* BrailleController::GetInstance() {
40  return BrailleControllerImpl::GetInstance();
41}
42
43BrailleControllerImpl::BrailleControllerImpl() {
44}
45
46BrailleControllerImpl::~BrailleControllerImpl() {
47}
48
49// static
50BrailleControllerImpl* BrailleControllerImpl::GetInstance() {
51  return Singleton<BrailleControllerImpl,
52                   LeakySingletonTraits<BrailleControllerImpl> >::get();
53}
54
55scoped_ptr<DisplayState> BrailleControllerImpl::GetDisplayState() {
56  return scoped_ptr<DisplayState>(new DisplayState()).Pass();
57}
58
59void BrailleControllerImpl::WriteDots(const std::string& cells) {
60}
61
62void BrailleControllerImpl::AddObserver(BrailleObserver* observer) {
63}
64
65void BrailleControllerImpl::RemoveObserver(BrailleObserver* observer) {
66}
67
68}  // namespace braille_display_private
69}  // namespace api
70}  // namespace extensions
71