ducky_script_i.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 BadUsbScript {
  16. FuriHalUsbHidConfig hid_cfg;
  17. FuriThread* thread;
  18. BadUsbState st;
  19. FuriString* file_path;
  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. uint16_t layout[128];
  27. FuriString* line;
  28. FuriString* line_prev;
  29. uint32_t repeat_cnt;
  30. uint8_t key_hold_nb;
  31. FuriString* string_print;
  32. size_t string_print_pos;
  33. };
  34. uint16_t ducky_get_keycode(BadUsbScript* bad_usb, const char* param, bool accept_chars);
  35. uint32_t ducky_get_command_len(const char* line);
  36. bool ducky_is_line_end(const char chr);
  37. uint16_t ducky_get_keycode_by_name(const char* param);
  38. bool ducky_get_number(const char* param, uint32_t* val);
  39. void ducky_numlock_on(void);
  40. bool ducky_numpad_press(const char num);
  41. bool ducky_altchar(const char* charcode);
  42. bool ducky_altstring(const char* param);
  43. bool ducky_string(BadUsbScript* bad_usb, const char* param);
  44. int32_t ducky_execute_cmd(BadUsbScript* bad_usb, const char* line);
  45. int32_t ducky_error(BadUsbScript* bad_usb, const char* text, ...);
  46. #ifdef __cplusplus
  47. }
  48. #endif