ducky_script_i.h 1.4 KB

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