/** * @file encoder_cyfral.h * * Cyfral pulse format encoder */ #pragma once #include #include #include #ifdef __cplusplus extern "C" { #endif typedef struct EncoderCyfral EncoderCyfral; /** * Allocate Cyfral encoder * @return EncoderCyfral* */ EncoderCyfral* encoder_cyfral_alloc(); /** * Deallocate Cyfral encoder * @param cyfral */ void encoder_cyfral_free(EncoderCyfral* cyfral); /** * Reset Cyfral encoder * @param cyfral */ void encoder_cyfral_reset(EncoderCyfral* cyfral); /** * Set data to be encoded to Cyfral pulse format, 2 bytes * @param cyfral * @param data * @param data_size */ void encoder_cyfral_set_data(EncoderCyfral* cyfral, const uint8_t* data, size_t data_size); /** * Pop pulse from Cyfral encoder * @param cyfral * @param polarity * @param length */ void encoder_cyfral_get_pulse(EncoderCyfral* cyfral, bool* polarity, uint32_t* length); #ifdef __cplusplus } #endif