kb_layout_provider.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <stddef.h>
  4. #include "../../types/automation_kb_layout.h"
  5. #define TOTP_DEFAULT_KB_LAYOUT (0)
  6. #define TOTP_KB_LAYOUT_DATA_LENGTH (36)
  7. #define TOTP_KB_LAYOUT_NAME_MAX_LENGTH (10)
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. /**
  12. * @brief Loads keyboard layout into \c buffer
  13. * @param kb_layout keyboard layout
  14. * @param[out] buffer buffer to load keyboard layout into
  15. * @return \c true if keyboard layout loaded successfully; \c false otherwise
  16. */
  17. bool totp_kb_layout_provider_get_layout_data(AutomationKeyboardLayout kb_layout, uint16_t* buffer);
  18. /**
  19. * @brief Gets total keyboard layouts count
  20. * @return total keyboard layouts count
  21. */
  22. uint8_t totp_kb_layout_provider_get_layouts_count();
  23. /**
  24. * @brief Gets keyboard layout name of a given \c kb_layout into \c buffer
  25. * @param kb_layout keyboard layout
  26. * @param[out] buffer buffer to get keyboard layout name into
  27. * @param buffer_length available buffer length
  28. * @return \c true if keyboard layout name found successfully; \c false otherwise
  29. */
  30. bool totp_kb_layout_provider_get_layout_name(
  31. AutomationKeyboardLayout kb_layout,
  32. char* buffer,
  33. size_t buffer_length);
  34. /**
  35. * @brief Gets keyboard layout by \c name
  36. * @param name keyboard layout name
  37. * @param[out] kb_layout keyboard layout
  38. * @return \c true if keyboard layout found successfully; \c false otherwise
  39. */
  40. bool totp_kb_layout_provider_get_layout_by_name(
  41. const char* name,
  42. AutomationKeyboardLayout* kb_layout);
  43. #ifdef __cplusplus
  44. }
  45. #endif