libusb 0.6.3-x64-mingw32 → 0.7.0-x64-mingw32
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
- 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/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 +9 -6
- 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-1.0.dll +0 -0
- data/lib/libusb.rb +106 -18
- data/libusb.gemspec +2 -4
- 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
- metadata +11 -51
- data/appveyor.yml +0 -37
data/test/test_libusb_gc.rb
CHANGED
@@ -34,4 +34,19 @@ class TestLibusbGc < Minitest::Test
|
|
34
34
|
GC.start
|
35
35
|
assert_equal ps, ep.wMaxPacketSize, "GC should not free EndpointDescriptor"
|
36
36
|
end
|
37
|
+
|
38
|
+
def test_log_cb
|
39
|
+
LIBUSB.set_options OPTION_LOG_CB: proc{}, OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_DEBUG
|
40
|
+
|
41
|
+
c = LIBUSB::Context.new OPTION_LOG_CB: proc{}, OPTION_NO_DEVICE_DISCOVERY: nil
|
42
|
+
GC.start
|
43
|
+
c.devices
|
44
|
+
c.set_log_cb(LIBUSB::LOG_CB_CONTEXT){}
|
45
|
+
c.devices
|
46
|
+
GC.start
|
47
|
+
c.devices
|
48
|
+
|
49
|
+
ensure
|
50
|
+
LIBUSB.set_options OPTION_LOG_CB: [nil], OPTION_LOG_LEVEL: LIBUSB::LOG_LEVEL_NONE
|
51
|
+
end
|
37
52
|
end
|
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
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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: x64-mingw32
|
6
6
|
authors:
|
7
7
|
- Lars Kanis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -24,48 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake-compiler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake-compiler-dock
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0.2'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0.2'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: bundler
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '1.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '1.0'
|
69
27
|
description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
|
70
28
|
USB devices
|
71
29
|
email:
|
@@ -74,6 +32,8 @@ executables: []
|
|
74
32
|
extensions: []
|
75
33
|
extra_rdoc_files: []
|
76
34
|
files:
|
35
|
+
- ".appveyor.yml"
|
36
|
+
- ".github/workflows/ci.yml"
|
77
37
|
- ".gitignore"
|
78
38
|
- ".travis.yml"
|
79
39
|
- ".yardopts"
|
@@ -82,7 +42,6 @@ files:
|
|
82
42
|
- History.md
|
83
43
|
- README.md
|
84
44
|
- Rakefile
|
85
|
-
- appveyor.yml
|
86
45
|
- lib/libusb-1.0.dll
|
87
46
|
- lib/libusb.rb
|
88
47
|
- lib/libusb/bos.rb
|
@@ -91,6 +50,7 @@ files:
|
|
91
50
|
- lib/libusb/configuration.rb
|
92
51
|
- lib/libusb/constants.rb
|
93
52
|
- lib/libusb/context.rb
|
53
|
+
- lib/libusb/context_reference.rb
|
94
54
|
- lib/libusb/dependencies.rb
|
95
55
|
- lib/libusb/dev_handle.rb
|
96
56
|
- lib/libusb/device.rb
|
@@ -106,11 +66,12 @@ files:
|
|
106
66
|
- lib/libusb/version_gem.rb
|
107
67
|
- lib/libusb/version_struct.rb
|
108
68
|
- libusb.gemspec
|
69
|
+
- test/test_libusb.rb
|
109
70
|
- test/test_libusb_bos.rb
|
110
71
|
- test/test_libusb_bulk_stream_transfer.rb
|
111
|
-
- test/test_libusb_capability.rb
|
112
72
|
- test/test_libusb_compat.rb
|
113
73
|
- test/test_libusb_compat_mass_storage.rb
|
74
|
+
- test/test_libusb_context.rb
|
114
75
|
- test/test_libusb_descriptors.rb
|
115
76
|
- test/test_libusb_event_machine.rb
|
116
77
|
- test/test_libusb_gc.rb
|
@@ -120,12 +81,12 @@ files:
|
|
120
81
|
- test/test_libusb_mass_storage2.rb
|
121
82
|
- test/test_libusb_structs.rb
|
122
83
|
- test/test_libusb_threads.rb
|
123
|
-
- test/test_libusb_version.rb
|
124
84
|
- wireshark-usb-sniffer.png
|
125
85
|
homepage: http://github.com/larskanis/libusb
|
126
86
|
licenses:
|
127
87
|
- LGPL-3.0
|
128
|
-
metadata:
|
88
|
+
metadata:
|
89
|
+
yard.run: yri
|
129
90
|
post_install_message:
|
130
91
|
rdoc_options:
|
131
92
|
- "--main"
|
@@ -137,15 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
98
|
requirements:
|
138
99
|
- - ">="
|
139
100
|
- !ruby/object:Gem::Version
|
140
|
-
version:
|
101
|
+
version: 2.5.0
|
141
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
103
|
requirements:
|
143
104
|
- - ">="
|
144
105
|
- !ruby/object:Gem::Version
|
145
106
|
version: '0'
|
146
107
|
requirements: []
|
147
|
-
|
148
|
-
rubygems_version: 2.6.12
|
108
|
+
rubygems_version: 3.3.26
|
149
109
|
signing_key:
|
150
110
|
specification_version: 4
|
151
111
|
summary: Access USB devices from Ruby via libusb-1.0
|
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"
|