subghz_worker.h 1.8 KB

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