libusb 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -2
  3. data/Gemfile +2 -0
  4. data/History.md +12 -0
  5. data/README.md +25 -14
  6. data/Rakefile +64 -109
  7. data/appveyor.yml +23 -0
  8. data/ext/extconf.rb +10 -12
  9. data/ext/libusb_recipe.rb +29 -0
  10. data/lib/libusb/call.rb +14 -11
  11. data/lib/libusb/compat.rb +9 -9
  12. data/lib/libusb/context.rb +16 -1
  13. data/lib/libusb/dependencies.rb +7 -0
  14. data/lib/libusb/dev_handle.rb +13 -3
  15. data/lib/libusb/eventmachine.rb +4 -4
  16. data/lib/libusb/transfer.rb +71 -10
  17. data/lib/libusb/version_gem.rb +1 -1
  18. data/libusb.gemspec +7 -5
  19. data/ports/archives/libusb-1.0.21.tar.bz2 +0 -0
  20. data/test/test_libusb_bulk_stream_transfer.rb +1 -1
  21. data/test/test_libusb_descriptors.rb +4 -4
  22. data/test/test_libusb_event_machine.rb +7 -7
  23. data/test/test_libusb_hotplug.rb +15 -3
  24. data/test/test_libusb_iso_transfer.rb +1 -1
  25. data/test/test_libusb_mass_storage.rb +19 -19
  26. data/test/test_libusb_mass_storage2.rb +1 -1
  27. data/test/test_libusb_structs.rb +13 -0
  28. data/test/test_libusb_threads.rb +2 -2
  29. data/wireshark-usb-sniffer.png +0 -0
  30. metadata +32 -156
  31. checksums.yaml.gz.sig +0 -0
  32. data.tar.gz.sig +0 -0
  33. data/ext/libusb-1.0.20/AUTHORS +0 -89
  34. data/ext/libusb-1.0.20/COPYING +0 -504
  35. data/ext/libusb-1.0.20/ChangeLog +0 -227
  36. data/ext/libusb-1.0.20/INSTALL +0 -234
  37. data/ext/libusb-1.0.20/Makefile.am +0 -28
  38. data/ext/libusb-1.0.20/Makefile.in +0 -897
  39. data/ext/libusb-1.0.20/NEWS +0 -2
  40. data/ext/libusb-1.0.20/PORTING +0 -94
  41. data/ext/libusb-1.0.20/README +0 -29
  42. data/ext/libusb-1.0.20/TODO +0 -2
  43. data/ext/libusb-1.0.20/Xcode/common.xcconfig +0 -49
  44. data/ext/libusb-1.0.20/Xcode/config.h +0 -28
  45. data/ext/libusb-1.0.20/Xcode/debug.xcconfig +0 -29
  46. data/ext/libusb-1.0.20/Xcode/libusb.xcconfig +0 -21
  47. data/ext/libusb-1.0.20/Xcode/libusb.xcodeproj/project.pbxproj +0 -865
  48. data/ext/libusb-1.0.20/Xcode/libusb_debug.xcconfig +0 -21
  49. data/ext/libusb-1.0.20/Xcode/libusb_release.xcconfig +0 -21
  50. data/ext/libusb-1.0.20/Xcode/release.xcconfig +0 -30
  51. data/ext/libusb-1.0.20/aclocal.m4 +0 -1193
  52. data/ext/libusb-1.0.20/android/README +0 -114
  53. data/ext/libusb-1.0.20/android/config.h +0 -81
  54. data/ext/libusb-1.0.20/android/jni/Android.mk +0 -23
  55. data/ext/libusb-1.0.20/android/jni/Application.mk +0 -24
  56. data/ext/libusb-1.0.20/android/jni/examples.mk +0 -134
  57. data/ext/libusb-1.0.20/android/jni/libusb.mk +0 -54
  58. data/ext/libusb-1.0.20/android/jni/tests.mk +0 -56
  59. data/ext/libusb-1.0.20/compile +0 -347
  60. data/ext/libusb-1.0.20/config.guess +0 -1421
  61. data/ext/libusb-1.0.20/config.h.in +0 -155
  62. data/ext/libusb-1.0.20/config.sub +0 -1807
  63. data/ext/libusb-1.0.20/configure +0 -15466
  64. data/ext/libusb-1.0.20/configure.ac +0 -326
  65. data/ext/libusb-1.0.20/depcomp +0 -791
  66. data/ext/libusb-1.0.20/doc/Makefile.am +0 -9
  67. data/ext/libusb-1.0.20/doc/Makefile.in +0 -456
  68. data/ext/libusb-1.0.20/doc/doxygen.cfg.in +0 -2334
  69. data/ext/libusb-1.0.20/examples/Makefile.am +0 -19
  70. data/ext/libusb-1.0.20/examples/Makefile.in +0 -713
  71. data/ext/libusb-1.0.20/examples/dpfp.c +0 -506
  72. data/ext/libusb-1.0.20/examples/dpfp_threaded.c +0 -549
  73. data/ext/libusb-1.0.20/examples/ezusb.c +0 -831
  74. data/ext/libusb-1.0.20/examples/ezusb.h +0 -120
  75. data/ext/libusb-1.0.20/examples/fxload.c +0 -308
  76. data/ext/libusb-1.0.20/examples/getopt/getopt.c +0 -1060
  77. data/ext/libusb-1.0.20/examples/getopt/getopt.h +0 -180
  78. data/ext/libusb-1.0.20/examples/getopt/getopt1.c +0 -188
  79. data/ext/libusb-1.0.20/examples/hotplugtest.c +0 -122
  80. data/ext/libusb-1.0.20/examples/listdevs.c +0 -71
  81. data/ext/libusb-1.0.20/examples/sam3u_benchmark.c +0 -193
  82. data/ext/libusb-1.0.20/examples/xusb.c +0 -1130
  83. data/ext/libusb-1.0.20/install-sh +0 -501
  84. data/ext/libusb-1.0.20/libusb-1.0.pc.in +0 -11
  85. data/ext/libusb-1.0.20/libusb/Makefile.am +0 -90
  86. data/ext/libusb-1.0.20/libusb/Makefile.in +0 -1053
  87. data/ext/libusb-1.0.20/libusb/core.c +0 -2452
  88. data/ext/libusb-1.0.20/libusb/descriptor.c +0 -1201
  89. data/ext/libusb-1.0.20/libusb/hotplug.c +0 -344
  90. data/ext/libusb-1.0.20/libusb/hotplug.h +0 -90
  91. data/ext/libusb-1.0.20/libusb/io.c +0 -2760
  92. data/ext/libusb-1.0.20/libusb/libusb-1.0.def +0 -168
  93. data/ext/libusb-1.0.20/libusb/libusb-1.0.rc +0 -61
  94. data/ext/libusb-1.0.20/libusb/libusb.h +0 -1999
  95. data/ext/libusb-1.0.20/libusb/libusbi.h +0 -1102
  96. data/ext/libusb-1.0.20/libusb/os/darwin_usb.c +0 -1969
  97. data/ext/libusb-1.0.20/libusb/os/darwin_usb.h +0 -158
  98. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.am +0 -5
  99. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.in +0 -810
  100. data/ext/libusb-1.0.20/libusb/os/haiku/aclocal.m4 +0 -1193
  101. data/ext/libusb-1.0.20/libusb/os/haiku/compile +0 -347
  102. data/ext/libusb-1.0.20/libusb/os/haiku/config.guess +0 -1421
  103. data/ext/libusb-1.0.20/libusb/os/haiku/config.sub +0 -1807
  104. data/ext/libusb-1.0.20/libusb/os/haiku/configure +0 -17579
  105. data/ext/libusb-1.0.20/libusb/os/haiku/configure.ac +0 -8
  106. data/ext/libusb-1.0.20/libusb/os/haiku/depcomp +0 -791
  107. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_pollfs.cpp +0 -378
  108. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb.h +0 -112
  109. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_backend.cpp +0 -550
  110. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.cpp +0 -255
  111. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.h +0 -180
  112. data/ext/libusb-1.0.20/libusb/os/haiku/install-sh +0 -501
  113. data/ext/libusb-1.0.20/libusb/os/haiku/ltmain.sh +0 -9655
  114. data/ext/libusb-1.0.20/libusb/os/haiku/m4/libtool.m4 +0 -7992
  115. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltoptions.m4 +0 -384
  116. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltsugar.m4 +0 -123
  117. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltversion.m4 +0 -23
  118. data/ext/libusb-1.0.20/libusb/os/haiku/m4/lt~obsolete.m4 +0 -98
  119. data/ext/libusb-1.0.20/libusb/os/haiku/missing +0 -215
  120. data/ext/libusb-1.0.20/libusb/os/linux_netlink.c +0 -369
  121. data/ext/libusb-1.0.20/libusb/os/linux_udev.c +0 -306
  122. data/ext/libusb-1.0.20/libusb/os/linux_usbfs.c +0 -2692
  123. data/ext/libusb-1.0.20/libusb/os/linux_usbfs.h +0 -192
  124. data/ext/libusb-1.0.20/libusb/os/netbsd_usb.c +0 -674
  125. data/ext/libusb-1.0.20/libusb/os/openbsd_usb.c +0 -768
  126. data/ext/libusb-1.0.20/libusb/os/poll_posix.c +0 -53
  127. data/ext/libusb-1.0.20/libusb/os/poll_posix.h +0 -11
  128. data/ext/libusb-1.0.20/libusb/os/poll_windows.c +0 -728
  129. data/ext/libusb-1.0.20/libusb/os/poll_windows.h +0 -131
  130. data/ext/libusb-1.0.20/libusb/os/threads_posix.c +0 -82
  131. data/ext/libusb-1.0.20/libusb/os/threads_posix.h +0 -50
  132. data/ext/libusb-1.0.20/libusb/os/threads_windows.c +0 -214
  133. data/ext/libusb-1.0.20/libusb/os/threads_windows.h +0 -87
  134. data/ext/libusb-1.0.20/libusb/os/wince_usb.c +0 -869
  135. data/ext/libusb-1.0.20/libusb/os/wince_usb.h +0 -131
  136. data/ext/libusb-1.0.20/libusb/os/windows_common.h +0 -108
  137. data/ext/libusb-1.0.20/libusb/os/windows_usb.c +0 -4643
  138. data/ext/libusb-1.0.20/libusb/os/windows_usb.h +0 -973
  139. data/ext/libusb-1.0.20/libusb/strerror.c +0 -202
  140. data/ext/libusb-1.0.20/libusb/sync.c +0 -308
  141. data/ext/libusb-1.0.20/libusb/version.h +0 -18
  142. data/ext/libusb-1.0.20/libusb/version_nano.h +0 -1
  143. data/ext/libusb-1.0.20/ltmain.sh +0 -9655
  144. data/ext/libusb-1.0.20/m4/libtool.m4 +0 -7992
  145. data/ext/libusb-1.0.20/m4/ltoptions.m4 +0 -384
  146. data/ext/libusb-1.0.20/m4/ltsugar.m4 +0 -123
  147. data/ext/libusb-1.0.20/m4/ltversion.m4 +0 -23
  148. data/ext/libusb-1.0.20/m4/lt~obsolete.m4 +0 -98
  149. data/ext/libusb-1.0.20/missing +0 -215
  150. data/ext/libusb-1.0.20/tests/Makefile.am +0 -6
  151. data/ext/libusb-1.0.20/tests/Makefile.in +0 -596
  152. data/ext/libusb-1.0.20/tests/libusb_testlib.h +0 -107
  153. data/ext/libusb-1.0.20/tests/stress.c +0 -160
  154. data/ext/libusb-1.0.20/tests/testlib.c +0 -277
  155. metadata.gz.sig +0 -0
@@ -32,7 +32,7 @@ class TestLibusbEventMachine < Minitest::Test
32
32
  @context = Context.new
33
33
  @context.debug = 3
34
34
 
35
- @device = context.devices( :bClass=>CLASS_MASS_STORAGE, :bSubClass=>[0x06,0x01], :bProtocol=>0x50 ).last
35
+ @device = context.devices( bClass: CLASS_MASS_STORAGE, bSubClass: [0x06,0x01], bProtocol: 0x50 ).last
36
36
  skip "no mass storage device found" unless @device
37
37
 
38
38
  @endpoint_in = @device.endpoints.find{|ep| ep.bEndpointAddress&ENDPOINT_IN != 0 }
@@ -70,9 +70,9 @@ class TestLibusbEventMachine < Minitest::Test
70
70
  em_run do
71
71
  ticks = 0
72
72
  tr = devh.eventmachine_bulk_transfer(
73
- :endpoint => @endpoint_in,
74
- :timeout => 1500,
75
- :dataIn => 123 )
73
+ endpoint: @endpoint_in,
74
+ timeout: 1500,
75
+ dataIn: 123 )
76
76
  # puts "started usb transfer #{tr}"
77
77
 
78
78
  tr.callback do |data|
@@ -98,9 +98,9 @@ class TestLibusbEventMachine < Minitest::Test
98
98
  def test_event_loop
