device_input 0.3.1.1 → 1.0.0.1
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/README.md +5 -11
- data/VERSION +1 -1
- data/lib/device_input.rb +2 -7
- metadata +13 -15
- data/lib/device_input/compat.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 01a4b48883bd7c07006de058e16d3ff8ff1d9792b8905eb8abae64a82e577e5a
|
4
|
+
data.tar.gz: c61bb60b4f227a3718cf90c4704df38574a7a52797cd644549a15a0076b52175
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6190ef1adafadaeadd24532e92ca1fa72bbdd72d00583165952b946538f55940cd211cf283171c7e467c705958038afba41c0c43224d0704e527d6ace4d8e89d
|
7
|
+
data.tar.gz: 9a3dcfacafc3487358f88f3796a477410225a4ebfa3e41df06b2afc3da48717e7f053b8ab51ec607f5644ca537b68a371179bade3588b2b3df441a780c7e7e30
|
data/README.md
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
[](https://github.com/rickhull/device_input/actions/workflows/ci.yaml)
|
2
2
|
[](http://badge.fury.io/rb/device_input)
|
3
|
-
[](https://gemnasium.com/rickhull/device_input)
|
4
|
-
[](https://hakiri.io/github/rickhull/device_input/master)
|
5
3
|
[](https://codeclimate.com/github/rickhull/device_input)
|
6
4
|
|
7
5
|
# Device Input
|
@@ -42,8 +40,7 @@ long time, it was pretty simple: events are 16 bytes:
|
|
42
40
|
|
43
41
|
However, this is only true for 32-bit platforms. On 64-bit platforms, event
|
44
42
|
timestamps became 16 bytes, increasing the size of events from 16 to 24 bytes.
|
45
|
-
This is because a timestamp is defined (ultimately) as two `long`s,
|
46
|
-
everyone knows, two longs don't make a light. No, wait -- it's that `long`s
|
43
|
+
This is because a timestamp is defined (ultimately) as two `long`s, which
|
47
44
|
are bigger on 64-bit platforms. It's easy to remember:
|
48
45
|
|
49
46
|
* 32-bit platform: 32-bit `long` (4 bytes)
|
@@ -69,7 +66,7 @@ executable code to assist in examining kernel input events.
|
|
69
66
|
|
70
67
|
Install the gem:
|
71
68
|
```shell
|
72
|
-
$ gem install device_input
|
69
|
+
$ gem install device_input
|
73
70
|
```
|
74
71
|
|
75
72
|
Or, if using [Bundler](http://bundler.io/), add to your `Gemfile`:
|
@@ -167,7 +164,7 @@ An event has:
|
|
167
164
|
* `#value`: Fixnum (signed) from `#data`
|
168
165
|
|
169
166
|
You will probably want to write your own read loop for your own project.
|
170
|
-
[`DeviceInput.read_loop`](lib/device_input.rb#
|
167
|
+
[`DeviceInput.read_loop`](lib/device_input.rb#L98) is very simple and can
|
171
168
|
easily be rewritten outside of this project's namespace and adapted for your
|
172
169
|
needs.
|
173
170
|
|
@@ -178,10 +175,7 @@ needs.
|
|
178
175
|
* https://www.kernel.org/doc/Documentation/input/input.txt
|
179
176
|
* https://www.kernel.org/doc/Documentation/input/event-codes.txt
|
180
177
|
|
181
|
-
|
182
|
-
about these structs towards the end of this document.
|
183
|
-
|
184
|
-
## Kernel structs
|
178
|
+
### Kernel structs
|
185
179
|
|
186
180
|
from https://www.kernel.org/doc/Documentation/input/input.txt
|
187
181
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
1.0.0.1
|
data/lib/device_input.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'device_input/labels'
|
2
|
-
require '
|
2
|
+
require 'rbconfig/sizeof'
|
3
3
|
|
4
4
|
module DeviceInput
|
5
5
|
class Event
|
@@ -80,19 +80,14 @@ module DeviceInput
|
|
80
80
|
end
|
81
81
|
|
82
82
|
# display fields in hex
|
83
|
-
def
|
84
|
-
# :nocov:
|
85
|
-
require 'rbconfig/sizeof' # new in ruby 2.3
|
83
|
+
def hex
|
86
84
|
DEFINITION.inject('') { |memo, (field, type)|
|
87
85
|
int = @data.send(field)
|
88
86
|
width = RbConfig::SIZEOF.fetch(type)
|
89
87
|
# memo + ("%#0.#{width * 2}x" % int) + " "
|
90
88
|
memo + ("%0.#{width * 2}x" % int) + " "
|
91
89
|
}
|
92
|
-
# :nocov:
|
93
90
|
end
|
94
|
-
|
95
|
-
alias_method :hex, RUBY23 ? :ruby23_hex : :to_s
|
96
91
|
end
|
97
92
|
|
98
93
|
def self.read_loop(io)
|
metadata
CHANGED
@@ -1,47 +1,47 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: device_input
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rick Hull
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: buildar
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: slop
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '4'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '4'
|
41
41
|
description: |
|
42
42
|
Pure ruby to read input events from the Linux kernel input device subsystem.
|
43
43
|
No dependencies. Ruby 2+ required
|
44
|
-
email:
|
44
|
+
email:
|
45
45
|
executables:
|
46
46
|
- evdump
|
47
47
|
extensions: []
|
@@ -51,30 +51,28 @@ files:
|
|
51
51
|
- VERSION
|
52
52
|
- bin/evdump
|
53
53
|
- lib/device_input.rb
|
54
|
-
- lib/device_input/compat.rb
|
55
54
|
- lib/device_input/labels.rb
|
56
55
|
homepage: https://github.com/rickhull/device_input
|
57
56
|
licenses:
|
58
57
|
- GPL-3.0
|
59
58
|
metadata: {}
|
60
|
-
post_install_message:
|
59
|
+
post_install_message:
|
61
60
|
rdoc_options: []
|
62
61
|
require_paths:
|
63
62
|
- lib
|
64
63
|
required_ruby_version: !ruby/object:Gem::Requirement
|
65
64
|
requirements:
|
66
|
-
- - "
|
65
|
+
- - ">="
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: '2'
|
67
|
+
version: '2.3'
|
69
68
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
69
|
requirements:
|
71
70
|
- - ">="
|
72
71
|
- !ruby/object:Gem::Version
|
73
72
|
version: '0'
|
74
73
|
requirements: []
|
75
|
-
|
76
|
-
|
77
|
-
signing_key:
|
74
|
+
rubygems_version: 3.2.26
|
75
|
+
signing_key:
|
78
76
|
specification_version: 4
|
79
77
|
summary: Read input events from e.g. /dev/input/event0
|
80
78
|
test_files: []
|
data/lib/device_input/compat.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'device_input/labels'
|
2
|
-
|
3
|
-
# :nocov:
|
4
|
-
module DeviceInput
|
5
|
-
if RbConfig::CONFIG.fetch("MAJOR").to_i < 2
|
6
|
-
raise "unsupported ruby version #{RbConfig::CONFIG['RUBY_VERSION_NAME']}"
|
7
|
-
else
|
8
|
-
RUBY23 = RbConfig::CONFIG.fetch("MINOR").to_i >= 3
|
9
|
-
end
|
10
|
-
|
11
|
-
unless RUBY23
|
12
|
-
class Event
|
13
|
-
def CODES.dig(*args)
|
14
|
-
memo = self
|
15
|
-
args.each { |a|
|
16
|
-
memo = memo[a] rescue nil
|
17
|
-
break unless memo
|
18
|
-
}
|
19
|
-
memo
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
# :nocov:
|