#pragma once #include <stdint.h> #include <limits.h> #include <atomic> #include "protocols/protocol_indala_40134.h" class DecoderIndala { public: bool read(uint8_t* data, uint8_t data_size); void process_front(bool polarity, uint32_t time); void process_internal(bool polarity, uint32_t time, uint64_t* data); DecoderIndala(); private: void reset_state(); uint64_t raw_data; uint64_t cursed_raw_data; std::atomic<bool> ready; std::atomic<bool> cursed_data_valid; ProtocolIndala40134 indala; };