diff options
Diffstat (limited to 'include/samsung_decoder.h')
-rw-r--r-- | include/samsung_decoder.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/include/samsung_decoder.h b/include/samsung_decoder.h new file mode 100644 index 0000000..5d2b555 --- /dev/null +++ b/include/samsung_decoder.h @@ -0,0 +1,38 @@ +#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<sample> *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 |