transmitter.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 status
  35. */
  36. SubGhzProtocolStatus
  37. subghz_transmitter_deserialize(SubGhzTransmitter* instance, FlipperFormat* flipper_format);
  38. /**
  39. * Getting the level and duration of the upload to be loaded into DMA.
  40. * @param context Pointer to a SubGhzTransmitter instance
  41. * @return LevelDuration
  42. */
  43. LevelDuration subghz_transmitter_yield(void* context);
  44. #ifdef __cplusplus
  45. }
  46. #endif