transmitter.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "types.h"
  3. #include "environment.h"
  4. #include "protocols/base.h"
  5. typedef struct SubGhzTransmitter SubGhzTransmitter;
  6. struct SubGhzTransmitter {
  7. const SubGhzProtocol* protocol;
  8. SubGhzProtocolEncoderBase* protocol_instance;
  9. };
  10. /**
  11. * Allocate and init SubGhzTransmitter.
  12. * @param environment Pointer to a SubGhzEnvironment instance
  13. * @return SubGhzTransmitter* pointer to a SubGhzTransmitter instance
  14. */
  15. SubGhzTransmitter*
  16. subghz_transmitter_alloc_init(SubGhzEnvironment* environment, const char* protocol_name);
  17. /**
  18. * Free SubGhzTransmitter.
  19. * @param instance Pointer to a SubGhzTransmitter instance
  20. */
  21. void subghz_transmitter_free(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);