wifi_marauder_script_worker.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "wifi_marauder_script.h"
  3. typedef enum {
  4. WifiMarauderScriptWorkerStatusSuccess = 0,
  5. WifiMarauderScriptWorkerStatusInvalidScript = 1,
  6. WifiMarauderScriptWorkerStatusForceExit = 2
  7. } WifiMarauderScriptWorkerStatus;
  8. typedef struct WifiMarauderScriptWorker {
  9. WifiMarauderScript* script;
  10. FuriThread* worker_thread;
  11. WifiMarauderUart* uart;
  12. void (*callback_start)(void*);
  13. void (*callback_stage)(WifiMarauderScriptStage*, void*);
  14. void* context;
  15. bool is_running;
  16. } WifiMarauderScriptWorker;
  17. /**
  18. * @brief Allocates a new instance of WifiMarauderScriptWorker.
  19. *
  20. * @return A pointer to the allocated instance or NULL if allocation fails.
  21. */
  22. WifiMarauderScriptWorker* wifi_marauder_script_worker_alloc();
  23. /**
  24. * @brief Starts the execution of the worker and sets the callback function to be called after each stage is executed.
  25. *
  26. * @param instance A pointer to the instance of WifiMarauderScriptWorker to start.
  27. * @param script Script to be executed
  28. * @return True if the worker was successfully started, false otherwise.
  29. */
  30. bool wifi_marauder_script_worker_start(
  31. WifiMarauderScriptWorker* instance,
  32. WifiMarauderScript* script);
  33. /**
  34. * @brief Frees the memory used by the instance of WifiMarauderScriptWorker.
  35. *
  36. * @param script A pointer to the instance of WifiMarauderScriptWorker to free.
  37. */
  38. void wifi_marauder_script_worker_free(WifiMarauderScriptWorker* script);