ducky_script_i.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #pragma once
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif
  5. #include <furi.h>
  6. #include <furi_hal.h>
  7. #include "ducky_script.h"
  8. #define SCRIPT_STATE_ERROR (-1)
  9. #define SCRIPT_STATE_END (-2)
  10. #define SCRIPT_STATE_NEXT_LINE (-3)
  11. #define SCRIPT_STATE_CMD_UNKNOWN (-4)
  12. #define SCRIPT_STATE_STRING_START (-5)
  13. #define SCRIPT_STATE_WAIT_FOR_BTN (-6)
  14. #define FILE_BUFFER_LEN 16
  15. struct BadKbScript {
  16. FuriThread* thread;
  17. BadKbState st;
  18. FuriString* file_path;
  19. FuriString* keyboard_layout;
  20. uint8_t file_buf[FILE_BUFFER_LEN + 1];
  21. uint8_t buf_start;
  22. uint8_t buf_len;
  23. bool file_end;
  24. uint32_t defdelay;
  25. uint32_t stringdelay;
  26. uint32_t defstringdelay;
  27. uint16_t layout[128];
  28. FuriString* line;
  29. FuriString* line_prev;
  30. uint32_t repeat_cnt;
  31. uint8_t key_hold_nb;
  32. FuriString* string_print;
  33. size_t string_print_pos;
  34. Bt* bt;
  35. BadKbApp* app;
  36. };
  37. uint16_t ducky_get_keycode(BadKbScript* bad_kb, const char* param, bool accept_chars);
  38. uint32_t ducky_get_command_len(const char* line);
  39. bool ducky_is_line_end(const char chr);
  40. uint16_t ducky_get_keycode_by_name(const char* param);
  41. uint16_t ducky_get_media_keycode_by_name(const char* param);
  42. bool ducky_get_number(const char* param, uint32_t* val);
  43. void ducky_numlock_on(BadKbScript* bad_kb);
  44. bool ducky_numpad_press(BadKbScript* bad_kb, const char num);
  45. bool ducky_altchar(BadKbScript* bad_kb, const char* charcode);
  46. bool ducky_altstring(BadKbScript* bad_kb, const char* param);
  47. bool ducky_string(BadKbScript* bad_kb, const char* param);
  48. int32_t ducky_execute_cmd(BadKbScript* bad_kb, const char* line);
  49. int32_t ducky_error(BadKbScript* bad_kb, const char* text, ...);
  50. #ifdef __cplusplus
  51. }
  52. #endif