action_ir_utils.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #include <furi.h>
  2. // infrared
  3. #include <infrared.h>
  4. #include <infrared/encoder_decoder/infrared.h>
  5. #include <infrared/worker/infrared_transmit.h>
  6. #include <infrared/worker/infrared_worker.h>
  7. #include <flipper_format/flipper_format.h>
  8. #define INFRARED_FILE_TYPE "IR signals file"
  9. #define INFRARED_FILE_VERSION 1
  10. typedef struct {
  11. size_t timings_size; /**< Number of elements in the timings array. */
  12. uint32_t* timings; /**< Pointer to an array of timings describing the signal. */
  13. uint32_t frequency; /**< Carrier frequency of the signal. */
  14. float duty_cycle; /**< Duty cycle of the signal. */
  15. } InfraredRawSignal;
  16. typedef struct InfraredSignal {
  17. bool is_raw;
  18. union {
  19. InfraredMessage message; // protocol, address, command, repeat
  20. InfraredRawSignal raw;
  21. } payload;
  22. } InfraredSignal;
  23. InfraredSignal* infrared_utils_signal_alloc();
  24. void infrared_utils_signal_free(InfraredSignal* signal);
  25. bool infrared_utils_read_signal_at_index(
  26. FlipperFormat* fffile,
  27. uint32_t index,
  28. InfraredSignal* signal,
  29. FuriString* name);
  30. bool infrared_utils_write_signal(FlipperFormat* fffile, InfraredSignal* signal, FuriString* name);
  31. void action_ir_power_otg(bool enable);