subghz_worker.h 1.7 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. /**
  8. * Allocate SubGhzWorker.
  9. * @return SubGhzWorker* Pointer to a SubGhzWorker instance
  10. */
  11. SubGhzWorker* subghz_worker_alloc();
  12. /**
  13. * Free SubGhzWorker.
  14. * @param instance Pointer to a SubGhzWorker instance
  15. */
  16. void subghz_worker_free(SubGhzWorker* instance);
  17. /**
  18. * Overrun callback SubGhzWorker.
  19. * @param instance Pointer to a SubGhzWorker instance
  20. * @param callback SubGhzWorkerOverrunCallback callback
  21. */
  22. void subghz_worker_set_overrun_callback(
  23. SubGhzWorker* instance,
  24. SubGhzWorkerOverrunCallback callback);
  25. /**
  26. * Pair callback SubGhzWorker.
  27. * @param instance Pointer to a SubGhzWorker instance
  28. * @param callback SubGhzWorkerOverrunCallback callback
  29. */
  30. void subghz_worker_set_pair_callback(SubGhzWorker* instance, SubGhzWorkerPairCallback callback);
  31. /**
  32. * Context callback SubGhzWorker.
  33. * @param instance Pointer to a SubGhzWorker instance
  34. * @param context
  35. */
  36. void subghz_worker_set_context(SubGhzWorker* instance, void* context);
  37. /**
  38. * Start SubGhzWorker.
  39. * @param instance Pointer to a SubGhzWorker instance
  40. */
  41. void subghz_worker_start(SubGhzWorker* instance);
  42. /** Stop SubGhzWorker
  43. * @param instance Pointer to a SubGhzWorker instance
  44. */
  45. void subghz_worker_stop(SubGhzWorker* instance);
  46. /**
  47. * Check if worker is running.
  48. * @param instance Pointer to a SubGhzWorker instance
  49. * @return bool - true if running
  50. */
  51. bool subghz_worker_is_running(SubGhzWorker* instance);