158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/browser/extensions/api/braille_display_private/braille_controller.h" 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/scoped_ptr.h" 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "base/memory/singleton.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "chrome/common/extensions/api/braille_display_private.h" 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace extensions { 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace api { 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace braille_display_private { 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Stub implementation of BrailleController for use when brlapi is not 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// enabled. 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class BrailleControllerImpl : public BrailleController { 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static BrailleControllerImpl* GetInstance(); 20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual scoped_ptr<DisplayState> GetDisplayState() OVERRIDE; 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void WriteDots(const std::string& cells) OVERRIDE; 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void AddObserver(BrailleObserver* observer) OVERRIDE; 2358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual void RemoveObserver(BrailleObserver* observer) OVERRIDE; 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) BrailleControllerImpl(); 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~BrailleControllerImpl(); 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) friend struct DefaultSingletonTraits<BrailleControllerImpl>; 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(BrailleControllerImpl); 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 3158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleController::BrailleController() { 3358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 3458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleController::~BrailleController() { 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 3858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static 3958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleController* BrailleController::GetInstance() { 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return BrailleControllerImpl::GetInstance(); 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleControllerImpl::BrailleControllerImpl() { 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleControllerImpl::~BrailleControllerImpl() { 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// static 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)BrailleControllerImpl* BrailleControllerImpl::GetInstance() { 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) return Singleton<BrailleControllerImpl, 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) LeakySingletonTraits<BrailleControllerImpl> >::get(); 5358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 55d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)scoped_ptr<DisplayState> BrailleControllerImpl::GetDisplayState() { 56d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) return scoped_ptr<DisplayState>(new DisplayState()).Pass(); 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void BrailleControllerImpl::WriteDots(const std::string& cells) { 6058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void BrailleControllerImpl::AddObserver(BrailleObserver* observer) { 6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 6458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)void BrailleControllerImpl::RemoveObserver(BrailleObserver* observer) { 6658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} 6758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace braille_display_private 6958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace api 7058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace extensions 71