transmitter.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include "types.h"
  3. #include "environment.h"
  4. #include "protocols/base.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct SubGhzTransmitter SubGhzTransmitter;
  9. /**
  10. * Allocate and init SubGhzTransmitter.
  11. * @param environment Pointer to a SubGhzEnvironment instance
  12. * @return SubGhzTransmitter* pointer to a SubGhzTransmitter instance
  13. */
  14. SubGhzTransmitter*
  15. subghz_transmitter_alloc_init(SubGhzEnvironment* environment, const char* protocol_name);
  16. /**
  17. * Free SubGhzTransmitter.
  18. * @param instance Pointer to a SubGhzTransmitter instance
  19. */
  20. void subghz_transmitter_free(SubGhzTransmitter* instance);
  21. /** Get protocol instance.
  22. * @param instance Pointer to a SubGhzTransmitter instance
  23. */
  24. SubGhzProtocolEncoderBase* subghz_transmitter_get_protocol_instance(SubGhzTransmitter* instance);
  25. /**
  26. * Forced transmission stop.
  27. * @param instance Pointer to a SubGhzTransmitter instance
  28. */
  29. bool subghz_transmitter_stop(SubGhzTransmitter* instance);
  30. /**
  31. * Deserialize and generating an upload to send.
  32. * @param instance Pointer to a SubGhzTransmitter instance
  33. * @param flipper_format Pointer to a FlipperFormat instance
  34. * @return true On success
  35. */
  36. bool subghz_transmitter_deserialize(SubGhzTransmitter* instance, FlipperFormat* flipper_format);
  37. /**
  38. * Getting the level and duration of the upload to be loaded into DMA.
  39. * @param context Pointer to a SubGhzTransmitter instance
  40. * @return LevelDuration
  41. */
  42. LevelDuration subghz_transmitter_yield(void* context);
  43. #ifdef __cplusplus
  44. }
  45. #endif