libusb 0.6.3 → 0.7.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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +4 -0
- data/.appveyor.yml +33 -0
- data/.github/workflows/ci.yml +185 -0
- data/.gitignore +1 -0
- data/.travis.yml +17 -10
- data/Gemfile +9 -1
- data/History.md +57 -0
- data/README.md +30 -5
- data/Rakefile +41 -12
- data/ext/extconf.rb +2 -1
- data/lib/libusb/bos.rb +85 -29
- data/lib/libusb/call.rb +192 -16
- data/lib/libusb/configuration.rb +3 -4
- data/lib/libusb/constants.rb +26 -16
- data/lib/libusb/context.rb +195 -45
- data/{test/test_libusb_capability.rb → lib/libusb/context_reference.rb} +20 -5
- data/lib/libusb/dependencies.rb +2 -2
- data/lib/libusb/dev_handle.rb +34 -24
- data/lib/libusb/device.rb +50 -8
- data/lib/libusb/endpoint.rb +3 -2
- data/lib/libusb/eventmachine.rb +8 -4
- data/lib/libusb/gem_helper.rb +8 -5
- data/lib/libusb/libusb_recipe.rb +2 -3
- data/lib/libusb/ss_companion.rb +9 -6
- data/lib/libusb/transfer.rb +48 -7
- data/lib/libusb/version_gem.rb +1 -1
- data/lib/libusb.rb +106 -18
- data/libusb.gemspec +2 -4
- data/ports/archives/libusb-1.0.27.tar.bz2 +0 -0
- data/test/{test_libusb_version.rb → test_libusb.rb} +12 -10
- data/test/test_libusb_bos.rb +22 -0
- data/test/test_libusb_bulk_stream_transfer.rb +23 -12
- data/test/test_libusb_context.rb +88 -0
- data/test/test_libusb_descriptors.rb +44 -11
- data/test/test_libusb_gc.rb +15 -0
- data/test/test_libusb_hotplug.rb +3 -1
- data/test/test_libusb_iso_transfer.rb +6 -0
- data/test/test_libusb_mass_storage.rb +6 -6
- data/test/test_libusb_structs.rb +32 -3
- data.tar.gz.sig +0 -0
- metadata +38 -56
- metadata.gz.sig +3 -0
- data/appveyor.yml +0 -37
- data/ports/archives/libusb-1.0.21.tar.bz2 +0 -0
data/test/test_libusb_hotplug.rb
CHANGED
|
@@ -47,4 +47,10 @@ class TestLibusbIsoTransfer < Minitest::Test
|
|
|
47
47
|
tr.submit!
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
|
+
|
|
51
|
+
def test_max_alt_packet_size
|
|
52
|
+
d = Context.new.devices[0]
|
|
53
|
+
size = d.max_alt_packet_size d.interfaces[0], d.settings[0], d.endpoints[0]
|
|
54
|
+
assert_operator 0, :<=, size
|
|
55
|
+
end
|
|
50
56
|
end
|
|
@@ -61,7 +61,7 @@ class TestLibusbMassStorage < Minitest::Test
|
|
|
61
61
|
dev.close if dev
|
|
62
62
|
end
|
|
63
63
|
|
|
64
|
-
def do_transfer(method, args)
|
|
64
|
+
def do_transfer(method, **args)
|
|
65
65
|
if @asynchron
|
|
66
66
|
stop = false
|
|
67
67
|
transfer = dev.send(method, args) do |tr|
|
|
@@ -78,14 +78,14 @@ class TestLibusbMassStorage < Minitest::Test
|
|
|
78
78
|
end
|
|
79
79
|
transfer.result
|
|
80
80
|
else
|
|
81
|
-
dev.send(method, args)
|
|
81
|
+
dev.send(method, **args)
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
|
-
def control_transfer(args)
|
|
85
|
-
do_transfer(:control_transfer, args)
|
|
84
|
+
def control_transfer(**args)
|
|
85
|
+
do_transfer(:control_transfer, **args)
|
|
86
86
|
end
|
|
87
|
-
def bulk_transfer(args)
|
|
88
|
-
do_transfer(:bulk_transfer, args)
|
|
87
|
+
def bulk_transfer(**args)
|
|
88
|
+
do_transfer(:bulk_transfer, **args)
|
|
89
89
|
end
|
|
90
90
|
|
|
91
91
|
def send_mass_storage_command(cdb, data_length, direction=ENDPOINT_IN)
|
data/test/test_libusb_structs.rb
CHANGED
|
@@ -43,16 +43,45 @@ class TestLibusbStructs < Minitest::Test
|
|
|
43
43
|
assert_equal 0, s[:completed]
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
def
|
|
46
|
+
def test_Transfer_buffer
|
|
47
47
|
t = LIBUSB::InterruptTransfer.new allow_device_memory: true
|
|
48
48
|
assert_equal :TRANSFER_COMPLETED, t.status
|
|
49
49
|
assert_equal true, t.allow_device_memory
|
|
50
|
-
|
|
50
|
+
assert_nil t.memory_type
|
|
51
51
|
|
|
52
52
|
t.alloc_buffer(10)
|
|
53
53
|
assert_equal :user_space, t.memory_type, "no device assigned -> should use memory from user space"
|
|
54
54
|
|
|
55
55
|
t.free_buffer
|
|
56
|
-
|
|
56
|
+
assert_nil t.memory_type
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_Transfer_new
|
|
60
|
+
assert_raises(NoMethodError){ LIBUSB::Transfer.new }
|
|
61
|
+
LIBUSB::BulkStreamTransfer.new
|
|
62
|
+
LIBUSB::BulkTransfer.new
|
|
63
|
+
LIBUSB::ControlTransfer.new
|
|
64
|
+
LIBUSB::InterruptTransfer.new
|
|
65
|
+
LIBUSB::IsochronousTransfer.new(0)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_ControlTransfer_attributes
|
|
69
|
+
t = LIBUSB::ControlTransfer.new
|
|
70
|
+
t.timeout = 123
|
|
71
|
+
assert_equal 123, t.timeout
|
|
72
|
+
t.allow_device_memory = true
|
|
73
|
+
assert_equal true, t.allow_device_memory
|
|
74
|
+
assert_nil t.dev_handle
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_ControlTransfer_new_args
|
|
78
|
+
t = LIBUSB::ControlTransfer.new allow_device_memory: false, timeout: 444
|
|
79
|
+
assert_equal false, t.allow_device_memory
|
|
80
|
+
assert_equal 444, t.timeout
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def test_Transfer_no_dev_handle
|
|
84
|
+
t = LIBUSB::ControlTransfer.new
|
|
85
|
+
assert_raises(ArgumentError){ t.submit_and_wait }
|
|
57
86
|
end
|
|
58
87
|
end
|
data.tar.gz.sig
ADDED
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,38 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libusb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lars Kanis
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
|
-
cert_chain:
|
|
11
|
-
|
|
9
|
+
cert_chain:
|
|
10
|
+
- |
|
|
11
|
+
-----BEGIN CERTIFICATE-----
|
|
12
|
+
MIIEBDCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
|
13
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yNDAyMjgxOTMxNDdaFw0yNTAy
|
|
14
|
+
MjcxOTMxNDdaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
|
15
|
+
PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
|
|
16
|
+
mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
|
|
17
|
+
eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
|
|
18
|
+
8nBMvR0mHo77kIkapHc26UzVq/G0nKLfDsIHXVylto3PjzOumjG6GhmFN4r3cP6e
|
|
19
|
+
SDfl1FSeRYVpt4kmQULz/zdSaOH3AjAq7PM2Z91iGwQvoUXMANH2v89OWjQO/NHe
|
|
20
|
+
JMNDFsmHK/6Ji4Kk48Z3TyscHQnipAID5GhS1oD21/WePdj7GhmbF5gBzkV5uepd
|
|
21
|
+
eJQPgWGwrQW/Z2oPjRuJrRofzWfrMWqbOahj9uth6WSxhNexUtbjk6P8emmXOJi5
|
|
22
|
+
chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
|
|
23
|
+
9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjOTA3MAkG
|
|
24
|
+
A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQ4h1tIyvdUWtMI739xMzTR
|
|
25
|
+
7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEArBmHSfnUyNWf3R1Fx0mMHloWGdcKn2D2
|
|
26
|
+
BsqTApXU2nADiyppIqRq4b9e7hw342uzadSLkoQcEFOxThLRhAcijoWfQVBcsbV/
|
|
27
|
+
ZsCY1qlUTIJuSWxaSyS4efUX+N4eMNyPM9oW/sphlWFo0DgI34Y9WB6HDzH+O71y
|
|
28
|
+
R7PARke3f4kYnRJf5yRQLPDrH9UYt9KlBQm6l7XMtr5EMnQt0EfcmZEi9H4t/vS2
|
|
29
|
+
haxvpFMdAKo4H46GBYNO96r6b74t++vgQSBTg/AFVwvRZwNSrPPcBfb4xxeEAhRR
|
|
30
|
+
x+LU7feIH7lZ//3buiyD03gLAEtHXai0Y+/VfuWIpwYJAl2BO/tU7FS/dtbJq9oc
|
|
31
|
+
dI36Yyzy+BrCM0WT4oCsagePNb97FaNhl4F6sM5JEPT0ZPxRx0i3G4TNNIYziVos
|
|
32
|
+
5wFER6XhvvLDFAMh/jMg+s7Wd5SbSHgHNSUaUGVtdWkVPOer6oF0aLdZUR3CETkn
|
|
33
|
+
5nWXZma/BUd3YgYA/Xumc6QQqIS4p7mr
|
|
34
|
+
-----END CERTIFICATE-----
|
|
35
|
+
date: 2024-04-18 00:00:00.000000000 Z
|
|
12
36
|
dependencies:
|
|
13
37
|
- !ruby/object:Gem::Dependency
|
|
14
38
|
name: ffi
|
|
@@ -38,48 +62,6 @@ dependencies:
|
|
|
38
62
|
- - "~>"
|
|
39
63
|
- !ruby/object:Gem::Version
|
|
40
64
|
version: '2.1'
|
|
41
|
-
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: rake-compiler
|
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
|
44
|
-
requirements:
|
|
45
|
-
- - "~>"
|
|
46
|
-
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.0'
|
|
48
|
-
type: :development
|
|
49
|
-
prerelease: false
|
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
-
requirements:
|
|
52
|
-
- - "~>"
|
|
53
|
-
- !ruby/object:Gem::Version
|
|
54
|
-
version: '1.0'
|
|
55
|
-
- !ruby/object:Gem::Dependency
|
|
56
|
-
name: rake-compiler-dock
|
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
|
58
|
-
requirements:
|
|
59
|
-
- - "~>"
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: '0.2'
|
|
62
|
-
type: :development
|
|
63
|
-
prerelease: false
|
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
-
requirements:
|
|
66
|
-
- - "~>"
|
|
67
|
-
- !ruby/object:Gem::Version
|
|
68
|
-
version: '0.2'
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: bundler
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.0'
|
|
83
65
|
description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
|
|
84
66
|
USB devices
|
|
85
67
|
email:
|
|
@@ -89,6 +71,8 @@ extensions:
|
|
|
89
71
|
- ext/extconf.rb
|
|
90
72
|
extra_rdoc_files: []
|
|
91
73
|
files:
|
|
74
|
+
- ".appveyor.yml"
|
|
75
|
+
- ".github/workflows/ci.yml"
|
|
92
76
|
- ".gitignore"
|
|
93
77
|
- ".travis.yml"
|
|
94
78
|
- ".yardopts"
|
|
@@ -97,7 +81,6 @@ files:
|
|
|
97
81
|
- History.md
|
|
98
82
|
- README.md
|
|
99
83
|
- Rakefile
|
|
100
|
-
- appveyor.yml
|
|
101
84
|
- ext/extconf.rb
|
|
102
85
|
- lib/libusb.rb
|
|
103
86
|
- lib/libusb/bos.rb
|
|
@@ -106,6 +89,7 @@ files:
|
|
|
106
89
|
- lib/libusb/configuration.rb
|
|
107
90
|
- lib/libusb/constants.rb
|
|
108
91
|
- lib/libusb/context.rb
|
|
92
|
+
- lib/libusb/context_reference.rb
|
|
109
93
|
- lib/libusb/dependencies.rb
|
|
110
94
|
- lib/libusb/dev_handle.rb
|
|
111
95
|
- lib/libusb/device.rb
|
|
@@ -121,12 +105,13 @@ files:
|
|
|
121
105
|
- lib/libusb/version_gem.rb
|
|
122
106
|
- lib/libusb/version_struct.rb
|
|
123
107
|
- libusb.gemspec
|
|
124
|
-
- ports/archives/libusb-1.0.
|
|
108
|
+
- ports/archives/libusb-1.0.27.tar.bz2
|
|
109
|
+
- test/test_libusb.rb
|
|
125
110
|
- test/test_libusb_bos.rb
|
|
126
111
|
- test/test_libusb_bulk_stream_transfer.rb
|
|
127
|
-
- test/test_libusb_capability.rb
|
|
128
112
|
- test/test_libusb_compat.rb
|
|
129
113
|
- test/test_libusb_compat_mass_storage.rb
|
|
114
|
+
- test/test_libusb_context.rb
|
|
130
115
|
- test/test_libusb_descriptors.rb
|
|
131
116
|
- test/test_libusb_event_machine.rb
|
|
132
117
|
- test/test_libusb_gc.rb
|
|
@@ -136,13 +121,12 @@ files:
|
|
|
136
121
|
- test/test_libusb_mass_storage2.rb
|
|
137
122
|
- test/test_libusb_structs.rb
|
|
138
123
|
- test/test_libusb_threads.rb
|
|
139
|
-
- test/test_libusb_version.rb
|
|
140
124
|
- wireshark-usb-sniffer.png
|
|
141
125
|
homepage: http://github.com/larskanis/libusb
|
|
142
126
|
licenses:
|
|
143
127
|
- LGPL-3.0
|
|
144
|
-
metadata:
|
|
145
|
-
|
|
128
|
+
metadata:
|
|
129
|
+
yard.run: yri
|
|
146
130
|
rdoc_options:
|
|
147
131
|
- "--main"
|
|
148
132
|
- README.md
|
|
@@ -153,16 +137,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
153
137
|
requirements:
|
|
154
138
|
- - ">="
|
|
155
139
|
- !ruby/object:Gem::Version
|
|
156
|
-
version:
|
|
140
|
+
version: 2.5.0
|
|
157
141
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
142
|
requirements:
|
|
159
143
|
- - ">="
|
|
160
144
|
- !ruby/object:Gem::Version
|
|
161
145
|
version: '0'
|
|
162
146
|
requirements: []
|
|
163
|
-
|
|
164
|
-
rubygems_version: 2.6.12
|
|
165
|
-
signing_key:
|
|
147
|
+
rubygems_version: 3.6.0.dev
|
|
166
148
|
specification_version: 4
|
|
167
149
|
summary: Access USB devices from Ruby via libusb-1.0
|
|
168
150
|
test_files: []
|
metadata.gz.sig
ADDED
data/appveyor.yml
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
init:
|
|
2
|
-
- SET PATH=C:/Ruby%ruby_version%/bin;%PATH%
|
|
3
|
-
- SET RAKEOPT=-rdevkit
|
|
4
|
-
install:
|
|
5
|
-
- ruby --version
|
|
6
|
-
- gem --version
|
|
7
|
-
- ps: |
|
|
8
|
-
if ($env:BROKEN_SSL -eq "true") {
|
|
9
|
-
$(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt', "$env:TMP/ca-bundle.crt")
|
|
10
|
-
$env:SSL_CERT_FILE = "$env:TMP/ca-bundle.crt"
|
|
11
|
-
Write-Host "Using SSL CA list $env:SSL_CERT_FILE" -foreground Green
|
|
12
|
-
}
|
|
13
|
-
- bundle install
|
|
14
|
-
build_script:
|
|
15
|
-
- bundle exec rake compile
|
|
16
|
-
test_script:
|
|
17
|
-
- bundle exec rake travis
|
|
18
|
-
environment:
|
|
19
|
-
matrix:
|
|
20
|
-
- ruby_version: "24-x64"
|
|
21
|
-
- ruby_version: "200"
|
|
22
|
-
BROKEN_SSL: true
|
|
23
|
-
- ruby_version: "200-x64"
|
|
24
|
-
BROKEN_SSL: true
|
|
25
|
-
- ruby_version: "21"
|
|
26
|
-
BROKEN_SSL: true
|
|
27
|
-
- ruby_version: "21-x64"
|
|
28
|
-
BROKEN_SSL: true
|
|
29
|
-
- ruby_version: "22"
|
|
30
|
-
BROKEN_SSL: true
|
|
31
|
-
- ruby_version: "22-x64"
|
|
32
|
-
BROKEN_SSL: true
|
|
33
|
-
- ruby_version: "23"
|
|
34
|
-
BROKEN_SSL: true
|
|
35
|
-
- ruby_version: "23-x64"
|
|
36
|
-
BROKEN_SSL: true
|
|
37
|
-
- ruby_version: "24"
|
|
Binary file
|