Class: Fusuma::Plugin::Detectors::KeypressDetector
- Inherits:
-
Detector
- Object
- Detector
- Fusuma::Plugin::Detectors::KeypressDetector
- Defined in:
- lib/fusuma/plugin/detectors/keypress_detector.rb
Overview
Detect KeypressEvent from KeypressBuffer
Constant Summary collapse
- SOURCES =
%w[keypress].freeze
- BUFFER_TYPE =
"keypress"
- MODIFIER_KEYS =
Set.new(%w[ CAPSLOCK LEFTALT LEFTCTRL LEFTMETA LEFTSHIFT RIGHTALT RIGHTCTRL RIGHTSHIFT RIGHTMETA ])
Instance Method Summary collapse
- #detect(buffers) ⇒ Event, NilClass
-
#watch? ⇒ Boolean
Always watch buffers and detect them.
Instance Method Details
#detect(buffers) ⇒ Event, NilClass
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/fusuma/plugin/detectors/keypress_detector.rb', line 33 def detect(buffers) keypress_buffer = find_buffer(buffers) return if keypress_buffer.empty? codes = pressed_codes(keypress_buffer.events.map(&:record)) return unless codes.any? { |code| MODIFIER_KEYS.include?(code) } record = Events::Records::IndexRecord.new( index: create_index(codes: codes), position: :surfix ) create_event(record: record) end |
#watch? ⇒ Boolean
Always watch buffers and detect them.
26 27 28 |
# File 'lib/fusuma/plugin/detectors/keypress_detector.rb', line 26 def watch? true end |