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

Side by Side Diff: device/usb/mojo/device_impl.cc

Issue 2821813002: Use Mojo enum types in the C++ USB interface (Closed)
Patch Set: Fix up //device/usb dependencies in //extensions/browser/api 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/usb/mock_usb_device_handle.h ('k') | device/usb/mojo/device_impl_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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/usb/mojo/device_impl.h" 5 #include "device/usb/mojo/device_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 uint32_t timeout, 327 uint32_t timeout,
328 const ControlTransferInCallback& callback) { 328 const ControlTransferInCallback& callback) {
329 if (!device_handle_) { 329 if (!device_handle_) {
330 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR, base::nullopt); 330 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR, base::nullopt);
331 return; 331 return;
332 } 332 }
333 333
334 if (HasControlTransferPermission(params->recipient, params->index)) { 334 if (HasControlTransferPermission(params->recipient, params->index)) {
335 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length); 335 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
336 device_handle_->ControlTransfer( 336 device_handle_->ControlTransfer(
337 USB_DIRECTION_INBOUND, 337 UsbTransferDirection::INBOUND, params->type, params->recipient,
338 mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
339 mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
340 params->request, params->value, params->index, buffer, length, timeout, 338 params->request, params->value, params->index, buffer, length, timeout,
341 base::Bind(&OnTransferIn, callback)); 339 base::Bind(&OnTransferIn, callback));
342 } else { 340 } else {
343 callback.Run(mojom::UsbTransferStatus::PERMISSION_DENIED, base::nullopt); 341 callback.Run(mojom::UsbTransferStatus::PERMISSION_DENIED, base::nullopt);
344 } 342 }
345 } 343 }
346 344
347 void DeviceImpl::ControlTransferOut( 345 void DeviceImpl::ControlTransferOut(
348 UsbControlTransferParamsPtr params, 346 UsbControlTransferParamsPtr params,
349 const std::vector<uint8_t>& data, 347 const std::vector<uint8_t>& data,
350 uint32_t timeout, 348 uint32_t timeout,
351 const ControlTransferOutCallback& callback) { 349 const ControlTransferOutCallback& callback) {
352 if (!device_handle_) { 350 if (!device_handle_) {
353 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR); 351 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR);
354 return; 352 return;
355 } 353 }
356 354
357 if (HasControlTransferPermission(params->recipient, params->index)) { 355 if (HasControlTransferPermission(params->recipient, params->index)) {
358 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size()); 356 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
359 std::copy(data.begin(), data.end(), buffer->data()); 357 std::copy(data.begin(), data.end(), buffer->data());
360 device_handle_->ControlTransfer( 358 device_handle_->ControlTransfer(
361 USB_DIRECTION_OUTBOUND, 359 UsbTransferDirection::OUTBOUND, params->type, params->recipient,
362 mojo::ConvertTo<UsbDeviceHandle::TransferRequestType>(params->type),
363 mojo::ConvertTo<UsbDeviceHandle::TransferRecipient>(params->recipient),
364 params->request, params->value, params->index, buffer, data.size(), 360 params->request, params->value, params->index, buffer, data.size(),
365 timeout, base::Bind(&OnTransferOut, callback)); 361 timeout, base::Bind(&OnTransferOut, callback));
366 } else { 362 } else {
367 callback.Run(mojom::UsbTransferStatus::PERMISSION_DENIED); 363 callback.Run(mojom::UsbTransferStatus::PERMISSION_DENIED);
368 } 364 }
369 } 365 }
370 366
371 void DeviceImpl::GenericTransferIn(uint8_t endpoint_number, 367 void DeviceImpl::GenericTransferIn(uint8_t endpoint_number,
372 uint32_t length, 368 uint32_t length,
373 uint32_t timeout, 369 uint32_t timeout,
374 const GenericTransferInCallback& callback) { 370 const GenericTransferInCallback& callback) {
375 if (!device_handle_) { 371 if (!device_handle_) {
376 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR, base::nullopt); 372 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR, base::nullopt);
377 return; 373 return;
378 } 374 }
379 375
380 uint8_t endpoint_address = endpoint_number | 0x80; 376 uint8_t endpoint_address = endpoint_number | 0x80;
381 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length); 377 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(length);
382 device_handle_->GenericTransfer(USB_DIRECTION_INBOUND, endpoint_address, 378 device_handle_->GenericTransfer(UsbTransferDirection::INBOUND,
383 buffer, length, timeout, 379 endpoint_address, buffer, length, timeout,
384 base::Bind(&OnTransferIn, callback)); 380 base::Bind(&OnTransferIn, callback));
385 } 381 }
386 382
387 void DeviceImpl::GenericTransferOut( 383 void DeviceImpl::GenericTransferOut(
388 uint8_t endpoint_number, 384 uint8_t endpoint_number,
389 const std::vector<uint8_t>& data, 385 const std::vector<uint8_t>& data,
390 uint32_t timeout, 386 uint32_t timeout,
391 const GenericTransferOutCallback& callback) { 387 const GenericTransferOutCallback& callback) {
392 if (!device_handle_) { 388 if (!device_handle_) {
393 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR); 389 callback.Run(mojom::UsbTransferStatus::TRANSFER_ERROR);
394 return; 390 return;
395 } 391 }
396 392
397 uint8_t endpoint_address = endpoint_number; 393 uint8_t endpoint_address = endpoint_number;
398 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size()); 394 scoped_refptr<net::IOBuffer> buffer = CreateTransferBuffer(data.size());
399 std::copy(data.begin(), data.end(), buffer->data()); 395 std::copy(data.begin(), data.end(), buffer->data());
400 device_handle_->GenericTransfer(USB_DIRECTION_OUTBOUND, endpoint_address, 396 device_handle_->GenericTransfer(
401 buffer, data.size(), timeout, 397 UsbTransferDirection::OUTBOUND, endpoint_address, buffer, data.size(),
402 base::Bind(&OnTransferOut, callback)); 398 timeout, base::Bind(&OnTransferOut, callback));
403 } 399 }
404 400
405 void DeviceImpl::IsochronousTransferIn( 401 void DeviceImpl::IsochronousTransferIn(
406 uint8_t endpoint_number, 402 uint8_t endpoint_number,
407 const std::vector<uint32_t>& packet_lengths, 403 const std::vector<uint32_t>& packet_lengths,
408 uint32_t timeout, 404 uint32_t timeout,
409 const IsochronousTransferInCallback& callback) { 405 const IsochronousTransferInCallback& callback) {
410 if (!device_handle_) { 406 if (!device_handle_) {
411 callback.Run(base::nullopt, 407 callback.Run(base::nullopt,
412 BuildIsochronousPacketArray( 408 BuildIsochronousPacketArray(
(...skipping 27 matching lines...) Expand all
440 base::Bind(&OnIsochronousTransferOut, callback)); 436 base::Bind(&OnIsochronousTransferOut, callback));
441 } 437 }
442 438
443 void DeviceImpl::OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) { 439 void DeviceImpl::OnDeviceRemoved(scoped_refptr<device::UsbDevice> device) {
444 DCHECK_EQ(device_, device); 440 DCHECK_EQ(device_, device);
445 binding_->Close(); 441 binding_->Close();
446 } 442 }
447 443
448 } // namespace usb 444 } // namespace usb
449 } // namespace device 445 } // namespace device
OLDNEW
« no previous file with comments | « device/usb/mock_usb_device_handle.h ('k') | device/usb/mojo/device_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698