transmitter.h 1.4 KB

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