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

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: Fix stylistic issues from last review round. 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 // TODO(plundblad): Consider defering this until someone actually uses the
21 // API so that we only watch for braille displays if cvox is enabled.
22 BrailleController::GetInstance()->AddObserver(this);
18 } 23 }
19 24
20 BrailleDisplayPrivateAPI::~BrailleDisplayPrivateAPI() { 25 BrailleDisplayPrivateAPI::~BrailleDisplayPrivateAPI() {
26 BrailleController::GetInstance()->RemoveObserver(this);
21 } 27 }
22 28
23 void BrailleDisplayPrivateAPI::Shutdown() { 29 void BrailleDisplayPrivateAPI::Shutdown() {
24 } 30 }
25 31
26 static base::LazyInstance<ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI> > 32 static base::LazyInstance<ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI> >
27 g_factory = LAZY_INSTANCE_INITIALIZER; 33 g_factory = LAZY_INSTANCE_INITIALIZER;
28 34
29 // static 35 // static
30 ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI>* 36 ProfileKeyedAPIFactory<BrailleDisplayPrivateAPI>*
31 BrailleDisplayPrivateAPI::GetFactoryInstance() { 37 BrailleDisplayPrivateAPI::GetFactoryInstance() {
32 return &g_factory.Get(); 38 return &g_factory.Get();
33 } 39 }
34 40
41 void BrailleDisplayPrivateAPI::OnKeyEvent(
42 const KeyEvent& keyEvent) {
43 // TODO(plundblad): Only send the event to the active profile.
44 scoped_ptr<Event> event(new Event(
45 OnKeyEvent::kEventName, OnKeyEvent::Create(keyEvent)));
46 ExtensionSystem::Get(profile_)->event_router()->BroadcastEvent(event.Pass());
47 }
48
35 namespace api { 49 namespace api {
36 bool BrailleDisplayPrivateGetDisplayStateFunction::Prepare() { 50 bool BrailleDisplayPrivateGetDisplayStateFunction::Prepare() {
37 return true; 51 return true;
38 } 52 }
39 53
40 void BrailleDisplayPrivateGetDisplayStateFunction::Work() { 54 void BrailleDisplayPrivateGetDisplayStateFunction::Work() {
41 // TODO(plundblad): implement. 55 SetResult(BrailleController::GetInstance()->GetDisplayState().release());
42 } 56 }
43 57
44 bool BrailleDisplayPrivateGetDisplayStateFunction::Respond() { 58 bool BrailleDisplayPrivateGetDisplayStateFunction::Respond() {
45 return false; 59 return true;
46 } 60 }
47 61
48 BrailleDisplayPrivateWriteDotsFunction:: 62 BrailleDisplayPrivateWriteDotsFunction::
49 BrailleDisplayPrivateWriteDotsFunction() { 63 BrailleDisplayPrivateWriteDotsFunction() {
50 } 64 }
51 65
52 BrailleDisplayPrivateWriteDotsFunction:: 66 BrailleDisplayPrivateWriteDotsFunction::
53 ~BrailleDisplayPrivateWriteDotsFunction() { 67 ~BrailleDisplayPrivateWriteDotsFunction() {
54 } 68 }
55 69
56 bool BrailleDisplayPrivateWriteDotsFunction::Prepare() { 70 bool BrailleDisplayPrivateWriteDotsFunction::Prepare() {
57 params_ = WriteDots::Params::Create(*args_); 71 params_ = WriteDots::Params::Create(*args_);
58 EXTENSION_FUNCTION_VALIDATE(params_); 72 EXTENSION_FUNCTION_VALIDATE(params_);
59 return true; 73 return true;
60 } 74 }
61 75
62 void BrailleDisplayPrivateWriteDotsFunction::Work() { 76 void BrailleDisplayPrivateWriteDotsFunction::Work() {
63 // TODO(plundblad): Implement. 77 BrailleController::GetInstance()->WriteDots(params_->cells);
64 } 78 }
65 79
66 bool BrailleDisplayPrivateWriteDotsFunction::Respond() { 80 bool BrailleDisplayPrivateWriteDotsFunction::Respond() {
67 return true; 81 return true;
68 } 82 }
69 } // namespace api 83 } // namespace api
70 } // namespace extensions 84 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698