xremote_signal.h 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. /*!
  2. * @file flipper-xremote/xremote_signal.h
  3. @license This project is released under the GNU GPLv3 License
  4. * @copyright (c) 2023 Sandro Kalatozishvili (s.kalatoz@gmail.com)
  5. *
  6. * @brief Implementation of infrared signal receiver functionality
  7. */
  8. #pragma once
  9. #include "xremote_app.h"
  10. #include "infrared/infrared_signal.h"
  11. typedef void (*XRemoteRxCallback)(void* context, InfraredSignal* signal);
  12. typedef struct XRemoteSignalReceiver XRemoteSignalReceiver;
  13. void xremote_signal_receiver_free(XRemoteSignalReceiver* rx_ctx);
  14. XRemoteSignalReceiver* xremote_signal_receiver_alloc(XRemoteAppContext* app_ctx);
  15. InfraredSignal* xremote_signal_receiver_get_signal(XRemoteSignalReceiver* rx_ctx);
  16. void xremote_signal_receiver_set_context(
  17. XRemoteSignalReceiver* rx_ctx,
  18. void* context,
  19. XRemoteClearCallback on_clear);
  20. void xremote_signal_receiver_set_rx_callback(
  21. XRemoteSignalReceiver* rx_ctx,
  22. XRemoteRxCallback rx_callback);
  23. void xremote_signal_receiver_detach(XRemoteSignalReceiver* rx_ctx);
  24. void xremote_signal_receiver_attach(XRemoteSignalReceiver* rx_ctx);
  25. void xremote_signal_receiver_start(XRemoteSignalReceiver* rx_ctx);
  26. void xremote_signal_receiver_stop(XRemoteSignalReceiver* rx_ctx);