xinput_wrapperplus 0.3.0 → 0.4.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 640a5a0dae05e2b8db61c45bebc25fdd26423bb4864c4a356b6b409261d276c2
4
- data.tar.gz: dc3807fb81d3c40574e0323ab07648ebadfe55c0e21100119a0493bfa90387af
3
+ metadata.gz: 17f7c9962bda5c450ccf2255914fcc3d578f4bfd1881c4297b728764afcaeb0d
4
+ data.tar.gz: f9e67bdc4325d252e5dacb74b75c2c0ebae60252d52c2900e577c2d0cadc0e23
5
5
  SHA512:
6
- metadata.gz: 28ede1920c33f2008b5fe447e8663d20ff66f2df2d0d411c677fc5d863ce2a3d104730a86824d74c48aa32642b277564f866deade0dafd5f83fe7f9461d86387
7
- data.tar.gz: 58d62973196dc4535b8f977cbdd66dde2a240b8c87f367ed9c6149e959c34d9ea0ef7066e46f717dc36cc18406872913b4e907377351c281a16ce4f8cf38d165
6
+ metadata.gz: 5352fc684255d867db2432619244b302e6a34a98acc536402a4da073b3ee660667caf33c307fdfffc860dd886f2cca6f6168c4d78978d541c5689e427f4b37e4
7
+ data.tar.gz: 170ed7c1a421a4f0a0c1ac1b86d7b2cec01ff72169d48725eb8e2051e3dbb5aa80e353e33ec6965e82b81a203dce4f6b83f80b56627b2c8c0780dbbdd77e8d19
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- ��oyd�NI�b�ni��lg��y��E����d�~e���\�w^�>�������W�o�?E�tx�)^sD7��m�C��n*�Ip��j��ɳ8�/K���S�3��T#� �'��S64�4�'V�k|u�N����>�݆cQ��7Wp��Ղ��h�(J~S��"���m�]�\S}���Ѣ��痹18vٸ��-l(��|5�}o���n�Ruuw�� B �l��w�3�{-)bP� �B�
2
- <�w�
1
+ ��߀�2��"l���0�"�G�E�o�������m�MK���T���Y7����>�� ��1�����
2
+ �;0��?Yk_a5��O�v �iK��\dz�я�'���v>g��!��R��E��:�u��ŲO��[�ȹT}�S��G��s���j�l�����̙N�Ή�"�pv�{���T;�8�l=�d�;����v�=1�qp��:��g�u�2;�"��x�3�@Y�� )d��j�h�`M9�]�<�67[��'�.�Z/ ��kf
3
+ �md�� ?�7�4jo��$�"F�@e�!�ʚ��H �yT��J�^��,yy؊M�=�?���  �t��d�ĻA���M*��2#e�l��.k5l}X�]:�����"��7F�A��)��
@@ -9,53 +9,107 @@ require 'xinput_wrapper'
9
9
 
10
10
  class XInputWrapperPlus < XInputWrapper
11
11
 
12
- def initialize(device: '3', host: 'sps', port: '59000',
13
- topic: 'input/keyboard', verbose: true, lookup: {},
14
- debug: false, capture_all: false)
12
+ def initialize(host: 'sps', port: '59000',
13
+ topic: 'input', verbose: true, lookup: {},
14
+ debug: false, capture_all: false, keys: [],
15
+ keypress_detection: true, motion_detection: true)
15
16
 
16
- super(device: device, verbose: verbose, lookup: lookup,
17
- debug: debug)
17
+ puts 'before super'
18
+ super(verbose: verbose, lookup: lookup,
19
+ debug: debug, keys: keys)
20
+ puts 'after super'
21
+
18
22
  @topic, @capture_all = topic, capture_all
23
+ @keypress_detection = keypress_detection
24
+ @motion_detection = motion_detection
25
+
19
26
  @sps = SPSPub.new host: host, port: port
27
+
20
28
  @sk = SecretKnock.new short_delay: 0.25, long_delay: 0.5,
21
29
  external: self, verbose: verbose, debug: debug
22
30
  @sk.detect timeout: 0.7
23
31
 
24
- end
32
+ @a = [] # Used to store mouse gestures
33
+ @timer, @t2 = nil , Time.now - 30
25
34
 
35
+ end
26
36
 
27
37
  def knock()
28
38
  puts 'knock' if @verbose
29
39
  end
30
-
31
- def message(msg)
40
+
41
+ def message(msg, subtopic=:keyboard)
32
42
 
33
43
  puts ':: ' + msg.inspect if @verbose
34
44
 
