OpenRoadCode
Public API reference for OpenRoadCode
Loading...
Searching...
No Matches
hardware_io.keyboard.keyboard_reader.KeyboardReader Class Reference

Reads key-press events from a Linux input device. More...

Inheritance diagram for hardware_io.keyboard.keyboard_reader.KeyboardReader:
hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf

Public Member Functions

None __init__ (self, str|None device_path=None, KeyCallback|None callback=None)
 Args: device_path: Linux input device path, such as /dev/input/event3.
 
str|None device_path (self)
 Return the selected input-device path.
 
str|None device_name (self)
 Return the selected input-device name.
 
bool is_running (self)
 Return whether background key monitoring is active.
 
None open (self)
 Opens the configured input device.
 
None close (self)
 Closes the input device.
 
Iterator[str] read_keys (self)
 Blocks and yields key names whenever a key is pressed.
 
None start (self, KeyCallback|None callback=None)
 Starts reading keyboard events in a background thread.
 
None stop (self)
 Stops the background reader.
 

Static Public Member Functions

str find_keyboard_device ()
 Returns the first keyboard-like Linux input device.
 

Static Protected Member Functions

str _normalize_keycode (str|list[str] keycode)
 Returns one key name when evdev reports aliases for a keycode.
 

Detailed Description

Reads key-press events from a Linux input device.

The reader reports Linux key names such as:

KEY_LEFT
KEY_RIGHT
KEY_ENTER
KEY_SPACE
KEY_VOLUMEUP

It does not assign application-specific meaning to those keys.

Constructor & Destructor Documentation

◆ __init__()

None hardware_io.keyboard.keyboard_reader.KeyboardReader.__init__ (   self,
str | None   device_path = None,
KeyCallback | None   callback = None 
)

Args: device_path: Linux input device path, such as /dev/input/event3.

When omitted, the reader attempts to locate a keyboard-like input device automatically.

callback:

Optional function called whenever a key is pressed.

Member Function Documentation

◆ device_name()

str | None hardware_io.keyboard.keyboard_reader.KeyboardReader.device_name (   self)

Return the selected input-device name.

Returns
Kernel-reported device name, or None if disconnected.

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.

◆ device_path()

str | None hardware_io.keyboard.keyboard_reader.KeyboardReader.device_path (   self)

Return the selected input-device path.

Returns
Linux input path, or None if no device is selected.

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.

◆ find_keyboard_device()

str hardware_io.keyboard.keyboard_reader.KeyboardReader.find_keyboard_device ( )
static

Returns the first keyboard-like Linux input device.

A device is considered keyboard-like when it supports common keyboard keys such as letters, Enter, or Space.

◆ is_running()

bool hardware_io.keyboard.keyboard_reader.KeyboardReader.is_running (   self)

Return whether background key monitoring is active.

Returns
True while background monitoring is active.

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.

◆ open()

None hardware_io.keyboard.keyboard_reader.KeyboardReader.open (   self)

Opens the configured input device.

If no device path was supplied, a keyboard-like device is selected automatically.

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.

◆ read_keys()

Iterator[str] hardware_io.keyboard.keyboard_reader.KeyboardReader.read_keys (   self)

Blocks and yields key names whenever a key is pressed.

Example:

for key in reader.read_keys():

print(key)

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.

◆ start()

None hardware_io.keyboard.keyboard_reader.KeyboardReader.start (   self,
KeyCallback | None   callback = None 
)

Starts reading keyboard events in a background thread.

Args: callback: Optional callback override. If omitted, the callback supplied to the constructor is used.

Reimplemented from hardware_io.keyboard.keyboard_reader_if.KeyboardReaderIf.


The documentation for this class was generated from the following file: