| Index: device/usb/usb_device_handle.h | 
| diff --git a/device/usb/usb_device_handle.h b/device/usb/usb_device_handle.h | 
| index a97dddcd151ce0203ae83478a1cd8845d8b5bf79..b206cf19f8e8c0cc6d30566f2eda51294c71e08e 100644 | 
| --- a/device/usb/usb_device_handle.h | 
| +++ b/device/usb/usb_device_handle.h | 
| @@ -40,9 +40,18 @@ enum UsbTransferStatus { | 
| // UsbDeviceHandle class provides basic I/O related functionalities. | 
| class UsbDeviceHandle : public base::RefCountedThreadSafe<UsbDeviceHandle> { | 
| public: | 
| +  struct IsochronousPacket { | 
| +    uint32_t length; | 
| +    uint32_t transferred_length; | 
| +    UsbTransferStatus status; | 
| +  }; | 
| + | 
| using ResultCallback = base::Callback<void(bool)>; | 
| using TransferCallback = base::Callback< | 
| void(UsbTransferStatus, scoped_refptr<net::IOBuffer>, size_t)>; | 
| +  using IsochronousTransferCallback = | 
| +      base::Callback<void(scoped_refptr<net::IOBuffer>, | 
| +                          const std::vector<IsochronousPacket>& packets)>; | 
|  | 
| enum TransferRequestType { STANDARD, CLASS, VENDOR, RESERVED }; | 
| enum TransferRecipient { DEVICE, INTERFACE, ENDPOINT, OTHER }; | 
| @@ -81,17 +90,21 @@ class UsbDeviceHandle : public base::RefCountedThreadSafe<UsbDeviceHandle> { | 
| unsigned int timeout, | 
| const TransferCallback& callback) = 0; | 
|  | 
| -  virtual void IsochronousTransfer(UsbEndpointDirection direction, | 
| -                                   uint8_t endpoint, | 
| -                                   scoped_refptr<net::IOBuffer> buffer, | 
| -                                   size_t length, | 
| -                                   unsigned int packets, | 
| -                                   unsigned int packet_length, | 
| -                                   unsigned int timeout, | 
| -                                   const TransferCallback& callback) = 0; | 
| +  virtual void IsochronousTransferIn( | 
| +      uint8_t endpoint_number, | 
| +      const std::vector<uint32_t>& packet_lengths, | 
| +      unsigned int timeout, | 
| +      const IsochronousTransferCallback& callback) = 0; | 
| + | 
| +  virtual void IsochronousTransferOut( | 
| +      uint8_t endpoint_number, | 
| +      scoped_refptr<net::IOBuffer> buffer, | 
| +      const std::vector<uint32_t>& packet_lengths, | 
| +      unsigned int timeout, | 
| +      const IsochronousTransferCallback& callback) = 0; | 
|  | 
| virtual void GenericTransfer(UsbEndpointDirection direction, | 
| -                               uint8_t endpoint, | 
| +                               uint8_t endpoint_number, | 
| scoped_refptr<net::IOBuffer> buffer, | 
| size_t length, | 
| unsigned int timeout, | 
| @@ -109,6 +122,7 @@ class UsbDeviceHandle : public base::RefCountedThreadSafe<UsbDeviceHandle> { | 
|  | 
| virtual ~UsbDeviceHandle(); | 
|  | 
| + private: | 
| DISALLOW_COPY_AND_ASSIGN(UsbDeviceHandle); | 
| }; | 
|  | 
|  |