99
99
  em_run do
100
100
  tr = devh.eventmachine_control_transfer(
101
- :bmRequestType=>ENDPOINT_IN|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
102
- :bRequest=>BOMS_GET_MAX_LUN,
103
- :wValue=>0, :wIndex=>0, :dataIn=>1 )
101
+ bmRequestType: ENDPOINT_IN|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
102
+ bRequest: BOMS_GET_MAX_LUN,
103
+ wValue: 0, wIndex: 0, dataIn: 1 )
104
104
 
105
105
  # puts "started usb transfer #{tr}"
106
106
  tr.callback do |data|
@@ -31,7 +31,7 @@ class TestLibusbHotplug < Minitest::Test
31
31
 
32
32
  def test_enumerate
33
33
  devs = []
34
- ctx.on_hotplug_event :flags => HOTPLUG_ENUMERATE do |dev, event|
34
+ ctx.on_hotplug_event flags: HOTPLUG_ENUMERATE do |dev, event|
35
35
  devs << dev
36
36
  assert_equal :HOTPLUG_EVENT_DEVICE_ARRIVED, event
37
37
  :repeat
@@ -44,7 +44,7 @@ class TestLibusbHotplug < Minitest::Test
44
44
 
45
45
  def test_enumerate_with_left
46
46
  devs = []
47
- ctx.on_hotplug_event :flags => HOTPLUG_ENUMERATE, :events => HOTPLUG_EVENT_DEVICE_LEFT do |dev, event|
47
+ ctx.on_hotplug_event flags: HOTPLUG_ENUMERATE, events: HOTPLUG_EVENT_DEVICE_LEFT do |dev, event|
48
48
  devs << dev
49
49
  assert_equal :HOTPLUG_EVENT_DEVICE_ARRIVED, event
50
50
  :repeat
@@ -65,7 +65,7 @@ class TestLibusbHotplug < Minitest::Test
65
65
 
66
66
  def test_wrong_yieldreturn
67
67
  ex = assert_raises(ArgumentError) do
68
- ctx.on_hotplug_event :flags => :HOTPLUG_ENUMERATE do |dev, event|
68
+ ctx.on_hotplug_event flags: :HOTPLUG_ENUMERATE do |dev, event|
69
69
  end
70
70
  end
71
71
 
@@ -112,4 +112,16 @@ class TestLibusbHotplug < Minitest::Test
112
112
  assert_operator devs2.map(&:last), :include?, :HOTPLUG_EVENT_DEVICE_ARRIVED, "Should have received ARRIVED"
113
113
  assert_operator devs2.map(&:last), :include?, :HOTPLUG_EVENT_DEVICE_LEFT, "Should have received LEFT"
114
114
  end
115
+
116
+ def test_interrupt_event_handler
117
+ th = Thread.new do
118
+ ctx.handle_events 5000
119
+ end
120
+
121
+ sleep 0.1 # Workaround a bug in libusb-1,0.21
122
+ st = Time.now
123
+ ctx.interrupt_event_handler
124
+ th.join
125
+ assert_operator Time.now-st, :<, 5.0
126
+ end
115
127
  end
@@ -34,7 +34,7 @@ class TestLibusbIsoTransfer < Minitest::Test
34
34
  end
35
35
 
36
36
  def test_iso_transfer
37
- tr = IsochronousTransfer.new 10, :dev_handle=>@dev
37
+ tr = IsochronousTransfer.new 10, dev_handle: @dev
38
38
  assert_equal 10, tr.num_packets, "number of packets should match"
39
39
 
40
40
  tr.buffer = " "*130
@@ -40,7 +40,7 @@ class TestLibusbMassStorage < Minitest::Test
40
40
  @usb.debug = 3
41
41
  @asynchron = false
42
42
 
43
- @device = usb.devices( :bClass=>CLASS_MASS_STORAGE, :bSubClass=>[0x06,0x01], :bProtocol=>0x50 ).last
43
+ @device = usb.devices( bClass: CLASS_MASS_STORAGE, bSubClass: [0x06,0x01], bProtocol: 0x50 ).last
44
44
  skip "no mass storage device found" unless @device
45
45
 
46
46
  @endpoint_in = @device.endpoints.find{|ep| ep.bEndpointAddress&ENDPOINT_IN != 0 }
@@ -97,10 +97,10 @@ class TestLibusbMassStorage < Minitest::Test
97
97
  cbw = ['USBC', expected_tag, data_length, direction, lun, cdb.length, cdb].pack('a*VVCCCa*')
98
98
  cbw = cbw.ljust(31, "\0")
99
99
 
100
- num_bytes = bulk_transfer(:endpoint=>endpoint_out, :dataOut=>cbw)
100
+ num_bytes = bulk_transfer(endpoint: endpoint_out, dataOut: cbw)
101
101
  assert_equal 31, num_bytes, "31 bytes CBW should be sent"
102
102
 
103
- recv = bulk_transfer(:endpoint=>endpoint_in, :dataIn=>data_length)
103
+ recv = bulk_transfer(endpoint: endpoint_in, dataIn: data_length)
104
104
 
105
105
  get_mass_storage_status(expected_tag)
106
106
  return recv
@@ -109,7 +109,7 @@ class TestLibusbMassStorage < Minitest::Test
109
109
  def get_mass_storage_status(expected_tag)
110
110
  retries = 5
111
111
  buffer = begin
112
- bulk_transfer(:endpoint=>endpoint_in, :dataIn=>13)
112
+ bulk_transfer(endpoint: endpoint_in, dataIn: 13)
113
113
  rescue LIBUSB::ERROR_PIPE
114
114
  if (retries-=1)>=0
115
115
  dev.clear_halt(endpoint_in)
@@ -167,23 +167,23 @@ class TestLibusbMassStorage < Minitest::Test
167
167
 
168
168
  def mass_storage_reset
169
169
  res = control_transfer(
170
- :bmRequestType=>ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
171
- :bRequest=>BOMS_RESET,
172
- :wValue=>0, :wIndex=>0)
170
+ bmRequestType: ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
171
+ bRequest: BOMS_RESET,
172
+ wValue: 0, wIndex: 0)
173
173
  assert_equal 0, res, "BOMS_RESET response should be 0 byte"
174
174
 
