infrared_signal.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. This file was taken from the project:
  3. https://github.com/DarkFlippers/unleashed-firmware
  4. The original project is licensed under the GNU GPLv3
  5. Modifications made:
  6. - Added function infrared_signal_transmit_times()
  7. */
  8. #pragma once
  9. #include <stddef.h>
  10. #include <stdint.h>
  11. #include <stdbool.h>
  12. #include <infrared.h>
  13. #include <flipper_format/flipper_format.h>
  14. typedef struct InfraredSignal InfraredSignal;
  15. typedef struct {
  16. size_t timings_size;
  17. uint32_t* timings;
  18. uint32_t frequency;
  19. float duty_cycle;
  20. } InfraredRawSignal;
  21. InfraredSignal* infrared_signal_alloc();
  22. void infrared_signal_free(InfraredSignal* signal);
  23. bool infrared_signal_is_raw(InfraredSignal* signal);
  24. bool infrared_signal_is_valid(InfraredSignal* signal);
  25. void infrared_signal_set_signal(InfraredSignal* signal, const InfraredSignal* other);
  26. void infrared_signal_set_raw_signal(
  27. InfraredSignal* signal,
  28. const uint32_t* timings,
  29. size_t timings_size,
  30. uint32_t frequency,
  31. float duty_cycle);
  32. InfraredRawSignal* infrared_signal_get_raw_signal(InfraredSignal* signal);
  33. void infrared_signal_set_message(InfraredSignal* signal, const InfraredMessage* message);
  34. InfraredMessage* infrared_signal_get_message(InfraredSignal* signal);
  35. bool infrared_signal_save(InfraredSignal* signal, FlipperFormat* ff, const char* name);
  36. bool infrared_signal_read(InfraredSignal* signal, FlipperFormat* ff, FuriString* name);
  37. bool infrared_signal_search_and_read(
  38. InfraredSignal* signal,
  39. FlipperFormat* ff,
  40. const FuriString* name);
  41. void infrared_signal_transmit(InfraredSignal* signal);
  42. void infrared_signal_transmit_times(InfraredSignal* signal, int times);