From 94c5e361fbb229b0cd6853e2102a7d95f1f358b3 Mon Sep 17 00:00:00 2001 From: Berke Güzel Date: Mon, 12 Oct 2026 22:12:02 +0300 Subject: better public interface and doxygen --- src/common/keyboard.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/common/keyboard.h (limited to 'src/common/keyboard.h') diff --git a/src/common/keyboard.h b/src/common/keyboard.h new file mode 100644 index 0000000..50ddbb3 --- /dev/null +++ b/src/common/keyboard.h @@ -0,0 +1,18 @@ +#ifndef YASL_COMMON_KEYBOARD_H +#define YASL_COMMON_KEYBOARD_H + +#include "yasl/yasl.h" + +enum yasl_key yasl_key_from_evdev(uint32_t code); +enum yasl_key yasl_key_from_xkb_name(const char name[4]); +enum yasl_key yasl_key_from_cocoa(uint32_t code); + +/* Layout labels omit controls, invalid Unicode, and Cocoa function-key PUA. */ +static inline uint32_t yasl_key_label(uint32_t cp) +{ + return cp >= 0x20 && cp != 0x7f && cp <= 0x10ffff && + !(cp >= 0x80 && cp <= 0x9f) && !(cp >= 0xd800 && cp <= 0xdfff) && + !(cp >= 0xf700 && cp <= 0xf7ff) ? cp : 0; +} + +#endif -- cgit v1.2.3