infrared_signal.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. No modifications were made to this file.
  6. */
  7. #pragma once
  8. #include <stddef.h>
  9. #include <stdint.h>
  10. #include <stdbool.h>
  11. #include <infrared.h>
  12. #include <flipper_format/flipper_format.h>
  13. typedef struct InfraredSignal InfraredSignal;
  14. typedef struct {
  15. size_t timings_size;
  16. uint32_t* timings;
  17. uint32_t frequency;
  18. float duty_cycle;
  19. } InfraredRawSignal;
  20. InfraredSignal* infrared_signal_alloc();
  21. void infrared_signal_free(InfraredSignal* signal);
  22. bool infrared_signal_is_raw(InfraredSignal* signal);
  23. bool infrared_signal_is_valid(InfraredSignal* signal);
  24. void infrared_signal_set_signal(InfraredSignal* signal, const InfraredSignal* other);
  25. void infrared_signal_set_raw_signal(
  26. InfraredSignal* signal,
  27. const uint32_t* timings,
  28. size_t timings_size,
  29. uint32_t frequency,
  30. float duty_cycle);
  31. InfraredRawSignal* infrared_signal_get_raw_signal(InfraredSignal* signal);
  32. void infrared_signal_set_message(InfraredSignal* signal, const InfraredMessage* message);
  33. InfraredMessage* infrared_signal_get_message(InfraredSignal* signal);
  34. bool infrared_signal_save(InfraredSignal* signal, FlipperFormat* ff, const char* name);
  35. bool infrared_signal_read(InfraredSignal* signal, FlipperFormat* ff, FuriString* name);
  36. bool infrared_signal_search_and_read(
  37. InfraredSignal* signal,
  38. FlipperFormat* ff,
  39. const FuriString* name);
  40. void infrared_signal_transmit(InfraredSignal* signal);