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

Side by Side Diff: device/gamepad/gamepad_service.cc

Issue 2808093006: [Device Service] Move Gamepad Blink headers to be part of the Gamepad client library (Closed)
Patch Set: rebase and address comments Created 3 years, 8 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
« no previous file with comments | « device/gamepad/gamepad_service.h ('k') | device/gamepad/gamepad_service_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "device/gamepad/gamepad_service.h" 5 #include "device/gamepad/gamepad_service.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 DCHECK(main_thread_task_runner_->BelongsToCurrentThread()); 101 DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
102 provider_->RegisterForUserGesture(closure); 102 provider_->RegisterForUserGesture(closure);
103 } 103 }
104 104
105 void GamepadService::Terminate() { 105 void GamepadService::Terminate() {
106 provider_.reset(); 106 provider_.reset();
107 } 107 }
108 108
109 void GamepadService::OnGamepadConnectionChange(bool connected, 109 void GamepadService::OnGamepadConnectionChange(bool connected,
110 int index, 110 int index,
111 const blink::WebGamepad& pad) { 111 const Gamepad& pad) {
112 if (connected) { 112 if (connected) {
113 main_thread_task_runner_->PostTask( 113 main_thread_task_runner_->PostTask(
114 FROM_HERE, base::Bind(&GamepadService::OnGamepadConnected, 114 FROM_HERE, base::Bind(&GamepadService::OnGamepadConnected,
115 base::Unretained(this), index, pad)); 115 base::Unretained(this), index, pad));
116 } else { 116 } else {
117 main_thread_task_runner_->PostTask( 117 main_thread_task_runner_->PostTask(
118 FROM_HERE, base::Bind(&GamepadService::OnGamepadDisconnected, 118 FROM_HERE, base::Bind(&GamepadService::OnGamepadDisconnected,
119 base::Unretained(this), index, pad)); 119 base::Unretained(this), index, pad));
120 } 120 }
121 } 121 }
122 122
123 void GamepadService::OnGamepadConnected(int index, 123 void GamepadService::OnGamepadConnected(int index, const Gamepad& pad) {
124 const blink::WebGamepad& pad) {
125 DCHECK(main_thread_task_runner_->BelongsToCurrentThread()); 124 DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
126 125
127 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end(); 126 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end();
128 ++it) { 127 ++it) {
129 if (it->did_observe_user_gesture && it->is_active) 128 if (it->did_observe_user_gesture && it->is_active)
130 it->consumer->OnGamepadConnected(index, pad); 129 it->consumer->OnGamepadConnected(index, pad);
131 } 130 }
132 } 131 }
133 132
134 void GamepadService::OnGamepadDisconnected(int index, 133 void GamepadService::OnGamepadDisconnected(int index, const Gamepad& pad) {
135 const blink::WebGamepad& pad) {
136 DCHECK(main_thread_task_runner_->BelongsToCurrentThread()); 134 DCHECK(main_thread_task_runner_->BelongsToCurrentThread());
137 135
138 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end(); 136 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end();
139 ++it) { 137 ++it) {
140 if (it->did_observe_user_gesture && it->is_active) 138 if (it->did_observe_user_gesture && it->is_active)
141 it->consumer->OnGamepadDisconnected(index, pad); 139 it->consumer->OnGamepadDisconnected(index, pad);
142 } 140 }
143 } 141 }
144 142
145 base::SharedMemoryHandle GamepadService::GetSharedMemoryHandleForProcess( 143 base::SharedMemoryHandle GamepadService::GetSharedMemoryHandleForProcess(
(...skipping 13 matching lines...) Expand all
159 gesture_callback_pending_ = false; 157 gesture_callback_pending_ = false;
160 158
161 if (!provider_ || num_active_consumers_ == 0) 159 if (!provider_ || num_active_consumers_ == 0)
162 return; 160 return;
163 161
164 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end(); 162 for (ConsumerSet::iterator it = consumers_.begin(); it != consumers_.end();
165 ++it) { 163 ++it) {
166 if (!it->did_observe_user_gesture && it->is_active) { 164 if (!it->did_observe_user_gesture && it->is_active) {
167 const ConsumerInfo& info = *it; 165 const ConsumerInfo& info = *it;
168 info.did_observe_user_gesture = true; 166 info.did_observe_user_gesture = true;
169 blink::WebGamepads gamepads; 167 Gamepads gamepads;
170 provider_->GetCurrentGamepadData(&gamepads); 168 provider_->GetCurrentGamepadData(&gamepads);
171 for (unsigned i = 0; i < blink::WebGamepads::kItemsLengthCap; ++i) { 169 for (unsigned i = 0; i < Gamepads::kItemsLengthCap; ++i) {
172 const blink::WebGamepad& pad = gamepads.items[i]; 170 const Gamepad& pad = gamepads.items[i];
173 if (pad.connected) 171 if (pad.connected)
174 info.consumer->OnGamepadConnected(i, pad); 172 info.consumer->OnGamepadConnected(i, pad);
175 } 173 }
176 } 174 }
177 } 175 }
178 } 176 }
179 177
180 void GamepadService::SetSanitizationEnabled(bool sanitize) { 178 void GamepadService::SetSanitizationEnabled(bool sanitize) {
181 provider_->SetSanitizationEnabled(sanitize); 179 provider_->SetSanitizationEnabled(sanitize);
182 } 180 }
183 181
184 } // namespace device 182 } // namespace device
OLDNEW
« no previous file with comments | « device/gamepad/gamepad_service.h ('k') | device/gamepad/gamepad_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698