infrared_protocol_samsung.h 1.7 KB

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "../infrared_i.h"
  3. /***************************************************************************************************
  4. * SAMSUNG32 protocol description
  5. * https://www.mikrocontroller.net/articles/IRMP_-_english#SAMSUNG
  6. ****************************************************************************************************
  7. * Preamble Preamble Pulse Distance/Width Pause Preamble Preamble Bit1 Stop
  8. * mark space Modulation repeat repeat bit
  9. * mark space
  10. *
  11. * 4500 4500 32 bit + stop bit 40000/100000 4500 4500
  12. * __________ _ _ _ _ _ _ _ _ _ _ _ ___________ _ _
  13. * _ __________ __ _ __ __ __ _ _ __ __ _ ________________ ____________ ____ ___
  14. *
  15. ***************************************************************************************************/
  16. void* infrared_decoder_samsung32_alloc(void);
  17. void infrared_decoder_samsung32_reset(void* decoder);
  18. void infrared_decoder_samsung32_free(void* decoder);
  19. InfraredMessage* infrared_decoder_samsung32_check_ready(void* ctx);
  20. InfraredMessage* infrared_decoder_samsung32_decode(void* decoder, bool level, uint32_t duration);
  21. InfraredStatus
  22. infrared_encoder_samsung32_encode(void* encoder_ptr, uint32_t* duration, bool* level);
  23. void infrared_encoder_samsung32_reset(void* encoder_ptr, const InfraredMessage* message);
  24. void* infrared_encoder_samsung32_alloc(void);
  25. void infrared_encoder_samsung32_free(void* encoder_ptr);
  26. const InfraredProtocolVariant* infrared_protocol_samsung32_get_variant(InfraredProtocol protocol);