| 1189 | #define LCD_CONFIG_FILE LCD_XML_CONFIG_FILE |
| 1190 | #endif |
| 1191 | const struct lcd_cfg_panel_info *load_lcd_config_from_xml(void) |
| 1192 | { |
| 1193 | struct property_t *_config_item; |
| 1194 | static rt_uint8_t init_state = 0; |
| 1195 | |
| 1196 | rt_enter_critical(); |
| 1197 | if (init_state == 0) |
| 1198 | { |
| 1199 | init_state = 1; |
| 1200 | rt_exit_critical(); |
| 1201 | } |
| 1202 | else |
| 1203 | { |
| 1204 | rt_exit_critical(); |
| 1205 | |
| 1206 | while (init_state != 2) |
| 1207 | { |
| 1208 | rt_thread_mdelay(10); |
| 1209 | } |
| 1210 | goto _RET; |
| 1211 | } |
| 1212 | |
| 1213 | g_lcd0_config = g_lcd0_config_rgb; |
| 1214 | g_lcd0_config_len = sizeof(g_lcd0_config_rgb) / sizeof(struct property_t); |
| 1215 | _RET: |
| 1216 | |
| 1217 | init_state = 2; |
| 1218 | _config_item = _lcd_property_find("lcd_x", g_lcd0_config, g_lcd0_config_len); |
| 1219 | _panel_info.width = _config_item->v.value; |
| 1220 | _config_item = _lcd_property_find("lcd_y", g_lcd0_config, g_lcd0_config_len); |
| 1221 | _panel_info.height = _config_item->v.value; |
| 1222 | |
| 1223 | return &_panel_info; |
| 1224 | } |
no test coverage detected