lib/fusuma/plugin/parsers/tap_parser.rb in fusuma-plugin-tap-0.1.3 vs lib/fusuma/plugin/parsers/tap_parser.rb in fusuma-plugin-tap-0.2.0

- old
+ new

@@ -52,17 +52,18 @@ # @return [Records::Gesture, nil] def parse_record(record) gesture = 'tap' case record.to_s - # BEGIN + + # BEGIN when /\stap(?:| state):\s.*TAP_STATE_IDLE → TAP_EVENT_TOUCH → TAP_STATE_TOUCH/ status = 'begin' finger = 1 - # TOUCH - when /\stap(?:| state):\s.*(#{STATE[:touches].join('|')}) → TAP_EVENT_TOUCH → (#{STATE[:touches].join('|')})/ + # TOUCH + when /\stap(?:| state):\s.*(#{STATE[:touches].join('|')}) → TAP_EVENT_(?:TOUCH|MOTION) → (#{STATE[:touches].join('|')})/ status = 'touch' finger = case Regexp.last_match(2) when 'TAP_STATE_DEAD' @@ -91,11 +92,11 @@ 2 when 'TAP_STATE_HOLD' 1 end # KEEP - when /\sgesture(| state):\s/ + when /\sgesture(| state):\s/, 'LIBINPUT TIMEOUT' # NOTE: treat the "gesture(| state):" as KEEP status = 'keep' finger = 0 # RELEASE @@ -119,9 +120,11 @@ when /\stap(?:| state):\s.*(#{STATE[:releases].join('|')}) → TAP_EVENT_(.*) → #{STATE[:idle]}/ status = 'end' matched = Regexp.last_match finger = case matched[1] + when 'TAP_STATE_DEAD' + 4 when 'TAP_STATE_TOUCH_3', 'TAP_STATE_TOUCH_3_HOLD' 3 when 'TAP_STATE_TOUCH_2', 'TAP_STATE_TOUCH_2_HOLD', 'TAP_STATE_TOUCH_2_RELEASE' 2 when 'TAP_STATE_TOUCH', 'TAP_STATE_HOLD', 'TAP_STATE_TAPPED'