LVGL 库提交
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* @file lv_rb.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LV_RB_H
|
||||
#define LV_RB_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#include "lv_types.h"
|
||||
#include "lv_assert.h"
|
||||
#include "lv_types.h"
|
||||
|
||||
/*********************
|
||||
* DEFINES
|
||||
*********************/
|
||||
|
||||
/**********************
|
||||
* TYPEDEFS
|
||||
**********************/
|
||||
|
||||
typedef enum {
|
||||
LV_RB_COLOR_RED,
|
||||
LV_RB_COLOR_BLACK
|
||||
} lv_rb_color_t;
|
||||
|
||||
typedef int8_t lv_rb_compare_res_t;
|
||||
|
||||
typedef lv_rb_compare_res_t (*lv_rb_compare_t)(const void * a, const void * b);
|
||||
|
||||
/**********************
|
||||
* GLOBAL PROTOTYPES
|
||||
**********************/
|
||||
|
||||
bool lv_rb_init(lv_rb_t * tree, lv_rb_compare_t compare, size_t node_size);
|
||||
lv_rb_node_t * lv_rb_insert(lv_rb_t * tree, void * key);
|
||||
lv_rb_node_t * lv_rb_find(lv_rb_t * tree, const void * key);
|
||||
void * lv_rb_remove_node(lv_rb_t * tree, lv_rb_node_t * node);
|
||||
void * lv_rb_remove(lv_rb_t * tree, const void * key);
|
||||
bool lv_rb_drop_node(lv_rb_t * tree, lv_rb_node_t * node);
|
||||
bool lv_rb_drop(lv_rb_t * tree, const void * key);
|
||||
lv_rb_node_t * lv_rb_minimum(lv_rb_t * node);
|
||||
lv_rb_node_t * lv_rb_maximum(lv_rb_t * node);
|
||||
lv_rb_node_t * lv_rb_minimum_from(lv_rb_node_t * node);
|
||||
lv_rb_node_t * lv_rb_maximum_from(lv_rb_node_t * node);
|
||||
void lv_rb_destroy(lv_rb_t * tree);
|
||||
|
||||
/*************************
|
||||
* GLOBAL VARIABLES
|
||||
*************************/
|
||||
|
||||
/**********************
|
||||
* MACROS
|
||||
**********************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /*extern "C"*/
|
||||
#endif
|
||||
|
||||
#endif /*LV_RB_H*/
|
||||
Reference in New Issue
Block a user