wifi_marauder_script_worker.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. void (*callback_start)(void*);
  12. void (*callback_stage)(WifiMarauderScriptStage*, void*);
  13. void* context;
  14. bool is_running;
  15. } WifiMarauderScriptWorker;
  16. /**
  17. * @brief Allocates a new instance of WifiMarauderScriptWorker.
  18. *
  19. * @return A pointer to the allocated instance or NULL if allocation fails.
  20. */
  21. WifiMarauderScriptWorker* wifi_marauder_script_worker_alloc();
  22. /**
  23. * @brief Starts the execution of the worker and sets the callback function to be called after each stage is executed.
  24. *
  25. * @param instance A pointer to the instance of WifiMarauderScriptWorker to start.
  26. * @param script Script to be executed
  27. * @return True if the worker was successfully started, false otherwise.
  28. */
  29. bool wifi_marauder_script_worker_start(
  30. WifiMarauderScriptWorker* instance,
  31. WifiMarauderScript* script);
  32. /**
  33. * @brief Frees the memory used by the instance of WifiMarauderScriptWorker.
  34. *
  35. * @param script A pointer to the instance of WifiMarauderScriptWorker to free.
  36. */
  37. void wifi_marauder_script_worker_free(WifiMarauderScriptWorker* script);