1 /** 2 * @file lv_svg_parser.h 3 * 4 */ 5 6 #ifndef LV_SVG_PARSER_H 7 #define LV_SVG_PARSER_H 8 9 /********************* 10 * INCLUDES 11 *********************/ 12 #include "../../lv_conf_internal.h" 13 #if LV_USE_SVG 14 15 #include "lv_svg.h" 16 #include "lv_svg_token.h" 17 18 /********************* 19 * DEFINES 20 *********************/ 21 22 /********************** 23 * TYPEDEFS 24 **********************/ 25 26 typedef enum { 27 LV_SVG_PARSER_PROCESS = 0, 28 LV_SVG_PARSER_IGNORE, 29 } _lv_svg_parser_state_t; 30 31 typedef struct { 32 uint16_t state; 33 char * ignore_name; 34 uint32_t ignore_len; 35 int32_t dpi; 36 lv_svg_node_t * doc_root; 37 lv_svg_node_t * cur_node; 38 } _lv_svg_parser_t; 39 40 /********************** 41 * GLOBAL PROTOTYPES 42 **********************/ 43 44 /** 45 * @brief Initialize the SVG parser 46 * @param parser pointer to a parser object 47 */ 48 void _lv_svg_parser_init(_lv_svg_parser_t * parser); 49 50 /** 51 * @brief Deinitialize the SVG parser 52 * @param parser pointer to a parser object 53 */ 54 void _lv_svg_parser_deinit(_lv_svg_parser_t * parser); 55 56 /** 57 * @brief Parse an SVG document 58 * @param parser pointer to a parser object 59 * @param token pointer to a token object 60 * @return true: the parsing is finished, false: the parsing is not finished yet. 61 */ 62 bool _lv_svg_parser_token(_lv_svg_parser_t * parser, const _lv_svg_token_t * token); 63 64 /** 65 * @brief Check if the parsing is finished 66 * @param parser pointer to a parser object 67 * @return true: the parsing is finished, false: the parsing is not finished yet. 68 */ 69 bool _lv_svg_parser_is_finish(_lv_svg_parser_t * parser); 70 71 /** 72 * @brief Dump the SVG tree 73 * @param root pointer to the root of the SVG tree 74 * @param depth the depth of the current node in the tree 75 */ 76 void _lv_svg_dump_tree(lv_svg_node_t * root, int depth); 77 78 /********************** 79 * MACROS 80 **********************/ 81 82 #endif /*LV_USE_SVG*/ 83 84 #endif /*LV_SVG_PARSER_H*/ 85