xinput_wrapperplus 0.3.0 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
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