Method: Neotrellis::Keypad#set_event
- Defined in:
- lib/neotrellis/keypad.rb
#set_event(key, event: KEY_BOTH, enabled: true, &block) ⇒ Object
Register a callback to execute when a key’s event is processed.
107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/neotrellis/keypad.rb', line 107 def set_event(key, event: KEY_BOTH, enabled: true, &block) if event == KEY_BOTH set_event(key, event: KEY_PRESSED, enabled: enabled, &block) set_event(key, event: KEY_RELEASED, enabled: enabled, &block) else raise "event must be one of KEY_PRESSED, KEY_RELEASED" unless [KEY_PRESSED, KEY_RELEASED].include? event raise "enabled must be a boolean" unless [true, false].include? enabled # Convert data to SeeSaw's binary registers key_b = (key/4)*8 + (key%4) edge_b = (1 << (event+1)) | ( enabled ? 1 : 0 ) @seesaw.write(KEYPAD_BASE, KEYPAD_EVENT, key_b, edge_b) @callbacks[KeyEvent.new(key, event)] = block end end |