OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "device/hid/hid_connection_win.h" | 5 #include "device/hid/hid_connection_win.h" |
6 | 6 |
7 #include <cstring> | 7 #include <cstring> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 const ReadCallback& callback, | 201 const ReadCallback& callback, |
202 PendingHidTransfer* transfer, | 202 PendingHidTransfer* transfer, |
203 bool signaled) { | 203 bool signaled) { |
204 if (!signaled) { | 204 if (!signaled) { |
205 callback.Run(false, NULL, 0); | 205 callback.Run(false, NULL, 0); |
206 return; | 206 return; |
207 } | 207 } |
208 | 208 |
209 DWORD bytes_transferred; | 209 DWORD bytes_transferred; |
210 if (GetOverlappedResult( | 210 if (GetOverlappedResult( |
211 file_, transfer->GetOverlapped(), &bytes_transferred, FALSE)) { | 211 file_.Get(), transfer->GetOverlapped(), &bytes_transferred, FALSE)) { |
212 CompleteRead(buffer, bytes_transferred, callback); | 212 CompleteRead(buffer, bytes_transferred, callback); |
213 } else { | 213 } else { |
214 VPLOG(1) << "HID read failed"; | 214 VPLOG(1) << "HID read failed"; |
215 callback.Run(false, NULL, 0); | 215 callback.Run(false, NULL, 0); |
216 } | 216 } |
217 } | 217 } |
218 | 218 |
219 void HidConnectionWin::OnReadFeatureComplete( | 219 void HidConnectionWin::OnReadFeatureComplete( |
220 scoped_refptr<net::IOBuffer> buffer, | 220 scoped_refptr<net::IOBuffer> buffer, |
221 const ReadCallback& callback, | 221 const ReadCallback& callback, |
222 PendingHidTransfer* transfer, | 222 PendingHidTransfer* transfer, |
223 bool signaled) { | 223 bool signaled) { |
224 if (!signaled) { | 224 if (!signaled) { |
225 callback.Run(false, NULL, 0); | 225 callback.Run(false, NULL, 0); |
226 return; | 226 return; |
227 } | 227 } |
228 | 228 |
229 DWORD bytes_transferred; | 229 DWORD bytes_transferred; |
230 if (GetOverlappedResult( | 230 if (GetOverlappedResult( |
231 file_, transfer->GetOverlapped(), &bytes_transferred, FALSE)) { | 231 file_.Get(), transfer->GetOverlapped(), &bytes_transferred, FALSE)) { |
232 scoped_refptr<net::IOBuffer> new_buffer( | 232 scoped_refptr<net::IOBuffer> new_buffer( |
233 new net::IOBuffer(bytes_transferred - 1)); | 233 new net::IOBuffer(bytes_transferred - 1)); |
234 memcpy(new_buffer->data(), buffer->data() + 1, bytes_transferred - 1); | 234 memcpy(new_buffer->data(), buffer->data() + 1, bytes_transferred - 1); |
235 CompleteRead(new_buffer, bytes_transferred, callback); | 235 CompleteRead(new_buffer, bytes_transferred, callback); |
236 } else { | 236 } else { |
237 VPLOG(1) << "HID read failed"; | 237 VPLOG(1) << "HID read failed"; |
238 callback.Run(false, NULL, 0); | 238 callback.Run(false, NULL, 0); |
239 } | 239 } |
240 } | 240 } |
241 | 241 |
242 void HidConnectionWin::OnWriteComplete(const WriteCallback& callback, | 242 void HidConnectionWin::OnWriteComplete(const WriteCallback& callback, |
243 PendingHidTransfer* transfer, | 243 PendingHidTransfer* transfer, |
244 bool signaled) { | 244 bool signaled) { |
245 if (!signaled) { | 245 if (!signaled) { |
246 callback.Run(false); | 246 callback.Run(false); |
247 return; | 247 return; |
248 } | 248 } |
249 | 249 |
250 DWORD bytes_transferred; | 250 DWORD bytes_transferred; |
251 if (GetOverlappedResult( | 251 if (GetOverlappedResult( |
252 file_, transfer->GetOverlapped(), &bytes_transferred, FALSE)) { | 252 file_.Get(), transfer->GetOverlapped(), &bytes_transferred, FALSE)) { |
253 callback.Run(true); | 253 callback.Run(true); |
254 } else { | 254 } else { |
255 VPLOG(1) << "HID write failed"; | 255 VPLOG(1) << "HID write failed"; |
256 callback.Run(false); | 256 callback.Run(false); |
257 } | 257 } |
258 } | 258 } |
259 | 259 |
260 } // namespace device | 260 } // namespace device |
OLD | NEW |