#pragma #include "decoder.h" namespace radio_controller { class samsung_decoder : public decoder { inline bool between(uint16_t smallest, uint16_t biggest, uint16_t value) { return smallest <= value && value <= biggest; } inline bool start_bit(uint16_t time) { return between(4200, 4700, time); } inline bool one_bit(uint16_t time) { return between(4200, 4700, time); } public: void decode(iterator *it) override { printf("Samsung\n"); while (it->next()) { auto s = it->value(); printf("% 5d us % 5d us, %.02d%%\n", s.period_us, s.pulse_us, int(s.pulse_us / double(s.period_us) * 100)); } } }; } // namespace radio_controller