ducky_script.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif
  5. #include <furi.h>
  6. #include <furi_hal.h>
  7. typedef enum {
  8. BadUsbStateInit,
  9. BadUsbStateNotConnected,
  10. BadUsbStateIdle,
  11. BadUsbStateWillRun,
  12. BadUsbStateRunning,
  13. BadUsbStateDelay,
  14. BadUsbStateStringDelay,
  15. BadUsbStateWaitForBtn,
  16. BadUsbStateDone,
  17. BadUsbStateScriptError,
  18. BadUsbStateFileError,
  19. } BadUsbWorkerState;
  20. typedef struct {
  21. BadUsbWorkerState state;
  22. uint16_t line_cur;
  23. uint16_t line_nb;
  24. uint32_t delay_remain;
  25. uint16_t error_line;
  26. char error[64];
  27. } BadUsbState;
  28. typedef struct BadUsbScript BadUsbScript;
  29. BadUsbScript* bad_usb_script_open(FuriString* file_path);
  30. void bad_usb_script_close(BadUsbScript* bad_usb);
  31. void bad_usb_script_set_keyboard_layout(BadUsbScript* bad_usb, FuriString* layout_path);
  32. void bad_usb_script_start(BadUsbScript* bad_usb);
  33. void bad_usb_script_stop(BadUsbScript* bad_usb);
  34. void bad_usb_script_toggle(BadUsbScript* bad_usb);
  35. BadUsbState* bad_usb_script_get_state(BadUsbScript* bad_usb);
  36. #ifdef __cplusplus
  37. }
  38. #endif