Keyboard class of PicoRuby

Include

LayerKeycode

Type aliases

key_event_t

{
    row: Integer,
    col: Integer,
    keycode: Integer,
    modifier: Integer,
    pressed: bool
  }

combo_entry_t

{
    keycodes: Array[Integer],
    action: Integer
  }

combo_buffer_entry_t

{
    key_pos: [Integer, Integer],
    pressed_at: Integer,
    keycode: Integer
  }

injected_event_t

{
    row: Integer,
    col: Integer,
    pressed: bool
  }

Singleton methods

new

Keyboard.new(Array[Integer] row_pins, Array[Integer] col_pins, ?debounce_ms: Integer, ?keymap_rows: Integer?, ?keymap_cols: Integer?) -> void

Instance methods

add_combo

instance.add_combo(Array[Integer] keycodes, Integer action) -> void

add_macro

instance.add_macro(String string) -> Integer

combo_reference_layer=

instance.combo_reference_layer=(Symbol? layer_name) -> (Integer | nil)

combo_term_ms=

instance.combo_term_ms=(Integer value) -> Integer

default_layer=

instance.default_layer=(Symbol name) -> void

get_layer

instance.get_layer(Symbol name) -> Array[Integer]?

inject_event

instance.inject_event(Integer row, Integer col, bool pressed) -> void

layer

instance.layer(?Symbol name) { (self) -> untyped } -> void

on_tick

instance.on_tick() { (Keyboard) -> void } -> void

repush_threshold_ms=

instance.repush_threshold_ms=(Integer value) -> Integer

start

instance.start() { (key_event_t) -> void } -> void

tap_threshold_ms=

instance.tap_threshold_ms=(Integer value) -> Integer

Attr accessors

layer_names (reader)

instance.layer_names -> Array[Symbol]

layout (reader)

instance.layout -> Array[Array[Integer]]

keys_pressed (reader)

instance.keys_pressed -> Hash[[Integer, Integer], bool]
Tags: class