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

Side by Side Diff: content/shell/renderer/test_runner/gamepad_controller.cc

Issue 207323002: Gamepad API: add test support for gamepad events (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/shell/renderer/test_runner/gamepad_controller.h" 5 #include "content/shell/renderer/test_runner/gamepad_controller.h"
6 6
7 #include "content/shell/renderer/test_runner/TestInterfaces.h" 7 #include "content/shell/renderer/test_runner/TestInterfaces.h"
8 #include "content/shell/renderer/test_runner/WebTestDelegate.h" 8 #include "content/shell/renderer/test_runner/WebTestDelegate.h"
9 #include "gin/arguments.h" 9 #include "gin/arguments.h"
10 #include "gin/handle.h" 10 #include "gin/handle.h"
(...skipping 20 matching lines...) Expand all
31 private: 31 private:
32 explicit GamepadControllerBindings( 32 explicit GamepadControllerBindings(
33 base::WeakPtr<GamepadController> controller); 33 base::WeakPtr<GamepadController> controller);
34 virtual ~GamepadControllerBindings(); 34 virtual ~GamepadControllerBindings();
35 35
36 // gin::Wrappable. 36 // gin::Wrappable.
37 virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder( 37 virtual gin::ObjectTemplateBuilder GetObjectTemplateBuilder(
38 v8::Isolate* isolate) OVERRIDE; 38 v8::Isolate* isolate) OVERRIDE;
39 39
40 void Connect(int index); 40 void Connect(int index);
41 void DispatchConnected(int index);
41 void Disconnect(int index); 42 void Disconnect(int index);
42 void SetId(int index, const std::string& src); 43 void SetId(int index, const std::string& src);
43 void SetButtonCount(int index, int buttons); 44 void SetButtonCount(int index, int buttons);
44 void SetButtonData(int index, int button, double data); 45 void SetButtonData(int index, int button, double data);
45 void SetAxisCount(int index, int axes); 46 void SetAxisCount(int index, int axes);
46 void SetAxisData(int index, int axis, double data); 47 void SetAxisData(int index, int axis, double data);
47 48
48 base::WeakPtr<GamepadController> controller_; 49 base::WeakPtr<GamepadController> controller_;
49 50
50 DISALLOW_COPY_AND_ASSIGN(GamepadControllerBindings); 51 DISALLOW_COPY_AND_ASSIGN(GamepadControllerBindings);
(...skipping 24 matching lines...) Expand all
75 base::WeakPtr<GamepadController> controller) 76 base::WeakPtr<GamepadController> controller)
76 : controller_(controller) {} 77 : controller_(controller) {}
77 78
78 GamepadControllerBindings::~GamepadControllerBindings() {} 79 GamepadControllerBindings::~GamepadControllerBindings() {}
79 80
80 gin::ObjectTemplateBuilder GamepadControllerBindings::GetObjectTemplateBuilder( 81 gin::ObjectTemplateBuilder GamepadControllerBindings::GetObjectTemplateBuilder(
81 v8::Isolate* isolate) { 82 v8::Isolate* isolate) {
82 return gin::Wrappable<GamepadControllerBindings>::GetObjectTemplateBuilder( 83 return gin::Wrappable<GamepadControllerBindings>::GetObjectTemplateBuilder(
83 isolate) 84 isolate)
84 .SetMethod("connect", &GamepadControllerBindings::Connect) 85 .SetMethod("connect", &GamepadControllerBindings::Connect)
86 .SetMethod("dispatchConnected", &GamepadControllerBindings::DispatchConnec ted)
85 .SetMethod("disconnect", &GamepadControllerBindings::Disconnect) 87 .SetMethod("disconnect", &GamepadControllerBindings::Disconnect)
86 .SetMethod("setId", &GamepadControllerBindings::SetId) 88 .SetMethod("setId", &GamepadControllerBindings::SetId)
87 .SetMethod("setButtonCount", &GamepadControllerBindings::SetButtonCount) 89 .SetMethod("setButtonCount", &GamepadControllerBindings::SetButtonCount)
88 .SetMethod("setButtonData", &GamepadControllerBindings::SetButtonData) 90 .SetMethod("setButtonData", &GamepadControllerBindings::SetButtonData)
89 .SetMethod("setAxisCount", &GamepadControllerBindings::SetAxisCount) 91 .SetMethod("setAxisCount", &GamepadControllerBindings::SetAxisCount)
90 .SetMethod("setAxisData", &GamepadControllerBindings::SetAxisData); 92 .SetMethod("setAxisData", &GamepadControllerBindings::SetAxisData);
91 } 93 }
92 94
93 void GamepadControllerBindings::Connect(int index) { 95 void GamepadControllerBindings::Connect(int index) {
94 if (controller_) 96 if (controller_)
95 controller_->Connect(index); 97 controller_->Connect(index);
96 } 98 }
97 99
100 void GamepadControllerBindings::DispatchConnected(int index) {
101 if (controller_)
102 controller_->DispatchConnected(index);
103 }
104
98 void GamepadControllerBindings::Disconnect(int index) { 105 void GamepadControllerBindings::Disconnect(int index) {
99 if (controller_) 106 if (controller_)
100 controller_->Disconnect(index); 107 controller_->Disconnect(index);
101 } 108 }
102 109
103 void GamepadControllerBindings::SetId(int index, const std::string& src) { 110 void GamepadControllerBindings::SetId(int index, const std::string& src) {
104 if (controller_) 111 if (controller_)
105 controller_->SetId(index, src); 112 controller_->SetId(index, src);
106 } 113 }
107 114
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 gamepads_.items[index].connected = true; 158 gamepads_.items[index].connected = true;
152 gamepads_.length = 0; 159 gamepads_.length = 0;
153 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) { 160 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) {
154 if (gamepads_.items[i].connected) 161 if (gamepads_.items[i].connected)
155 gamepads_.length = i + 1; 162 gamepads_.length = i + 1;
156 } 163 }
157 if (delegate_) 164 if (delegate_)
158 delegate_->setGamepadData(gamepads_); 165 delegate_->setGamepadData(gamepads_);
159 } 166 }
160 167
168 void GamepadController::DispatchConnected(int index) {
169 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
170 return;
171 const WebGamepad& pad = gamepads_.items[index];
172 if (pad.connected && delegate_)
173 delegate_->didConnectGamepad(index, pad);
174 }
175
161 void GamepadController::Disconnect(int index) { 176 void GamepadController::Disconnect(int index) {
162 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 177 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
163 return; 178 return;
164 gamepads_.items[index].connected = false; 179 WebGamepad& pad = gamepads_.items[index];
180 pad.connected = false;
165 gamepads_.length = 0; 181 gamepads_.length = 0;
166 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) { 182 for (unsigned i = 0; i < WebGamepads::itemsLengthCap; ++i) {
167 if (gamepads_.items[i].connected) 183 if (gamepads_.items[i].connected)
168 gamepads_.length = i + 1; 184 gamepads_.length = i + 1;
169 } 185 }
170 if (delegate_) 186 if (delegate_) {
171 delegate_->setGamepadData(gamepads_); 187 delegate_->setGamepadData(gamepads_);
188 delegate_->didDisconnectGamepad(index, pad);
189 }
172 } 190 }
173 191
174 void GamepadController::SetId(int index, const std::string& src) { 192 void GamepadController::SetId(int index, const std::string& src) {
175 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 193 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
176 return; 194 return;
177 const char* p = src.c_str(); 195 const char* p = src.c_str();
178 memset(gamepads_.items[index].id, 0, sizeof(gamepads_.items[index].id)); 196 memset(gamepads_.items[index].id, 0, sizeof(gamepads_.items[index].id));
179 for (unsigned i = 0; *p && i < WebGamepad::idLengthCap - 1; ++i) 197 for (unsigned i = 0; *p && i < WebGamepad::idLengthCap - 1; ++i)
180 gamepads_.items[index].id[i] = *p++; 198 gamepads_.items[index].id[i] = *p++;
181 if (delegate_) 199 if (delegate_)
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap)) 235 if (index < 0 || index >= static_cast<int>(WebGamepads::itemsLengthCap))
218 return; 236 return;
219 if (axis < 0 || axis >= static_cast<int>(WebGamepad::axesLengthCap)) 237 if (axis < 0 || axis >= static_cast<int>(WebGamepad::axesLengthCap))
220 return; 238 return;
221 gamepads_.items[index].axes[axis] = data; 239 gamepads_.items[index].axes[axis] = data;
222 if (delegate_) 240 if (delegate_)
223 delegate_->setGamepadData(gamepads_); 241 delegate_->setGamepadData(gamepads_);
224 } 242 }
225 243
226 } // namespace content 244 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698