#pragma once
#include "driver/rmt_tx.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief Configuração do encoder de LED strip (usado pelo RMT)
 */
typedef struct {
    uint32_t resolution;  // resolução em Hz
} led_strip_encoder_config_t;

/**
 * @brief Cria um novo encoder para enviar dados WS2812 via RMT.
 *
 * @param config        Configuração do encoder (resolução)
 * @param ret_encoder   Ponteiro de retorno do handle do encoder
 *
 * @return ESP_OK se criado com sucesso
 */
esp_err_t rmt_new_led_strip_encoder(const led_strip_encoder_config_t *config,
                                    rmt_encoder_handle_t *ret_encoder);

#ifdef __cplusplus
}
#endif