35
45
  return if msg.strip.empty?
36
46
 
37
- @sps.notice "%s: %s" % [@topic, msg]
47
+ topic = [@topic, subtopic].compact.join('/')
48
+
49
+ @sps.notice "%s: %s" % [topic, msg]
38
50
 
39
- end
51
+ end
40
52
 
41
- protected
53
+ private
54
+
55
+ def anykey_press()
56
+
57
+ if @keypress_detection and (Time.now > @t2 + 30) then
58
+ message 'keypress detected', nil
59
+ @t2 = Time.now
60
+ end
61
+
62
+ end
42
63
 
43
64
  def on_control_key()
44
65
  puts 'inside on_control_key' if @debug
45
66
  @sk.knock
46
67
  end
47
68
 
69
+ def on_gesture(a)
70
+
71
+ puts 'inside on_gesture' if @debug
72
+ points = @a.map {|coords| coords.map {|x| x}.join(',') }.join(' ')
73
+ message points, 'motion'
74
+
75
+ end
76
+
48
77
  def on_key_press(key, keycode, modifier=[])
49
78
 
50
79
  puts 'inside on_key_press' if @debug
51
80
 
52
- if @capture_all
81
+ message format_key(key, modifier) if @capture_all
82
+
83
+ @sk.reset if @lookup[keycode] != :control
84
+
85
+ end
86
+
87
+ def on_mousemove(x,y)
88
+
89
+ if @debug then
90
+ puts "on_mousemove() x: %s y: %s" % [x, y]
91
+ end
92
+
93
+ if @motion_detection and (Time.now > @t2 + 30) then
94
+ message 'motion detected', nil
95
+ @t2 = Time.now
96
+ end
97
+ =begin
98
+ @timer.exit if @timer
99
+
100
+ @a << [x,y]
101
+
102
+
103
+ @timer = Thread.new do
104
+
105
+ sleep 0.25
106
+ puts 'inside timer' if @debug
53
107
 
54
- message modifier.any? ? (modifier + [key.to_s]).join('+') : key.to_s
108
+ on_gesture(@a) if @a.length > 6 and @a.length < 36
109
+ @a = []
55
110
 
56
111
  end
57
-
58
- @sk.reset if @lookup[keycode] != :control
112
+ =end
59
113
 
60
114
  end
