Sha256: f566f9bce7b1d9b88d367434d777626675e5637c147905c8e3ea6afed2a0ee56
Contents?: true
Size: 1.64 KB
Versions: 3
Compression:
Stored size: 1.64 KB
Contents
module Fusuma # pinch or swipe action class GestureAction def initialize(time, action, finger, directions) @time = time @action = action @finger = finger @move_x = directions[:move][:x].to_f @move_y = directions[:move][:y].to_f @pinch = directions[:pinch].to_f end attr_reader :time, :action, :finger, :move_x, :move_y, :pinch class << self def initialize_by(line, device_name) return unless line.to_s =~ /^\s?#{device_name}/ return if line.to_s =~ /_BEGIN/ return unless line.to_s =~ /GESTURE_SWIPE|GESTURE_PINCH/ time, action, finger, directions = gesture_action_arguments(line) MultiLogger.debug(time: time, action: action, finger: finger, directions: directions) GestureAction.new(time, action, finger, directions) end private def gesture_action_arguments(libinput_line) action, time, finger_directions = parse_libinput(libinput_line) finger, move_x, move_y, pinch = parse_finger_directions(finger_directions) directions = { move: { x: move_x, y: move_y }, pinch: pinch } [time, action, finger, directions] end def parse_libinput(line) _device, action_time, finger_directions = line.split("\t").map(&:strip) action, time = action_time.split [action, time, finger_directions] end def parse_finger_directions(finger_directions_line) finger_num, move_x, move_y, _, _, _, pinch = finger_directions_line.tr('/', ' ').split [finger_num, move_x, move_y, pinch] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fusuma-0.1.8 | lib/fusuma/gesture_action.rb |
fusuma-0.1.7 | lib/fusuma/gesture_action.rb |
fusuma-0.1.6 | lib/fusuma/gesture_action.rb |