ducky_script.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #pragma once
  2. #ifdef __cplusplus
  3. extern "C" {
  4. #endif
  5. #include <furi.h>
  6. #include <furi_hal.h>
  7. #include <bt/bt_service/bt.h>
  8. #include "../bad_kb_app.h"
  9. typedef enum {
  10. LevelRssi122_100,
  11. LevelRssi99_80,
  12. LevelRssi79_60,
  13. LevelRssi59_40,
  14. LevelRssi39_0,
  15. LevelRssiNum,
  16. LevelRssiError = 0xFF,
  17. } LevelRssiRange;
  18. extern const uint8_t bt_hid_delays[LevelRssiNum];
  19. extern uint8_t bt_timeout;
  20. typedef enum {
  21. WorkerEvtStartStop = (1 << 0),
  22. WorkerEvtPauseResume = (1 << 1),
  23. WorkerEvtEnd = (1 << 2),
  24. WorkerEvtConnect = (1 << 3),
  25. WorkerEvtDisconnect = (1 << 4),
  26. } WorkerEvtFlags;
  27. typedef enum {
  28. BadKbStateInit,
  29. BadKbStateNotConnected,
  30. BadKbStateIdle,
  31. BadKbStateWillRun,
  32. BadKbStateRunning,
  33. BadKbStateDelay,
  34. BadKbStateStringDelay,
  35. BadKbStateWaitForBtn,
  36. BadKbStatePaused,
  37. BadKbStateDone,
  38. BadKbStateScriptError,
  39. BadKbStateFileError,
  40. } BadKbWorkerState;
  41. typedef struct {
  42. BadKbWorkerState state;
  43. bool is_bt;
  44. uint32_t pin;
  45. size_t line_cur;
  46. size_t line_nb;
  47. uint32_t delay_remain;
  48. size_t error_line;
  49. char error[64];
  50. uint32_t elapsed;
  51. } BadKbState;
  52. typedef struct BadKbScript BadKbScript;
  53. BadKbScript* bad_kb_script_open(FuriString* file_path, Bt* bt, BadKbApp* app);
  54. void bad_kb_script_close(BadKbScript* bad_kb);
  55. void bad_kb_script_set_keyboard_layout(BadKbScript* bad_kb, FuriString* layout_path);
  56. void bad_kb_script_start(BadKbScript* bad_kb);
  57. void bad_kb_script_stop(BadKbScript* bad_kb);
  58. void bad_kb_script_start_stop(BadKbScript* bad_kb);
  59. void bad_kb_script_pause_resume(BadKbScript* bad_kb);
  60. BadKbState* bad_kb_script_get_state(BadKbScript* bad_kb);
  61. void bad_kb_bt_hid_state_callback(BtStatus status, void* context);
  62. void bad_kb_usb_hid_state_callback(bool state, void* context);
  63. #ifdef __cplusplus
  64. }
  65. #endif