61
115
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xinput_wrapperplus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,27 +10,32 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDXjCCAkagAwIBAgIBATANBgkqhkiG9w0BAQUFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODA1MTQyNTE1WhcN
15
- MTkwODA1MTQyNTE1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDRaOsM
17
- SPx7uw3NaAkRf7RbFf6TeFvRsuZIH+I3mb3hGgLFNPeFS4uXdnQSnbg0RT2fZMuB
18
- J/eL88+4KAh8jaLsM+KlRCUoJi6e6kvYYHANlefmtLHUJfF862XoqHbT2C0PxU8b
19
- zj+Jsoi8Mchiu5yH2cAXh3pzD8xrkI+OOhTiS+oJjVvTJOiIEelgfRw1XrmhTNtz
20
- /k/G1RPPXnrbJ6RJFThRgXhUCen6vc5ZO3vYRmvMWwW+Lu5YI1U+J5pEY4CYuYR3
21
- yIKEETbi2Xk+lktKr2UVp1AHlb8kXvCV8SBAM2RMWnM9AWzPldrOX+nPb6E8u3fj
22
- EDdS0kfwSh2T04NVAgMBAAGjgYowgYcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
23
- HQYDVR0OBBYEFIi6Dzmms9ESGJPV0s5nAz1x6Gd6MCYGA1UdEQQfMB2BG2dlbW1h
24
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTAmBgNVHRIEHzAdgRtnZW1tYXN0ZXJAamFt
25
- ZXNyb2JlcnRzb24uZXUwDQYJKoZIhvcNAQEFBQADggEBAHiYmg7O+Kjbmg/gFetT
26
- hraHXAUwue0Cfr3FHT9R1AOwEt7SYoVojaeMzf2r9goU/e42Pe4b4BP6EqAf5xod
27
- VqBCJX5cOGDAyiViCbsjfV9S3GIwCldzSexqyB8c72vvkZJQrQSMlwKI6A1irvim
28
- 7yg7yx3Hxk4KbFzuIERk932EwcjjDqYw654DztKPpnEyFZlTZT+mZOYaFghFcJVS
29
- wUvyr4SCo2/eIt0l3NBHnjsEbYCYQ22pUgEtcBsh9bm9A+jto5Qs7ws/jGlxX9Sm
30
- SK2jOkRNlfF9rY8O76O35JOdWJTBmi/UxMmyH0ISaWkk7/5E8Q1ZElsb7WR/Nlpk
31
- DHs=
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwODI1MTI0NjA1WhcN
15
+ MjEwODI1MTI0NjA1WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDUcQ9Q
17
+ hWoREpFe1iiNNIh72yJEQOy7wlCjQN7hf57/0yqU1Lb37mfRdSQXEhAWJakWxPn/
18
+ VhTr9lhh7XgIIrDDMIIM0+qe0Ean+ctTQSl0kVTD0gz2yJ1Gn4S96vf69YeoLOr/
19
+ rnidQqQgMJ2yh6fmwbsXNLpBMhd2ZU0ly1ly6b6jkH4gkJLSSPakZ4cc2tbTcqsu
20
+ goh5h16uc/Mwmk/f/UCsSfuvyRM5gFTthfkXloGTBsvznN8xtnZlwmU+8Jwjp4HQ
21
+ HUfYvDtIwyCW44osWP+Av9IVNCv2OjJJgTc8EG58HW/rTLc+Nk7i7BqHAbRV9SJs
22
+ eVBLz/CUmi1yYy93vQtCwjwhOYpx+b12k2bISlNcHETzkHMdue0w1qXqdgD3kxkF
23
+ k/aLXRYaHAGK73hiJMtYjOQ6+WmzApeE+PfoZpL7HjAb0Emh+OdyjNMtPjl3sZbI
24
+ s/C5Cm+p7kDw8J3BmPFsboc4nQ51qni1z4G0xP0s3Ka4HvUrRvXsMYc08CMCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUi8p2+J9R
26
+ y5R2KBWLSfNYrFOHyfQwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEAJpNOwQqItRT8dE38iQ9/J7x8fsSb9mBqKMwrqc9/
29
+ 5H8bKu49A+UDOlaS1ESvRAVKLL3mSlhxE56OUdfZsFHaoRyZkKp285l4HVgcmxJD
30
+ CrTqNIFDAMEnaG4FFwE3xcTHSCnSdxpVfgztz/KjLkwlWTumi7U3AQhlx3Yy8u4F
31
+ 5GnJ8Xnx94luWBMUlLPvIZo0gCHqomPAtd0OgGqmjsoAiZ90eYBieClDXUkHcQ9U
32
+ OZnar7W/SgfG8LGk+QYsffaVIZqzXT4vGyNBv3Yzt2Wrt7u/ZLNXgpaGS44kOBOU
33
+ C8PaoyXBQBUZNZQEYY0rKHqH/8yjKHHgueW1J2tULyk8FQEY2HVWXK/mSwE31S8n
34
+ 8rGJOGPSxtF8oNfS74KVO99PqLk4bp3vHjZp/jt07cQr2QiHyHq3hRBrA/U8WU6j
35
+ MAr0EaAbP4GPbdRnYZObrq03xJQOARWVRbH726l6usXEpiepoBKFXfqGNXX6DDt/
36
+ 2f3lRa47HGk7I26OxNboAPZQ
32
37
  -----END CERTIFICATE-----
33
- date: 2019-04-07 00:00:00.000000000 Z
38
+ date: 2020-08-28 00:00:00.000000000 Z
34
39
  dependencies:
35
40
  - !ruby/object:Gem::Dependency
36
41
  name: sps-pub
@@ -76,22 +81,22 @@ dependencies:
76
81
  name: xinput_wrapper
77
82
  requirement: !ruby/object:Gem::Requirement
78
83
  requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: 0.4.0
82
84
  - - "~>"
83
85
  - !ruby/object:Gem::Version
84
- version: '0.4'
86
+ version: '0.8'
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 0.8.1
85
90
  type: :runtime
86
91
  prerelease: false
87
92
  version_requirements: !ruby/object:Gem::Requirement
88
93
  requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 0.4.0
92
94
  - - "~>"
93
95
  - !ruby/object:Gem::Version
94
- version: '0.4'
96
+ version: '0.8'
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: 0.8.1
95
100
  description:
96
101
  email: james@jamesrobertson.eu
97
102
  executables: []
@@ -118,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
123
  - !ruby/object:Gem::Version
119
124
  version: '0'
120
125
  requirements: []
121
- rubygems_version: 3.0.1
126
+ rubygems_version: 3.0.3
122
127
  signing_key:
123
128
  specification_version: 4
124
129
  summary: A wrapper for the Linux utility xinput. Publishes an SPS message whenever
metadata.gz.sig CHANGED
Binary file