Class: Fusuma::Plugin::Parsers::KeypressParser
- Inherits:
-
Parser
- Object
- Parser
- Fusuma::Plugin::Parsers::KeypressParser
- Defined in:
- lib/fusuma/plugin/parsers/keypress_parser.rb
Overview
Generate KeypressRecord from libinput_command_input
Constant Summary collapse
- DEFAULT_SOURCE =
"libinput_command_input"
Instance Method Summary collapse
Instance Method Details
#parse_record(record) ⇒ Records::Gesture?
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fusuma/plugin/parsers/keypress_parser.rb', line 12 def parse_record(record) line = record.to_s # NOTE: example of line # event4 KEYBOARD_KEY +4.81s KEY_LEFTSHIFT (42) pressed # event4 KEYBOARD_KEY +4.90s KEY_LEFTSHIFT (42) released # event4 KEYBOARD_KEY +7.39s KEY_CAPSLOCK (58) pressed # event4 KEYBOARD_KEY +7.52s KEY_CAPSLOCK (58) released # event4 KEYBOARD_KEY +8.98s KEY_LEFTCTRL (29) pressed # event4 KEYBOARD_KEY +9.14s KEY_LEFTCTRL (29) released # event4 KEYBOARD_KEY +29.581s KEY_2 (3) released case line when /KEYBOARD_KEY.+(\d+\.\d+)s.*KEY_([[:alnum:]_]+)\s.*(pressed|released)/ matched = Regexp.last_match # time = matched[1] # 4.81 code = matched[2] # LEFTSHIFT status = matched[3] # pressed Events::Records::KeypressRecord.new(status: status, code: code) end end |
#tag ⇒ Object
35 36 37 |
# File 'lib/fusuma/plugin/parsers/keypress_parser.rb', line 35 def tag "keypress_parser" end |