started working on adding isochronous support
diff --git a/gyro_board/src/libusb-driver/libusb_wrap.h b/gyro_board/src/libusb-driver/libusb_wrap.h
index 9713534..261cded 100644
--- a/gyro_board/src/libusb-driver/libusb_wrap.h
+++ b/gyro_board/src/libusb-driver/libusb_wrap.h
@@ -8,6 +8,7 @@
 class LibUSBDeviceHandle;
 namespace libusb {
 class Transfer;
+class IsochronousTransfer;
 }
 
 class LibUSB {
@@ -41,6 +42,7 @@
  private:
   friend class LibUSB; // For constructor
   friend class libusb::Transfer;  // for access to dev_handle_
+  friend class libusb::IsochronousTransfer;  // for access to dev_handle_
   // Takes ownership of the device handle and frees it when destructed.
   explicit LibUSBDeviceHandle(libusb_device_handle *dev_handle);
   libusb_device_handle *dev_handle_;
@@ -74,10 +76,12 @@
 
   const uint8_t *data() { return data_; }
 
- private:
+ protected:
   static void StaticTransferCallback(libusb_transfer *self) {
     static_cast<Transfer *>(self->user_data)->TransferCallback();
   }
+
+ private:
   void TransferCallback();
 
   libusb_transfer *const transfer_;
@@ -91,6 +95,21 @@
   DISALLOW_COPY_AND_ASSIGN(Transfer);
 };
 
+class IsochronousTransfer : public Transfer {
+ public:
+  IsochronousTransfer(size_t packet_length,
+                      int num_packets,
+                      void (*callback)(Transfer *, void *),
+                      void *user_data);
+
+  void FillIsochronous(LibUSBDeviceHandle *device,
+                       unsigned char endpoint,
+                       unsigned int timeout);
+
+ private:
+  const int num_packets_;
+};
+
 }  // namespace libusb
 
 #endif  // LIBUSB_H_