subghz_worker.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include <furi_hal.h>
  3. typedef struct SubGhzWorker SubGhzWorker;
  4. typedef void (*SubGhzWorkerOverrunCallback)(void* context);
  5. typedef void (*SubGhzWorkerPairCallback)(void* context, bool level, uint32_t duration);
  6. void subghz_worker_rx_callback(bool level, uint32_t duration, void* context);
  7. /** Allocate SubGhzWorker
  8. *
  9. * @return SubGhzWorker*
  10. */
  11. SubGhzWorker* subghz_worker_alloc();
  12. /** Free SubGhzWorker
  13. *
  14. * @param instance SubGhzWorker instance
  15. */
  16. void subghz_worker_free(SubGhzWorker* instance);
  17. /** Overrun callback SubGhzWorker
  18. *
  19. * @param instance SubGhzWorker instance
  20. * @param callback SubGhzWorkerOverrunCallback callback
  21. */
  22. void subghz_worker_set_overrun_callback(
  23. SubGhzWorker* instance,
  24. SubGhzWorkerOverrunCallback callback);
  25. /** Pair callback SubGhzWorker
  26. *
  27. * @param instance SubGhzWorker instance
  28. * @param callback SubGhzWorkerOverrunCallback callback
  29. */
  30. void subghz_worker_set_pair_callback(SubGhzWorker* instance, SubGhzWorkerPairCallback callback);
  31. /** Context callback SubGhzWorker
  32. *
  33. * @param instance SubGhzWorker instance
  34. * @param context
  35. */
  36. void subghz_worker_set_context(SubGhzWorker* instance, void* context);
  37. /** Start SubGhzWorker
  38. *
  39. * @param instance SubGhzWorker instance
  40. */
  41. void subghz_worker_start(SubGhzWorker* instance);
  42. /** Stop SubGhzWorker
  43. *
  44. * @param instance SubGhzWorker instance
  45. */
  46. void subghz_worker_stop(SubGhzWorker* instance);
  47. /** Check if worker is running
  48. * @param instance SubGhzWorker instance
  49. * @return bool - true if running
  50. */
  51. bool subghz_worker_is_running(SubGhzWorker* instance);