libusb 0.1.0-x86-mingw32 → 0.1.1-x86-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.
- data/History.txt +5 -1
- data/README.rdoc +3 -3
- data/Rakefile +1 -1
- data/lib/libusb-1.0.dll +0 -0
- data/lib/libusb.rb +4 -6
- data/test/test_libusb_keyboard.rb +50 -0
- metadata +14 -12
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
= Access USB devices from Ruby via libusb-1.0.
|
4
4
|
|
5
5
|
* http://github.com/larskanis/libusb
|
6
|
-
* API documentation: http://
|
6
|
+
* API documentation: http://rubydoc.info/gems/libusb/frames
|
7
7
|
|
8
8
|
== DESCRIPTION:
|
9
9
|
|
@@ -84,7 +84,7 @@ with it's INI-file and use it for driver installation on other 32 or 64 bit Wind
|
|
84
84
|
systems.
|
85
85
|
|
86
86
|
|
87
|
-
== Cross compiling for
|
87
|
+
== Cross compiling for Windows
|
88
88
|
|
89
89
|
Libusb-gem can be build on a linux or darwin host for the win32 platform,
|
90
90
|
using the mingw cross compiler collection. Libusb is downloaded from source
|
@@ -102,7 +102,7 @@ Download and cross compile libusb for win32:
|
|
102
102
|
|
103
103
|
rake cross gem
|
104
104
|
|
105
|
-
If everything works, there should be libusb-VERSION-x86-
|
105
|
+
If everything works, there should be libusb-VERSION-x86-mingw32.gem in the pkg
|
106
106
|
directory.
|
107
107
|
|
108
108
|
== Todo
|
data/Rakefile
CHANGED
@@ -25,7 +25,7 @@ STATIC_BUILDDIR = COMPILE_HOME + 'builds'
|
|
25
25
|
# LIBUSB_TARBALL = STATIC_SOURCESDIR + "libusb-#{LIBUSB_VERSION}.tar.bz2"
|
26
26
|
|
27
27
|
# Fetch tarball from Pete Batard's git repo
|
28
|
-
LIBUSB_VERSION = ENV['LIBUSB_VERSION'] || '
|
28
|
+
LIBUSB_VERSION = ENV['LIBUSB_VERSION'] || '4cc72d0'
|
29
29
|
LIBUSB_SOURCE_URI = URI( "http://git.libusb.org/?p=libusb-pbatard.git;a=snapshot;h=#{LIBUSB_VERSION};sf=tbz2" )
|
30
30
|
LIBUSB_TARBALL = STATIC_SOURCESDIR + "libusb-pbatard-#{LIBUSB_VERSION}.tar.bz2"
|
31
31
|
|
data/lib/libusb-1.0.dll
CHANGED
Binary file
|
data/lib/libusb.rb
CHANGED
@@ -18,7 +18,7 @@ require 'ffi'
|
|
18
18
|
|
19
19
|
|
20
20
|
module LIBUSB
|
21
|
-
VERSION = "0.1.
|
21
|
+
VERSION = "0.1.1"
|
22
22
|
|
23
23
|
module Call
|
24
24
|
extend FFI::Library
|
@@ -186,7 +186,7 @@ module LIBUSB
|
|
186
186
|
attach_function 'libusb_cancel_transfer', [:pointer], :int
|
187
187
|
attach_function 'libusb_free_transfer', [:pointer], :void
|
188
188
|
|
189
|
-
attach_function 'libusb_handle_events', [:libusb_context], :int
|
189
|
+
attach_function 'libusb_handle_events', [:libusb_context], :int
|
190
190
|
|
191
191
|
|
192
192
|
callback :libusb_transfer_cb_fn, [:pointer], :void
|
@@ -959,10 +959,8 @@ module LIBUSB
|
|
959
959
|
|
960
960
|
def initialize context, pDev
|
961
961
|
@context = context
|
962
|
-
|
963
|
-
|
964
|
-
Call.libusb_unref_device(self)
|
965
|
-
end
|
962
|
+
def pDev.unref_device(id)
|
963
|
+
Call.libusb_unref_device(self)
|
966
964
|
end
|
967
965
|
ObjectSpace.define_finalizer(self, pDev.method(:unref_device))
|
968
966
|
Call.libusb_ref_device(pDev)
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# This test requires a connected, but not mounted mass storage device with
|
2
|
+
# read/write access allowed. Based on the following specifications:
|
3
|
+
# http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf
|
4
|
+
# http://en.wikipedia.org/wiki/SCSI_command
|
5
|
+
#
|
6
|
+
|
7
|
+
require "test/unit"
|
8
|
+
require "libusb"
|
9
|
+
|
10
|
+
class TestLibusbKeyboard < Test::Unit::TestCase
|
11
|
+
include LIBUSB
|
12
|
+
|
13
|
+
attr_accessor :usb
|
14
|
+
attr_accessor :device
|
15
|
+
attr_accessor :dev
|
16
|
+
attr_accessor :endpoint_in
|
17
|
+
attr_accessor :endpoint_out
|
18
|
+
|
19
|
+
def setup
|
20
|
+
@usb = Context.new
|
21
|
+
@usb.debug = 3
|
22
|
+
|
23
|
+
@device = usb.devices( :bDeviceClass=>CLASS_HID, :bDeviceProtocol=>1 ).first
|
24
|
+
abort "no keyboard device found" unless @device
|
25
|
+
|
26
|
+
@endpoint_in = @device.endpoints.find{|ep| ep.bEndpointAddress&ENDPOINT_IN != 0 }.bEndpointAddress
|
27
|
+
@endpoint_out = @device.endpoints.find{|ep| ep.bEndpointAddress&ENDPOINT_IN == 0 }.bEndpointAddress
|
28
|
+
|
29
|
+
@dev = @device.open
|
30
|
+
|
31
|
+
if RUBY_PLATFORM=~/linux/i && dev.kernel_driver_active?(0)
|
32
|
+
dev.detach_kernel_driver(0)
|
33
|
+
end
|
34
|
+
dev.claim_interface(0)
|
35
|
+
|
36
|
+
# clear any pending data
|
37
|
+
dev.clear_halt(endpoint_in)
|
38
|
+
end
|
39
|
+
|
40
|
+
def teardown
|
41
|
+
dev.release_interface(0) if dev
|
42
|
+
dev.close if dev
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_read
|
46
|
+
data_length = 8
|
47
|
+
recv = dev.interrupt_transfer(:endpoint=>endpoint_in, :dataIn=>data_length)
|
48
|
+
p recv
|
49
|
+
end
|
50
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libusb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: x86-mingw32
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-12-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
16
|
-
requirement: &
|
16
|
+
requirement: &20041800 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20041800
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake-compiler
|
27
|
-
requirement: &
|
27
|
+
requirement: &20040960 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.6'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20040960
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: hoe
|
38
|
-
requirement: &
|
38
|
+
requirement: &20040440 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '2.12'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20040440
|
47
47
|
description: LIBUSB is a Ruby binding that gives Ruby programmers access to all functionality
|
48
48
|
of libusb, version 1.0
|
49
49
|
email:
|
@@ -70,6 +70,7 @@ files:
|
|
70
70
|
- test/test_libusb_gc.rb
|
71
71
|
- test/test_libusb_iso_transfer.rb
|
72
72
|
- test/test_libusb_mass_storage.rb
|
73
|
+
- test/test_libusb_keyboard.rb
|
73
74
|
- lib/libusb-1.0.dll
|
74
75
|
homepage: http://github.com/larskanis/libusb
|
75
76
|
licenses: []
|
@@ -94,14 +95,15 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
95
|
version: '0'
|
95
96
|
requirements: []
|
96
97
|
rubyforge_project: libusb
|
97
|
-
rubygems_version: 1.8.
|
98
|
+
rubygems_version: 1.8.10
|
98
99
|
signing_key:
|
99
100
|
specification_version: 3
|
100
101
|
summary: Access USB devices from Ruby via libusb-1.0
|
101
102
|
test_files:
|
102
|
-
- test/
|
103
|
+
- test/test_libusb_compat_mass_storage.rb
|
104
|
+
- test/test_libusb_gc.rb
|
103
105
|
- test/test_libusb_iso_transfer.rb
|
104
106
|
- test/test_libusb_descriptors.rb
|
107
|
+
- test/test_libusb_compat.rb
|
108
|
+
- test/test_libusb_keyboard.rb
|
105
109
|
- test/test_libusb_mass_storage.rb
|
106
|
-
- test/test_libusb_compat_mass_storage.rb
|
107
|
-
- test/test_libusb_gc.rb
|