blob: b0e53d847236ce3b78db3ed15cb1d7b5f6066dd3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#pragma once
#ifndef WS2812B_WRITER_H_
#define WS2812B_WRITER_H_
#include "drv/ws2812b.h"
#include "param.h"
#include "esp_err.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/task.h"
extern const int NUMBER_PARAMS;
typedef struct {
#define STATE_PARAM(t, n, ...) t n;
#include "state_params.i"
#undef STATE_PARAM
} ws_state_t;
typedef struct {
ws2812b_t* drv;
ws_state_t state;
SemaphoreHandle_t state_lock;
} ws_params_t;
void reset_parameters(ws_params_t* params);
esp_err_t ws_state_save(const ws_state_t* state);
esp_err_t ws_state_load(ws_state_t* state);
portTASK_FUNCTION_PROTO(ws2812b_write_task, params);
#endif /* WS2812B_WRITER_H_ */
|