mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2026-03-20 05:19:26 +00:00
51 lines
2.6 KiB
C
51 lines
2.6 KiB
C
#include "sdkconfig.h"
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/ringbuf.h"
|
|
#include "cJSON.h"
|
|
#pragma once
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
|
|
#endif
|
|
typedef enum { MESSAGING_INFO, MESSAGING_WARNING, MESSAGING_ERROR } messaging_types;
|
|
typedef enum { MESSAGING_CLASS_OTA, MESSAGING_CLASS_SYSTEM, MESSAGING_CLASS_STATS, MESSAGING_CLASS_CFGCMD, MESSAGING_CLASS_BT } messaging_classes;
|
|
|
|
typedef struct messaging_list_t* messaging_handle_t;
|
|
|
|
typedef struct {
|
|
time_t sent_time;
|
|
messaging_types type;
|
|
messaging_classes msg_class;
|
|
size_t msg_size;
|
|
char message[];
|
|
} single_message_t;
|
|
|
|
cJSON* messaging_retrieve_messages(RingbufHandle_t buf_handle);
|
|
messaging_handle_t messaging_register_subscriber(uint8_t max_count, char* name);
|
|
esp_err_t messaging_post_to_queue(messaging_handle_t subscriber_handle, single_message_t* message, size_t message_size);
|
|
void messaging_post_message(messaging_types type, messaging_classes msg_class, const char* fmt, ...);
|
|
void vmessaging_post_message(messaging_types type, messaging_classes msg_class, const char* fmt, va_list va);
|
|
cJSON* messaging_retrieve_messages(RingbufHandle_t buf_handle);
|
|
single_message_t* messaging_retrieve_message(RingbufHandle_t buf_handle);
|
|
void log_send_messaging(messaging_types msgtype, const char* fmt, ...);
|
|
void cmd_send_messaging(const char* cmdname, messaging_types msgtype, const char* fmt, ...);
|
|
esp_err_t messaging_type_to_err_type(messaging_types type);
|
|
char* messaging_alloc_format_string(const char* fmt, ...);
|
|
void messaging_service_init();
|
|
|
|
#define REALLOC_CAT(e, n) \
|
|
e = realloc(e, strlen(n)); \
|
|
e = strcat(e, n)
|
|
#define LOG_SEND(y, ...) \
|
|
{ \
|
|
ESP_LOG_LEVEL_LOCAL(messaging_type_to_err_type(y), TAG, ##__VA_ARGS__); \
|
|
messaging_post_message(y, MESSAGING_CLASS_SYSTEM, ##__VA_ARGS__); \
|
|
}
|
|
|
|
#define LOG_SEND_ERROR(...) LOG_SEND(MESSAGING_ERROR, ##__VA_ARGS__)
|
|
#define LOG_SEND_INFO(...) LOG_SEND(MESSAGING_INFO, ##__VA_ARGS__)
|
|
#define LOG_SEND_WARN(...) LOG_SEND(MESSAGING_WARNING, ##__VA_ARGS__)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |