libusb 0.5.1 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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