Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: chrome/browser/extensions/api/braille_display_private/braille_display_private_api.cc

Issue 13355002: Implement chrome.brailleDisplayPrivate API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Temporarily default brlapi to be enabled on chromeos to run through trybots, this is now rebased on… Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/braille_display_private/braille_display_ private_api.h" 5 #include "chrome/browser/extensions/api/braille_display_private/braille_display_ private_api.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "chrome/browser/extensions/api/braille_display_private/braille_controll er.h"
8 #include "chrome/browser/extensions/event_router.h" 9 #include "chrome/browser/extensions/event_router.h"
9 #include "chrome/browser/extensions/extension_system.h" 10 #include "chrome/browser/extensions/extension_system.h"
10 11
11 namespace OnKeyEvent = extensions::api::braille_display_private::OnKeyEvent; 12 namespace OnKeyEvent = extensions::api::braille_display_private::OnKeyEvent;
12 namespace WriteDots = extensions::api::braille_display_private::WriteDots; 13 namespace WriteDots = extensions::api::braille_display_private::WriteDots;
13 using extensions::api::braille_display_private::KeyEvent; 14 using extensions::api::braille_display_private::KeyEvent;
15 using extensions::api::braille_display_private::BrailleController;
14 16
15 namespace extensions { 17 namespace extensions {
16 BrailleDisplayPrivateAPI::BrailleDisplayPrivateAPI(Profile* profile) 18 BrailleDisplayPrivateAPI::BrailleDisplayPrivateAPI(Profile* profile)
17 : profile_(profile) { 19 : profile_(profile) {
20 LOG(ERROR) << "Creating BraillePrivateAPI";
David Tseng 2013/09/05 19:21:23 Remove.
21 // TODO(plundblad): Consider defering this until someone actually uses the
22 // API so that we only watch for braille displays if cvox is enabled.
23 BrailleController::GetInstance()->AddObserver(this);
18 } 24 }
19 25
20 BrailleDisplayPrivateAPI::~BrailleDisplayPrivateAPI() { 26 BrailleDisplayPrivateAPI::~BrailleDisplayPrivateAPI() {
27 BrailleController::GetInstance()->RemoveObserver(this);
21 } 28 }
22 29
23 void BrailleDisplayPrivateAPI::Shutdown() { 30 void BrailleDisplayPrivateAPI::Shutdown() {
24 } 31 }
25 32
26 static base::LazyInstance<ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI> > 33 static base::LazyInstance<ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI> >
27 g_factory = LAZY_INSTANCE_INITIALIZER; 34 g_factory = LAZY_INSTANCE_INITIALIZER;
28 35
29 // static 36 // static
30 ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI>* 37 ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI>*
31 BrailleDisplayPrivateAPI::GetFactoryInstance() { 38 BrailleDisplayPrivateAPI::GetFactoryInstance() {
32 return &g_factory.Get(); 39 return &g_factory.Get();
33 } 40 }
34 41
42 void BrailleDisplayPrivateAPI::OnKeyEvent(
43 const KeyEvent& keyEvent) {
44 // TODO(plundblad): Only send the event to the active profile.
45 scoped_ptr<Event> event(new Event(
46 OnKeyEvent::kEventName, OnKeyEvent::Create(keyEvent)));
47 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass());
48 }
49
35 namespace api { 50 namespace api {
36 bool BrailleDisplayPrivateGetDisplayStateFunction::Prepare() { 51 bool BrailleDisplayPrivateGetDisplayStateFunction::Prepare() {
37 return true; 52 return true;
38 } 53 }
39 54
40 void BrailleDisplayPrivateGetDisplayStateFunction::Work() { 55 void BrailleDisplayPrivateGetDisplayStateFunction::Work() {
41 // TODO(plundblad): implement. 56 SetResult(BrailleController::GetInstance()->GetDisplayState().release());
42 } 57 }
43 58
44 bool BrailleDisplayPrivateGetDisplayStateFunction::Respond() { 59 bool BrailleDisplayPrivateGetDisplayStateFunction::Respond() {
45 return false; 60 return true;
46 } 61 }
47 62
48 BrailleDisplayPrivateWriteDotsFunction:: 63 BrailleDisplayPrivateWriteDotsFunction::
49 BrailleDisplayPrivateWriteDotsFunction() { 64 BrailleDisplayPrivateWriteDotsFunction() {
50 } 65 }
51 66
52 BrailleDisplayPrivateWriteDotsFunction:: 67 BrailleDisplayPrivateWriteDotsFunction::
53 ~BrailleDisplayPrivateWriteDotsFunction() { 68 ~BrailleDisplayPrivateWriteDotsFunction() {
54 } 69 }
55 70
56 bool BrailleDisplayPrivateWriteDotsFunction::Prepare() { 71 bool BrailleDisplayPrivateWriteDotsFunction::Prepare() {
57 params_ = WriteDots::Params::Create(*args_); 72 params_ = WriteDots::Params::Create(*args_);
58 EXTENSION_FUNCTION_VALIDATE(params_); 73 EXTENSION_FUNCTION_VALIDATE(params_);
59 return true; 74 return true;
60 } 75 }
61 76
62 void BrailleDisplayPrivateWriteDotsFunction::Work() { 77 void BrailleDisplayPrivateWriteDotsFunction::Work() {
63 // TODO(plundblad): Implement. 78 BrailleController::GetInstance()->WriteDots(params_->cells);
64 } 79 }
65 80
66 bool BrailleDisplayPrivateWriteDotsFunction::Respond() { 81 bool BrailleDisplayPrivateWriteDotsFunction::Respond() {
67 return true; 82 return true;
68 } 83 }
69 } // namespace api 84 } // namespace api
70 } // namespace extensions 85 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698