Class: Fusuma::Plugin::Inputs::RemapKeyboardInput
- Inherits:
-
Input
- Object
- Input
- Fusuma::Plugin::Inputs::RemapKeyboardInput
- Defined in:
- lib/fusuma/plugin/inputs/remap_keyboard_input.rb
Overview
Get keyboard events from remapper
Defined Under Namespace
Classes: KeyboardSelector, TouchpadSelector
Instance Attribute Summary collapse
-
#pid ⇒ Object
readonly
Returns the value of attribute pid.
Instance Method Summary collapse
- #config_param_types ⇒ Object
- #create_event(record:) ⇒ Event
-
#initialize ⇒ RemapKeyboardInput
constructor
A new instance of RemapKeyboardInput.
- #io ⇒ Object
Constructor Details
#initialize ⇒ RemapKeyboardInput
Returns a new instance of RemapKeyboardInput.
21 22 23 24 |
# File 'lib/fusuma/plugin/inputs/remap_keyboard_input.rb', line 21 def initialize super setup_remapper end |
Instance Attribute Details
#pid ⇒ Object (readonly)
Returns the value of attribute pid.
19 20 21 |
# File 'lib/fusuma/plugin/inputs/remap_keyboard_input.rb', line 19 def pid @pid end |
Instance Method Details
#config_param_types ⇒ Object
12 13 14 15 16 17 |
# File 'lib/fusuma/plugin/inputs/remap_keyboard_input.rb', line 12 def config_param_types { keyboard_name_patterns: [Array, String], touchpad_name_patterns: [Array, String] } end |
#create_event(record:) ⇒ Event
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/fusuma/plugin/inputs/remap_keyboard_input.rb', line 32 def create_event(record:) data = MessagePack.unpack(record) # => {"key"=>"J", "status"=>1} unless data.is_a? Hash MultiLogger.error("Invalid record: #{record}", data: data) return end code = data["key"] status = (data["status"] == 1) ? "pressed" : "released" record = Events::Records::KeypressRecord.new(status: status, code: code) e = Events::Event.new(tag: tag, record: record) MultiLogger.debug(input_event: e) e end |
#io ⇒ Object
26 27 28 |
# File 'lib/fusuma/plugin/inputs/remap_keyboard_input.rb', line 26 def io @keyboard_reader end |