Sebastian Zagrodzki
0ba09a9942
Move device handle to newUSBTransfer args, remove separate attach()
2017-02-14 01:24:20 +01:00
Sebastian Zagrodzki
16f99ed0b0
Merge remote-tracking branch 'origin/master' into async_transfers_everywhere
2017-02-14 01:12:35 +01:00
Sebastian Zagrodzki
1b4014cb28
Set the pointer type, to make the compiler happy, otherwise it might
...
complain about the incompatible pointer types.
2017-02-13 19:25:24 +01:00
Sebastian Zagrodzki
d4d7011a44
Don't assume libusb headers are always in libusb-1.0.
...
Use pkg-config to add correct include paths for libusb regardless of the
platform.
2017-02-13 17:08:46 +01:00
Sebastian Zagrodzki
e9d2ce49f0
Add missing attach.
2017-02-13 03:17:29 +01:00
Sebastian Zagrodzki
931a15849b
set the same channel in t.xfer.user_data as in t.done.
2017-02-13 03:14:38 +01:00
Sebastian Zagrodzki
ea1db2d56a
move to updated transfer init protocol
2017-02-13 03:02:32 +01:00
Sebastian Zagrodzki
4a64c18350
move newUSBTransfer as a vanilla function to transfer.go.
...
Initialize all static params at new.
2017-02-13 03:01:30 +01:00
Sebastian Zagrodzki
a47809fda8
Simplify the C part even more - the buffer that xfer uses for
...
transferring data is the same as the one that was created in
newUSBTransfer.
2017-02-13 02:50:47 +01:00
Sebastian Zagrodzki
83a4778988
wait() does not need the buffer passed explicitly, it's already stored
...
in t.buf.
2017-02-10 22:32:16 +01:00
Sebastian Zagrodzki
1860441a7b
iso.go is no longer needed, the only iso-specific part lives in
...
transfer.c
2017-02-10 22:12:21 +01:00
Sebastian Zagrodzki
31b3ac1c67
move iso.c to transfer.c, as it's used for all transfers.
...
move transfer callback to transfer.go.
2017-02-10 22:11:54 +01:00
Sebastian Zagrodzki
d7ed6d67e6
Rename iso_callback to transfer_callback, it's used for all transfer
...
types.
2017-02-10 22:08:39 +01:00
Sebastian Zagrodzki
87abb704d7
Make all transfer types use a generic endpoint.transfer() function
...
that uses libusb's asynchronous interface.
2017-02-10 22:06:57 +01:00
Sebastian Zagrodzki
c9c2757fe6
Replace the libusb_bulk_transfer with the same prepare-submit-wait
...
routine iso transfers use.
2017-02-10 21:46:12 +01:00
Sebastian Zagrodzki
9e50cd8c1c
Rename extract_data to extract_iso_data, add extract_data for use by
...
other transfer types.
2017-02-10 21:45:26 +01:00
Sebastian Zagrodzki
b4393ac372
Merge branch 'rawread_benchmark'
2017-02-09 22:52:55 +01:00
Sebastian Zagrodzki
c792f8e028
replace allocTransfer with a new more generic newUSBTransfer
2017-02-09 22:51:28 +01:00
Sebastian Zagrodzki
de92c7047b
make methods of usbTransfer private
2017-02-09 22:38:16 +01:00
Sebastian Zagrodzki
80b2741a2c
Rename Transfer to usbTransfer, it's internal to gousb.
...
Move usbTransfer and it's methods to transfer.go, it's not only used by
iso transfers.
2017-02-09 22:36:51 +01:00
Sebastian Zagrodzki
66a1f45cd9
Remove the artificial limit. The worst case is a longer timeout for the
...
transfer is required.
2017-02-08 23:29:17 +01:00
Sebastian Zagrodzki
c27a77b547
Pass the max buffer size down to the alloc_transfer. Use the number
...
of iso packets matching the buffer size. This guarantees that the
transfer size is smaller or equal to the buffer.
Device will transfer less data if iso transfer response does not utilize the
maximum available number of iso packets per microframe or doesn't fill
the packets entirely.
2017-02-08 23:02:08 +01:00
Sebastian Zagrodzki
a35725f4fb
When extracting transfer data, pay attention to the size of the buffer
...
provided by the user, which may be smaller than the length of data
received in the transfer.
2017-02-08 22:37:12 +01:00
Sebastian Zagrodzki
a19ac0f654
Per http://www.beyondlogic.org/usbnutshell/usb5.shtml#EndpointDescriptors :
...
bits 0-3 are endpoint number, 4-6 reserved, set to zero, bit 7 is
direction. Bits 0-3 is 0x0f.
2017-02-08 22:35:45 +01:00
Sebastian Zagrodzki
1800586f77
Merge branch 'master' into authors_and_contributing
2017-02-07 09:44:41 +01:00
zagrodzki
cd91046028
Merge pull request #21 from thorduri/iso-callback-prototype
...
Appease C99 by providing a prototype for iso_callback().
2017-02-07 08:24:36 +01:00
Sebastian Zagrodzki
beb4fdbac5
Update copyright notes for multiple contributors.
2017-02-07 07:37:57 +01:00
Sebastian Zagrodzki
397a363de1
Revert "Ditto for device_test, move to usb_test package."
...
This reverts commit c1b87403fa
.
2017-02-06 20:26:32 +01:00
Sebastian Zagrodzki
aafad620e6
Revert "Move usb_test to a separate package, in line with opensource Go"
...
This reverts commit 4d60ebb065
.
2017-02-06 20:26:23 +01:00
Sebastian Zagrodzki
9849c8088e
Add a reference to libusb ticket on incorrect max iso packet size.
2017-02-05 16:49:02 +01:00
Sebastian Zagrodzki
c1b87403fa
Ditto for device_test, move to usb_test package.
2017-02-05 16:46:56 +01:00
Sebastian Zagrodzki
4d60ebb065
Move usb_test to a separate package, in line with opensource Go
...
expectations. Multiple packages per directory are not supported in this
realm ;) And with a separate package, the dot import seems unnecessary.
2017-02-05 16:29:22 +01:00
Sebastian Zagrodzki
f13728c6e1
Set the MaxIsoPacket field in the endpoint info if the endpoint is
...
an isochronous endpoint. Use MaxIsoPacket as the iso packet size
when preparing the iso transfer.
2017-02-05 16:20:58 +01:00
Sebastian Zagrodzki
4319ef2cc2
Revert "Use the calculated max iso packet size."
...
The libusb_get_max_iso_packet_size ignores the endpoint information and
will return the same size for all endpoints, even if the current
alternative configuration does not support given size.
This reverts commit a6e284610b
.
2017-02-05 16:00:53 +01:00
Sebastian Zagrodzki
a6e284610b
Use the calculated max iso packet size.
2017-02-05 04:16:57 +01:00
Thordur Bjornsson
82210bc585
Aappease C99 by providing a prototype for iso_callback().
2016-09-26 17:51:26 +02:00
Kyle Lemons
8736c99b74
Whitelist tests for travis-ci
2016-04-03 10:25:58 -07:00
Kyle Lemons
0042b0dd4f
report correct error during Enum failure
2016-04-02 13:20:31 -07:00
Kyle Lemons
497c20341d
idiomatic slice append
2016-04-02 13:19:59 -07:00
nodtem66
3138826f8a
fix cgo build directive
2015-04-08 01:25:20 +07:00
nodtem66
c7d3dad580
add unit test device_test.go
2015-03-04 01:36:51 +07:00
nodtem66
f3b93aa5fa
handle error OpenDeviceWithVidPid and add GetStringDescriptor
2015-03-04 01:32:24 +07:00
nodtem66
4bf19c7f86
undo the edited usb_test.go in TestMultipleContexts to origin
2015-03-03 00:24:24 +07:00
nodtem66
897ea727f3
tested for libusb-1.0.19 on windows (MinGw)
2015-03-03 00:20:31 +07:00
Kyle Lemons
b9f2aa720b
Fix up usb to pass reliably and to work cross-platform
2013-08-14 19:38:57 -07:00
Kyle Lemons
ca13741ba1
See https://github.com/kylelemons/gousb/pull/7
...
Merge branch 'fix-context-close-race' of https://github.com/krasin/gousb
2013-08-14 19:23:18 -07:00
Kyle Lemons
96f1a0a774
Update LICENSE
2013-08-14 19:22:55 -07:00
Ivan Krasin
f0ae807096
Fix race condition with C.libusb_handle_events that might still being called while libusb_exit is executed. Use C.libusb_handle_events_timeout_completed which accepts timeouts and pass 100 ms timeout. This is the recommended way to deal with this issue, see http://libusb.sourceforge.net/api-1.0/group__poll.html#ga43e52b912a760b41a0cf8a4a472fbd5b and http://libusb.sourceforge.net/api-1.0/group__poll.html#ga4989086e3f0327f3886a4c474ec7c327
2013-08-14 00:34:00 -07:00
Ivan Krasin
e5e703175c
Add a test case that triggers 'handle_events: error: libusb: unknown error [code -99]'
2013-08-14 00:25:49 -07:00
Kyle Lemons
f0081d8ff9
add xbox example and make some changes to support it
2013-06-22 08:38:58 -07:00