175
175
  res = control_transfer(
176
- :bmRequestType=>ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
177
- :bRequest=>BOMS_RESET,
178
- :wValue=>0, :wIndex=>0, :dataOut=>'')
176
+ bmRequestType: ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
177
+ bRequest: BOMS_RESET,
178
+ wValue: 0, wIndex: 0, dataOut: '')
179
179
  assert_equal 0, res, "BOMS_RESET response should be 0 byte"
180
180
  end
181
181
 
182
182
  def read_max_lun
183
183
  res = control_transfer(
184
- :bmRequestType=>ENDPOINT_IN|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
185
- :bRequest=>BOMS_GET_MAX_LUN,
186
- :wValue=>0, :wIndex=>0, :dataIn=>1)
184
+ bmRequestType: ENDPOINT_IN|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
185
+ bRequest: BOMS_GET_MAX_LUN,
186
+ wValue: 0, wIndex: 0, dataIn: 1)
187
187
  assert [0].pack("C")==res || [1].pack("C")==res, "BOMS_GET_MAX_LUN response is usually 0 or 1"
188
188
  end
189
189
 
@@ -217,7 +217,7 @@ class TestLibusbMassStorage < Minitest::Test
217
217
  end
218
218
  assert_raises(LIBUSB::ERROR_TIMEOUT) do
219
219
  begin
220
- bulk_transfer(:endpoint=>endpoint_in, :dataIn=>123)
220
+ bulk_transfer(endpoint: endpoint_in, dataIn: 123)
221
221
  rescue LIBUSB::ERROR_TIMEOUT => err
222
222
  assert_kind_of String, err.transferred
223
223
  raise
@@ -258,11 +258,11 @@ class TestLibusbMassStorage < Minitest::Test
258
258
  end
259
259
 
260
260
  def test_wrong_argument
261
- assert_raises(ArgumentError){ dev.bulk_transfer(:endpoint=>endpoint_in, :dataOut=>"data") }
262
- assert_raises(ArgumentError){ dev.interrupt_transfer(:endpoint=>endpoint_in, :dataOut=>"data") }
261
+ assert_raises(ArgumentError){ dev.bulk_transfer(endpoint: endpoint_in, dataOut: "data") }
262
+ assert_raises(ArgumentError){ dev.interrupt_transfer(endpoint: endpoint_in, dataOut: "data") }
263
263
  assert_raises(ArgumentError){ dev.control_transfer(
264
- :bmRequestType=>ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
265
- :bRequest=>BOMS_RESET,
266
- :wValue=>0, :wIndex=>0, :dataIn=>123) }
264
+ bmRequestType: ENDPOINT_OUT|REQUEST_TYPE_CLASS|RECIPIENT_INTERFACE,
265
+ bRequest: BOMS_RESET,
266
+ wValue: 0, wIndex: 0, dataIn: 123) }
267
267
  end
268
268
  end
@@ -27,7 +27,7 @@ class TestLibusbMassStorage2 < Minitest::Test
27
27
  def setup
28
28
  @usb = Context.new
29
29
  @usb.debug = 3
30
- @device = usb.devices( :bClass=>CLASS_MASS_STORAGE, :bSubClass=>[0x06,0x01], :bProtocol=>0x50 ).last
30
+ @device = usb.devices( bClass: CLASS_MASS_STORAGE, bSubClass: [0x06,0x01], bProtocol: 0x50 ).last
31
31
  skip "no mass storage device found" unless @device
32
32
 
33
33
  @interface = device.interfaces.first
@@ -42,4 +42,17 @@ class TestLibusbStructs < Minitest::Test
42
42
  assert_equal false, s.completed?
43
43
  assert_equal 0, s[:completed]
44
44
  end
45
+
46
+ def test_Transfer
47
+ t = LIBUSB::InterruptTransfer.new allow_device_memory: true
48
+ assert_equal :TRANSFER_COMPLETED, t.status
49
+ assert_equal true, t.allow_device_memory
50
+ assert_equal nil, t.memory_type
51
+
52
+ t.alloc_buffer(10)
53
+ assert_equal :user_space, t.memory_type, "no device assigned -> should use memory from user space"
54
+
55
+ t.free_buffer
56
+ assert_equal nil, t.memory_type
57
+ end
45
58
  end
@@ -34,7 +34,7 @@ class TestLibusbThreads < Minitest::Test
34
34
  @usb = Context.new
35
35
  @usb.debug = 3
36
36
 
37
- @devices = usb.devices( :bClass=>CLASS_MASS_STORAGE, :bSubClass=>[0x06,0x01], :bProtocol=>0x50 )
37
+ @devices = usb.devices( bClass: CLASS_MASS_STORAGE, bSubClass: [0x06,0x01], bProtocol: 0x50 )
38
38
  skip "less than two mass storage devices found" unless @devices.length >= 2
39
39
 
40
40
  @devs = @devices.map do |device|
@@ -71,7 +71,7 @@ class TestLibusbThreads < Minitest::Test
71
71
  1.times do
72
72
  st = Time.now
73
73
  assert_raises LIBUSB::ERROR_TIMEOUT do
74
- dev.bulk_transfer(:endpoint=>endpoint, :dataIn=>123, :timeout=>100)
74
+ dev.bulk_transfer(endpoint: endpoint, dataIn: 123, timeout: 100)
75
75
  end
76
76
  assert_operator Time.now-st, :<, 5
77
77
  dev.clear_halt(endpoint)
Binary file
metadata CHANGED
@@ -1,50 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libusb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDLjCCAhagAwIBAgIBAzANBgkqhkiG9w0BAQUFADA9MQ4wDAYDVQQDDAVrYW5p
14
- czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
15
- Fw0xNTAyMjYxNDIyNDRaFw0xNjAyMjYxNDIyNDRaMD0xDjAMBgNVBAMMBWthbmlz
16
- MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
17
- IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
18
- HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
19
- 9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
20
- lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
21
- Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
22
- L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
23
- AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
24
- x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQEFBQADggEBAE4pDPwv7zV/guo2ZETn
25
- V+oVXMvEtUv7lPLpUYTM/g1qHP+mue4vZrhHTZbqEgxZEv03noz/4yIHizMQljED
26
- 6aUw0DSCQiOtK39LeHE2SfVPnpJdl6R9WX6ObdhNvN3Q9bJL2Ng3TTPidj9on2jO
27
- 6SevWmI9NMDsupzXOjeuNKbUivcCKgIsp3+qjw1gGURF6eITEM+kxV+u4eC5ah/f
28
- iV4wuwAX30bHxaaOA2owy1BJBOHwTl5XBJFKWBf+HlTIGL6yrOjTb+rB+/rSTttv
29
- 1i6jssufMLmyDB9b1ss72d7xQQpCHH7oizgt84wKAcsV8b83kGbAhtoszY3TgGiJ
30
- rww=
31
- -----END CERTIFICATE-----
32
- date: 2015-09-29 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-12-09 00:00:00.000000000 Z
33
12
  dependencies:
34
13
  - !ruby/object:Gem::Dependency
35
14
  name: ffi
36
15
  requirement: !ruby/object:Gem::Requirement
37
16
  requirements:
38
- - - ">="
17
+ - - "~>"
39
18
  - !ruby/object:Gem::Version
40
19
  version: '1.0'
41
20
  type: :runtime
42
21
  prerelease: false
43
22
  version_requirements: !ruby/object:Gem::Requirement
44
23
  requirements:
45
- - - ">="
24
+ - - "~>"
46
25
  - !ruby/object:Gem::Version
47
26
  version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mini_portile2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.1'
48
41
  - !ruby/object:Gem::Dependency
49
42
  name: rake-compiler
50
43
  requirement: !ruby/object:Gem::Requirement
@@ -77,16 +70,16 @@ dependencies:
77
70
  name: bundler
78
71
  requirement: !ruby/object:Gem::Requirement
79
72
  requirements:
80
- - - ">="
73
+ - - "~>"
81
74
  - !ruby/object:Gem::Version
82
- version: '0'
75
+ version: '1.0'
83
76
  type: :development
84
77
  prerelease: false
85
78
  version_requirements: !ruby/object:Gem::Requirement
86
79
  requirements:
87
- - - ">="
80
+ - - "~>"
88
81
  - !ruby/object:Gem::Version
89
- version: '0'
82
+ version: '1.0'
90
83
  description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
91
84
  USB devices
92
85
  email:
@@ -104,129 +97,9 @@ files:
104
97
  - History.md
105
98
  - README.md
106
99
  - Rakefile
100
+ - appveyor.yml
107
101
  - ext/extconf.rb
108
- - ext/libusb-1.0.20/AUTHORS
109
- - ext/libusb-1.0.20/COPYING
110
- - ext/libusb-1.0.20/ChangeLog
111
- - ext/libusb-1.0.20/INSTALL
112
- - ext/libusb-1.0.20/Makefile.am
113
- - ext/libusb-1.0.20/Makefile.in
114
- - ext/libusb-1.0.20/NEWS
115
- - ext/libusb-1.0.20/PORTING
116
- - ext/libusb-1.0.20/README
117
- - ext/libusb-1.0.20/TODO
118
- - ext/libusb-1.0.20/Xcode/common.xcconfig
119
- - ext/libusb-1.0.20/Xcode/config.h
120
- - ext/libusb-1.0.20/Xcode/debug.xcconfig
121
- - ext/libusb-1.0.20/Xcode/libusb.xcconfig
122
- - ext/libusb-1.0.20/Xcode/libusb.xcodeproj/project.pbxproj
123
- - ext/libusb-1.0.20/Xcode/libusb_debug.xcconfig
124
- - ext/libusb-1.0.20/Xcode/libusb_release.xcconfig
125
- - ext/libusb-1.0.20/Xcode/release.xcconfig
126
- - ext/libusb-1.0.20/aclocal.m4
127
- - ext/libusb-1.0.20/android/README
128
- - ext/libusb-1.0.20/android/config.h
129
- - ext/libusb-1.0.20/android/jni/Android.mk
130
- - ext/libusb-1.0.20/android/jni/Application.mk
131
- - ext/libusb-1.0.20/android/jni/examples.mk
132
- - ext/libusb-1.0.20/android/jni/libusb.mk
133
- - ext/libusb-1.0.20/android/jni/tests.mk
134
- - ext/libusb-1.0.20/compile
135
- - ext/libusb-1.0.20/config.guess
136
- - ext/libusb-1.0.20/config.h.in
137
- - ext/libusb-1.0.20/config.sub
138
- - ext/libusb-1.0.20/configure
139
- - ext/libusb-1.0.20/configure.ac
140
- - ext/libusb-1.0.20/depcomp
141
- - ext/libusb-1.0.20/doc/Makefile.am
142
- - ext/libusb-1.0.20/doc/Makefile.in
143
- - ext/libusb-1.0.20/doc/doxygen.cfg.in
144
- - ext/libusb-1.0.20/examples/Makefile.am
145
- - ext/libusb-1.0.20/examples/Makefile.in
146
- - ext/libusb-1.0.20/examples/dpfp.c
147
- - ext/libusb-1.0.20/examples/dpfp_threaded.c
148
- - ext/libusb-1.0.20/examples/ezusb.c
149
- - ext/libusb-1.0.20/examples/ezusb.h
150
- - ext/libusb-1.0.20/examples/fxload.c
151
- - ext/libusb-1.0.20/examples/getopt/getopt.c
152
- - ext/libusb-1.0.20/examples/getopt/getopt.h
153
- - ext/libusb-1.0.20/examples/getopt/getopt1.c
154
- - ext/libusb-1.0.20/examples/hotplugtest.c
155
- - ext/libusb-1.0.20/examples/listdevs.c
156
- - ext/libusb-1.0.20/examples/sam3u_benchmark.c
157
- - ext/libusb-1.0.20/examples/xusb.c
158
- - ext/libusb-1.0.20/install-sh
159
- - ext/libusb-1.0.20/libusb-1.0.pc.in
160
- - ext/libusb-1.0.20/libusb/Makefile.am
161
- - ext/libusb-1.0.20/libusb/Makefile.in
162
- - ext/libusb-1.0.20/libusb/core.c
163
- - ext/libusb-1.0.20/libusb/descriptor.c
164
- - ext/libusb-1.0.20/libusb/hotplug.c
165
- - ext/libusb-1.0.20/libusb/hotplug.h
166
- - ext/libusb-1.0.20/libusb/io.c
167
- - ext/libusb-1.0.20/libusb/libusb-1.0.def
168
- - ext/libusb-1.0.20/libusb/libusb-1.0.rc
169
- - ext/libusb-1.0.20/libusb/libusb.h
170
- - ext/libusb-1.0.20/libusb/libusbi.h
171
- - ext/libusb-1.0.20/libusb/os/darwin_usb.c
172
- - ext/libusb-1.0.20/libusb/os/darwin_usb.h
173
- - ext/libusb-1.0.20/libusb/os/haiku/Makefile.am
174
- - ext/libusb-1.0.20/libusb/os/haiku/Makefile.in
175
- - ext/libusb-1.0.20/libusb/os/haiku/aclocal.m4
176
- - ext/libusb-1.0.20/libusb/os/haiku/compile
177
- - ext/libusb-1.0.20/libusb/os/haiku/config.guess
178
- - ext/libusb-1.0.20/libusb/os/haiku/config.sub
179
- - ext/libusb-1.0.20/libusb/os/haiku/configure
180
- - ext/libusb-1.0.20/libusb/os/haiku/configure.ac
181
- - ext/libusb-1.0.20/libusb/os/haiku/depcomp
182
- - ext/libusb-1.0.20/libusb/os/haiku/haiku_pollfs.cpp
183
- - ext/libusb-1.0.20/libusb/os/haiku/haiku_usb.h
184
- - ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_backend.cpp
185
- - ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.cpp
186
- - ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.h
187
- - ext/libusb-1.0.20/libusb/os/haiku/install-sh
188
- - ext/libusb-1.0.20/libusb/os/haiku/ltmain.sh
189
- - ext/libusb-1.0.20/libusb/os/haiku/m4/libtool.m4
190
- - ext/libusb-1.0.20/libusb/os/haiku/m4/ltoptions.m4
191
- - ext/libusb-1.0.20/libusb/os/haiku/m4/ltsugar.m4
192
- - ext/libusb-1.0.20/libusb/os/haiku/m4/ltversion.m4
193
- - ext/libusb-1.0.20/libusb/os/haiku/m4/lt~obsolete.m4
194
- - ext/libusb-1.0.20/libusb/os/haiku/missing
195
- - ext/libusb-1.0.20/libusb/os/linux_netlink.c
196
- - ext/libusb-1.0.20/libusb/os/linux_udev.c
197
- - ext/libusb-1.0.20/libusb/os/linux_usbfs.c
198
- - ext/libusb-1.0.20/libusb/os/linux_usbfs.h
199
- - ext/libusb-1.0.20/libusb/os/netbsd_usb.c
200
- - ext/libusb-1.0.20/libusb/os/openbsd_usb.c
201
- - ext/libusb-1.0.20/libusb/os/poll_posix.c
202
- - ext/libusb-1.0.20/libusb/os/poll_posix.h
203
- - ext/libusb-1.0.20/libusb/os/poll_windows.c
204
- - ext/libusb-1.0.20/libusb/os/poll_windows.h
205
- - ext/libusb-1.0.20/libusb/os/threads_posix.c
206
- - ext/libusb-1.0.20/libusb/os/threads_posix.h
207
- - ext/libusb-1.0.20/libusb/os/threads_windows.c
208
- - ext/libusb-1.0.20/libusb/os/threads_windows.h
209
- - ext/libusb-1.0.20/libusb/os/wince_usb.c
210
- - ext/libusb-1.0.20/libusb/os/wince_usb.h
211
- - ext/libusb-1.0.20/libusb/os/windows_common.h
212
- - ext/libusb-1.0.20/libusb/os/windows_usb.c
213
- - ext/libusb-1.0.20/libusb/os/windows_usb.h
214
- - ext/libusb-1.0.20/libusb/strerror.c
215
- - ext/libusb-1.0.20/libusb/sync.c
216
- - ext/libusb-1.0.20/libusb/version.h
217
- - ext/libusb-1.0.20/libusb/version_nano.h
218
- - ext/libusb-1.0.20/ltmain.sh
219
- - ext/libusb-1.0.20/m4/libtool.m4
220
- - ext/libusb-1.0.20/m4/ltoptions.m4
221
- - ext/libusb-1.0.20/m4/ltsugar.m4
222
- - ext/libusb-1.0.20/m4/ltversion.m4
223
- - ext/libusb-1.0.20/m4/lt~obsolete.m4
224
- - ext/libusb-1.0.20/missing
225
- - ext/libusb-1.0.20/tests/Makefile.am
226
- - ext/libusb-1.0.20/tests/Makefile.in
227
- - ext/libusb-1.0.20/tests/libusb_testlib.h
228
- - ext/libusb-1.0.20/tests/stress.c
229
- - ext/libusb-1.0.20/tests/testlib.c
102
+ - ext/libusb_recipe.rb
230
103
  - lib/libusb.rb
231
104
  - lib/libusb/bos.rb
232
105
  - lib/libusb/call.rb
@@ -234,6 +107,7 @@ files:
234
107
  - lib/libusb/configuration.rb
235
108
  - lib/libusb/constants.rb
236
109
  - lib/libusb/context.rb
110
+ - lib/libusb/dependencies.rb
237
111
  - lib/libusb/dev_handle.rb
238
112
  - lib/libusb/device.rb
239
113
  - lib/libusb/endpoint.rb
@@ -246,6 +120,7 @@ files:
246
120
  - lib/libusb/version_gem.rb
247
121
  - lib/libusb/version_struct.rb
248
122
  - libusb.gemspec
123
+ - ports/archives/libusb-1.0.21.tar.bz2
249
124
  - test/test_libusb_bos.rb
250
125
  - test/test_libusb_bulk_stream_transfer.rb
251
126
  - test/test_libusb_capability.rb
@@ -261,9 +136,10 @@ files:
261
136
  - test/test_libusb_structs.rb
262
137
  - test/test_libusb_threads.rb
263
138
  - test/test_libusb_version.rb
139
+ - wireshark-usb-sniffer.png
264
140
  homepage: http://github.com/larskanis/libusb
265
141
  licenses:
266
- - LGPL-3
142
+ - LGPL-3.0
267
143
  metadata: {}
268
144
  post_install_message:
269
145
  rdoc_options:
@@ -276,15 +152,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
276
152
  requirements:
277
153
  - - ">="
278
154
  - !ruby/object:Gem::Version
279
- version: '0'
155
+ version: 1.9.3
280
156
  required_rubygems_version: !ruby/object:Gem::Requirement
281
157
  requirements:
282
158
  - - ">="
283
159
  - !ruby/object:Gem::Version
284
160
  version: '0'
285
161
  requirements: []
286
- rubyforge_project: libusb
287
- rubygems_version: 2.4.5
162
+ rubyforge_project:
163
+ rubygems_version: 2.5.2
288
164
  signing_key:
289
165
  specification_version: 4
290
166
  summary: Access USB devices from Ruby via libusb-1.0