#ifdef ESP_PLATFORM #include "tt_app.h" #include "tt_app_alertdialog.h" #include "tt_app_manifest.h" #include "tt_app_selectiondialog.h" #include "tt_bundle.h" #include "tt_gps.h" #include "tt_hal_device.h" #include "tt_hal_display.h" #include "tt_hal_gpio.h" #include "tt_hal_i2c.h" #include "tt_hal_touch.h" #include "tt_kernel.h" #include "tt_lvgl.h" #include "tt_lvgl_keyboard.h" #include "tt_lvgl_spinner.h" #include "tt_lvgl_toolbar.h" #include "tt_message_queue.h" #include "tt_mutex.h" #include "tt_preferences.h" #include "tt_semaphore.h" #include "tt_thread.h" #include "tt_time.h" #include "tt_timer.h" #include "tt_wifi.h" #include #include "symbols/gcc_soft_float.h" #include #include #include #include #include #include #include #include #include extern "C" { // GCC internal new and delete extern void* _Znwj(uint32_t size); extern void _ZdlPvj(void* p, uint64_t size); const esp_elfsym elf_symbols[] { // GCC internal ESP_ELFSYM_EXPORT(_Znwj), // new ESP_ELFSYM_EXPORT(_ZdlPvj), // delete // stdlib.h ESP_ELFSYM_EXPORT(malloc), ESP_ELFSYM_EXPORT(calloc), ESP_ELFSYM_EXPORT(realloc), ESP_ELFSYM_EXPORT(free), // unistd.h ESP_ELFSYM_EXPORT(usleep), ESP_ELFSYM_EXPORT(sleep), ESP_ELFSYM_EXPORT(exit), ESP_ELFSYM_EXPORT(close), // time.h ESP_ELFSYM_EXPORT(clock_gettime), ESP_ELFSYM_EXPORT(strftime), // pthread ESP_ELFSYM_EXPORT(pthread_create), ESP_ELFSYM_EXPORT(pthread_attr_init), ESP_ELFSYM_EXPORT(pthread_attr_setstacksize), ESP_ELFSYM_EXPORT(pthread_detach), ESP_ELFSYM_EXPORT(pthread_join), ESP_ELFSYM_EXPORT(pthread_exit), // sys/errno.h ESP_ELFSYM_EXPORT(__errno), // freertos_tasks_c_additions.h ESP_ELFSYM_EXPORT(__getreent), #ifdef __HAVE_LOCALE_INFO__ // ctype.h ESP_ELFSYM_EXPORT(__locale_ctype_ptr), #else ESP_ELFSYM_EXPORT(_ctype_), #endif // getopt.h ESP_ELFSYM_EXPORT(getopt_long), ESP_ELFSYM_EXPORT(optind), ESP_ELFSYM_EXPORT(opterr), ESP_ELFSYM_EXPORT(optarg), ESP_ELFSYM_EXPORT(optopt), // setjmp.h ESP_ELFSYM_EXPORT(longjmp), ESP_ELFSYM_EXPORT(setjmp), // cassert ESP_ELFSYM_EXPORT(__assert_func), // cstdio ESP_ELFSYM_EXPORT(fclose), ESP_ELFSYM_EXPORT(feof), ESP_ELFSYM_EXPORT(ferror), ESP_ELFSYM_EXPORT(fflush), ESP_ELFSYM_EXPORT(fgetc), ESP_ELFSYM_EXPORT(fgetpos), ESP_ELFSYM_EXPORT(fgets), ESP_ELFSYM_EXPORT(fopen), ESP_ELFSYM_EXPORT(fputc), ESP_ELFSYM_EXPORT(fputs), ESP_ELFSYM_EXPORT(fprintf), ESP_ELFSYM_EXPORT(fread), ESP_ELFSYM_EXPORT(fseek), ESP_ELFSYM_EXPORT(fsetpos), ESP_ELFSYM_EXPORT(fscanf), ESP_ELFSYM_EXPORT(ftell), ESP_ELFSYM_EXPORT(fwrite), ESP_ELFSYM_EXPORT(getc), ESP_ELFSYM_EXPORT(putc), ESP_ELFSYM_EXPORT(puts), ESP_ELFSYM_EXPORT(printf), ESP_ELFSYM_EXPORT(sscanf), ESP_ELFSYM_EXPORT(snprintf), ESP_ELFSYM_EXPORT(sprintf), ESP_ELFSYM_EXPORT(vsprintf), // cstring ESP_ELFSYM_EXPORT(strlen), ESP_ELFSYM_EXPORT(strcmp), ESP_ELFSYM_EXPORT(strncpy), ESP_ELFSYM_EXPORT(strcpy), ESP_ELFSYM_EXPORT(strcat), ESP_ELFSYM_EXPORT(strchr), ESP_ELFSYM_EXPORT(strstr), ESP_ELFSYM_EXPORT(strerror), ESP_ELFSYM_EXPORT(strtod), ESP_ELFSYM_EXPORT(strrchr), ESP_ELFSYM_EXPORT(strtol), ESP_ELFSYM_EXPORT(strcspn), ESP_ELFSYM_EXPORT(strncat), ESP_ELFSYM_EXPORT(memset), ESP_ELFSYM_EXPORT(memcpy), ESP_ELFSYM_EXPORT(memcmp), ESP_ELFSYM_EXPORT(memchr), ESP_ELFSYM_EXPORT(memmove), // ctype ESP_ELFSYM_EXPORT(isalnum), ESP_ELFSYM_EXPORT(isalpha), ESP_ELFSYM_EXPORT(iscntrl), ESP_ELFSYM_EXPORT(isdigit), ESP_ELFSYM_EXPORT(isgraph), ESP_ELFSYM_EXPORT(islower), ESP_ELFSYM_EXPORT(isprint), ESP_ELFSYM_EXPORT(ispunct), ESP_ELFSYM_EXPORT(isspace), ESP_ELFSYM_EXPORT(isupper), ESP_ELFSYM_EXPORT(isxdigit), ESP_ELFSYM_EXPORT(tolower), ESP_ELFSYM_EXPORT(toupper), // ESP-IDF ESP_ELFSYM_EXPORT(esp_log), ESP_ELFSYM_EXPORT(esp_log_write), ESP_ELFSYM_EXPORT(esp_log_timestamp), // esp_http_client ESP_ELFSYM_EXPORT(esp_http_client_init), ESP_ELFSYM_EXPORT(esp_http_client_perform), ESP_ELFSYM_EXPORT(esp_http_client_cancel_request), ESP_ELFSYM_EXPORT(esp_http_client_set_url), ESP_ELFSYM_EXPORT(esp_http_client_set_post_field), ESP_ELFSYM_EXPORT(esp_http_client_get_post_field), ESP_ELFSYM_EXPORT(esp_http_client_set_header), ESP_ELFSYM_EXPORT(esp_http_client_get_header), ESP_ELFSYM_EXPORT(esp_http_client_get_username), ESP_ELFSYM_EXPORT(esp_http_client_set_username), ESP_ELFSYM_EXPORT(esp_http_client_get_password), ESP_ELFSYM_EXPORT(esp_http_client_set_password), ESP_ELFSYM_EXPORT(esp_http_client_cancel_request), ESP_ELFSYM_EXPORT(esp_http_client_set_authtype), ESP_ELFSYM_EXPORT(esp_http_client_get_user_data), ESP_ELFSYM_EXPORT(esp_http_client_set_user_data), ESP_ELFSYM_EXPORT(esp_http_client_get_errno), ESP_ELFSYM_EXPORT(esp_http_client_get_and_clear_last_tls_error), ESP_ELFSYM_EXPORT(esp_http_client_set_method), ESP_ELFSYM_EXPORT(esp_http_client_set_timeout_ms), ESP_ELFSYM_EXPORT(esp_http_client_delete_header), ESP_ELFSYM_EXPORT(esp_http_client_delete_all_headers), ESP_ELFSYM_EXPORT(esp_http_client_open), ESP_ELFSYM_EXPORT(esp_http_client_write), ESP_ELFSYM_EXPORT(esp_http_client_fetch_headers), ESP_ELFSYM_EXPORT(esp_http_client_is_chunked_response), ESP_ELFSYM_EXPORT(esp_http_client_read), ESP_ELFSYM_EXPORT(esp_http_client_get_status_code), ESP_ELFSYM_EXPORT(esp_http_client_get_content_length), ESP_ELFSYM_EXPORT(esp_http_client_close), ESP_ELFSYM_EXPORT(esp_http_client_cleanup), ESP_ELFSYM_EXPORT(esp_http_client_get_transport_type), ESP_ELFSYM_EXPORT(esp_http_client_set_redirection), ESP_ELFSYM_EXPORT(esp_http_client_reset_redirect_counter), ESP_ELFSYM_EXPORT(esp_http_client_set_auth_data), ESP_ELFSYM_EXPORT(esp_http_client_add_auth), ESP_ELFSYM_EXPORT(esp_http_client_is_complete_data_received), ESP_ELFSYM_EXPORT(esp_http_client_read_response), ESP_ELFSYM_EXPORT(esp_http_client_flush_response), ESP_ELFSYM_EXPORT(esp_http_client_get_url), ESP_ELFSYM_EXPORT(esp_http_client_get_chunk_length), // esp_event ESP_ELFSYM_EXPORT(esp_event_loop_create), ESP_ELFSYM_EXPORT(esp_event_loop_delete), ESP_ELFSYM_EXPORT(esp_event_loop_create_default), ESP_ELFSYM_EXPORT(esp_event_loop_delete_default), ESP_ELFSYM_EXPORT(esp_event_loop_run), ESP_ELFSYM_EXPORT(esp_event_handler_register), ESP_ELFSYM_EXPORT(esp_event_handler_register_with), ESP_ELFSYM_EXPORT(esp_event_handler_instance_register_with), ESP_ELFSYM_EXPORT(esp_event_handler_instance_register), ESP_ELFSYM_EXPORT(esp_event_handler_unregister), ESP_ELFSYM_EXPORT(esp_event_handler_unregister_with), ESP_ELFSYM_EXPORT(esp_event_handler_instance_unregister_with), ESP_ELFSYM_EXPORT(esp_event_handler_instance_unregister), ESP_ELFSYM_EXPORT(esp_event_post), ESP_ELFSYM_EXPORT(esp_event_post_to), ESP_ELFSYM_EXPORT(esp_event_isr_post), ESP_ELFSYM_EXPORT(esp_event_isr_post_to), // Tactility ESP_ELFSYM_EXPORT(tt_app_start), ESP_ELFSYM_EXPORT(tt_app_start_with_bundle), ESP_ELFSYM_EXPORT(tt_app_stop), ESP_ELFSYM_EXPORT(tt_app_register), ESP_ELFSYM_EXPORT(tt_app_get_parameters), ESP_ELFSYM_EXPORT(tt_app_set_result), ESP_ELFSYM_EXPORT(tt_app_has_result), ESP_ELFSYM_EXPORT(tt_app_selectiondialog_start), ESP_ELFSYM_EXPORT(tt_app_selectiondialog_get_result_index), ESP_ELFSYM_EXPORT(tt_app_alertdialog_start), ESP_ELFSYM_EXPORT(tt_app_alertdialog_get_result_index), ESP_ELFSYM_EXPORT(tt_app_get_data_directory), ESP_ELFSYM_EXPORT(tt_bundle_alloc), ESP_ELFSYM_EXPORT(tt_bundle_free), ESP_ELFSYM_EXPORT(tt_bundle_opt_bool), ESP_ELFSYM_EXPORT(tt_bundle_opt_int32), ESP_ELFSYM_EXPORT(tt_bundle_opt_string), ESP_ELFSYM_EXPORT(tt_bundle_put_bool), ESP_ELFSYM_EXPORT(tt_bundle_put_int32), ESP_ELFSYM_EXPORT(tt_bundle_put_string), ESP_ELFSYM_EXPORT(tt_gps_has_coordinates), ESP_ELFSYM_EXPORT(tt_gps_get_coordinates), ESP_ELFSYM_EXPORT(tt_hal_device_find), ESP_ELFSYM_EXPORT(tt_hal_display_driver_alloc), ESP_ELFSYM_EXPORT(tt_hal_display_driver_draw_bitmap), ESP_ELFSYM_EXPORT(tt_hal_display_driver_free), ESP_ELFSYM_EXPORT(tt_hal_display_driver_get_colorformat), ESP_ELFSYM_EXPORT(tt_hal_display_driver_get_pixel_height), ESP_ELFSYM_EXPORT(tt_hal_display_driver_get_pixel_width), ESP_ELFSYM_EXPORT(tt_hal_display_driver_lock), ESP_ELFSYM_EXPORT(tt_hal_display_driver_unlock), ESP_ELFSYM_EXPORT(tt_hal_display_driver_supported), ESP_ELFSYM_EXPORT(tt_hal_gpio_configure), ESP_ELFSYM_EXPORT(tt_hal_gpio_configure_with_pin_bitmask), ESP_ELFSYM_EXPORT(tt_hal_gpio_set_mode), ESP_ELFSYM_EXPORT(tt_hal_gpio_get_level), ESP_ELFSYM_EXPORT(tt_hal_gpio_set_level), ESP_ELFSYM_EXPORT(tt_hal_gpio_get_pin_count), ESP_ELFSYM_EXPORT(tt_hal_i2c_start), ESP_ELFSYM_EXPORT(tt_hal_i2c_stop), ESP_ELFSYM_EXPORT(tt_hal_i2c_is_started), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_read), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_read_register), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_write), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_write_register), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_write_read), ESP_ELFSYM_EXPORT(tt_hal_i2c_master_has_device_at_address), ESP_ELFSYM_EXPORT(tt_hal_i2c_lock), ESP_ELFSYM_EXPORT(tt_hal_i2c_unlock), ESP_ELFSYM_EXPORT(tt_hal_touch_driver_supported), ESP_ELFSYM_EXPORT(tt_hal_touch_driver_alloc), ESP_ELFSYM_EXPORT(tt_hal_touch_driver_free), ESP_ELFSYM_EXPORT(tt_hal_touch_driver_get_touched_points), ESP_ELFSYM_EXPORT(tt_kernel_delay_millis), ESP_ELFSYM_EXPORT(tt_kernel_delay_micros), ESP_ELFSYM_EXPORT(tt_kernel_delay_ticks), ESP_ELFSYM_EXPORT(tt_kernel_get_ticks), ESP_ELFSYM_EXPORT(tt_kernel_millis_to_ticks), ESP_ELFSYM_EXPORT(tt_kernel_delay_until_tick), ESP_ELFSYM_EXPORT(tt_kernel_get_tick_frequency), ESP_ELFSYM_EXPORT(tt_kernel_get_millis), ESP_ELFSYM_EXPORT(tt_kernel_get_micros), ESP_ELFSYM_EXPORT(tt_lvgl_is_started), ESP_ELFSYM_EXPORT(tt_lvgl_start), ESP_ELFSYM_EXPORT(tt_lvgl_stop), ESP_ELFSYM_EXPORT(tt_lvgl_software_keyboard_show), ESP_ELFSYM_EXPORT(tt_lvgl_software_keyboard_hide), ESP_ELFSYM_EXPORT(tt_lvgl_software_keyboard_is_enabled), ESP_ELFSYM_EXPORT(tt_lvgl_software_keyboard_activate), ESP_ELFSYM_EXPORT(tt_lvgl_software_keyboard_deactivate), ESP_ELFSYM_EXPORT(tt_lvgl_hardware_keyboard_is_available), ESP_ELFSYM_EXPORT(tt_lvgl_hardware_keyboard_set_indev), ESP_ELFSYM_EXPORT(tt_lvgl_toolbar_create), ESP_ELFSYM_EXPORT(tt_lvgl_toolbar_create_for_app), ESP_ELFSYM_EXPORT(tt_message_queue_alloc), ESP_ELFSYM_EXPORT(tt_message_queue_free), ESP_ELFSYM_EXPORT(tt_message_queue_put), ESP_ELFSYM_EXPORT(tt_message_queue_get), ESP_ELFSYM_EXPORT(tt_message_queue_get_capacity), ESP_ELFSYM_EXPORT(tt_message_queue_get_message_size), ESP_ELFSYM_EXPORT(tt_message_queue_get_count), ESP_ELFSYM_EXPORT(tt_message_queue_reset), ESP_ELFSYM_EXPORT(tt_mutex_alloc), ESP_ELFSYM_EXPORT(tt_mutex_free), ESP_ELFSYM_EXPORT(tt_mutex_lock), ESP_ELFSYM_EXPORT(tt_mutex_unlock), ESP_ELFSYM_EXPORT(tt_preferences_alloc), ESP_ELFSYM_EXPORT(tt_preferences_free), ESP_ELFSYM_EXPORT(tt_preferences_opt_bool), ESP_ELFSYM_EXPORT(tt_preferences_opt_int32), ESP_ELFSYM_EXPORT(tt_preferences_opt_string), ESP_ELFSYM_EXPORT(tt_preferences_put_bool), ESP_ELFSYM_EXPORT(tt_preferences_put_int32), ESP_ELFSYM_EXPORT(tt_preferences_put_string), ESP_ELFSYM_EXPORT(tt_semaphore_alloc), ESP_ELFSYM_EXPORT(tt_semaphore_free), ESP_ELFSYM_EXPORT(tt_semaphore_acquire), ESP_ELFSYM_EXPORT(tt_semaphore_release), ESP_ELFSYM_EXPORT(tt_semaphore_get_count), ESP_ELFSYM_EXPORT(tt_thread_alloc), ESP_ELFSYM_EXPORT(tt_thread_alloc_ext), ESP_ELFSYM_EXPORT(tt_thread_free), ESP_ELFSYM_EXPORT(tt_thread_set_name), ESP_ELFSYM_EXPORT(tt_thread_set_stack_size), ESP_ELFSYM_EXPORT(tt_thread_set_callback), ESP_ELFSYM_EXPORT(tt_thread_set_priority), ESP_ELFSYM_EXPORT(tt_thread_set_state_callback), ESP_ELFSYM_EXPORT(tt_thread_get_state), ESP_ELFSYM_EXPORT(tt_thread_start), ESP_ELFSYM_EXPORT(tt_thread_join), ESP_ELFSYM_EXPORT(tt_thread_get_id), ESP_ELFSYM_EXPORT(tt_thread_get_return_code), ESP_ELFSYM_EXPORT(tt_timer_alloc), ESP_ELFSYM_EXPORT(tt_timer_free), ESP_ELFSYM_EXPORT(tt_timer_start), ESP_ELFSYM_EXPORT(tt_timer_restart), ESP_ELFSYM_EXPORT(tt_timer_stop), ESP_ELFSYM_EXPORT(tt_timer_is_running), ESP_ELFSYM_EXPORT(tt_timer_get_expire_time), ESP_ELFSYM_EXPORT(tt_timer_set_pending_callback), ESP_ELFSYM_EXPORT(tt_timer_set_thread_priority), ESP_ELFSYM_EXPORT(tt_timezone_set), ESP_ELFSYM_EXPORT(tt_timezone_get_name), ESP_ELFSYM_EXPORT(tt_timezone_get_code), ESP_ELFSYM_EXPORT(tt_timezone_is_format_24_hour), ESP_ELFSYM_EXPORT(tt_timezone_set_format_24_hour), ESP_ELFSYM_EXPORT(tt_wifi_get_radio_state), ESP_ELFSYM_EXPORT(tt_wifi_radio_state_to_string), ESP_ELFSYM_EXPORT(tt_wifi_scan), ESP_ELFSYM_EXPORT(tt_wifi_is_scanning), ESP_ELFSYM_EXPORT(tt_wifi_get_connection_target), ESP_ELFSYM_EXPORT(tt_wifi_set_enabled), ESP_ELFSYM_EXPORT(tt_wifi_connect), ESP_ELFSYM_EXPORT(tt_wifi_disconnect), ESP_ELFSYM_EXPORT(tt_wifi_is_connnection_secure), ESP_ELFSYM_EXPORT(tt_wifi_get_rssi), // tt::lvgl ESP_ELFSYM_EXPORT(tt_lvgl_spinner_create), // lv_event ESP_ELFSYM_EXPORT(lv_event_get_code), ESP_ELFSYM_EXPORT(lv_event_get_indev), ESP_ELFSYM_EXPORT(lv_event_get_key), ESP_ELFSYM_EXPORT(lv_event_get_param), ESP_ELFSYM_EXPORT(lv_event_get_scroll_anim), ESP_ELFSYM_EXPORT(lv_event_get_user_data), ESP_ELFSYM_EXPORT(lv_event_get_target_obj), ESP_ELFSYM_EXPORT(lv_event_get_target), ESP_ELFSYM_EXPORT(lv_event_get_current_target_obj), // lv_obj ESP_ELFSYM_EXPORT(lv_color_hex), ESP_ELFSYM_EXPORT(lv_color_make), ESP_ELFSYM_EXPORT(lv_obj_create), ESP_ELFSYM_EXPORT(lv_obj_delete), ESP_ELFSYM_EXPORT(lv_obj_add_event_cb), ESP_ELFSYM_EXPORT(lv_obj_align), ESP_ELFSYM_EXPORT(lv_obj_align_to), ESP_ELFSYM_EXPORT(lv_obj_get_parent), ESP_ELFSYM_EXPORT(lv_obj_get_height), ESP_ELFSYM_EXPORT(lv_obj_get_width), ESP_ELFSYM_EXPORT(lv_obj_get_coords), ESP_ELFSYM_EXPORT(lv_obj_get_x), ESP_ELFSYM_EXPORT(lv_obj_get_display), ESP_ELFSYM_EXPORT(lv_obj_get_y), ESP_ELFSYM_EXPORT(lv_obj_get_content_width), ESP_ELFSYM_EXPORT(lv_obj_get_content_height), ESP_ELFSYM_EXPORT(lv_obj_center), ESP_ELFSYM_EXPORT(lv_obj_remove_event_cb), ESP_ELFSYM_EXPORT(lv_obj_get_user_data), ESP_ELFSYM_EXPORT(lv_obj_set_user_data), ESP_ELFSYM_EXPORT(lv_obj_remove_flag), ESP_ELFSYM_EXPORT(lv_obj_add_flag), ESP_ELFSYM_EXPORT(lv_obj_set_pos), ESP_ELFSYM_EXPORT(lv_obj_set_flex_align), ESP_ELFSYM_EXPORT(lv_obj_set_flex_flow), ESP_ELFSYM_EXPORT(lv_obj_set_flex_grow), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_color), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_image_src), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_image_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_image_recolor), ESP_ELFSYM_EXPORT(lv_obj_set_style_bg_image_recolor_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_hor), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_ver), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_top), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_bottom), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_left), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_right), ESP_ELFSYM_EXPORT(lv_obj_set_style_margin_all), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_all), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_hor), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_ver), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_top), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_bottom), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_left), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_right), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_column), ESP_ELFSYM_EXPORT(lv_obj_set_style_pad_row), ESP_ELFSYM_EXPORT(lv_obj_set_style_border_width), ESP_ELFSYM_EXPORT(lv_obj_set_style_border_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_border_post), ESP_ELFSYM_EXPORT(lv_obj_set_style_border_side), ESP_ELFSYM_EXPORT(lv_obj_set_style_border_color), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_align), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_color), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_font), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_letter_space), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_line_space), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_outline_stroke_color), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_outline_stroke_opa), ESP_ELFSYM_EXPORT(lv_obj_set_style_text_outline_stroke_width), ESP_ELFSYM_EXPORT(lv_obj_set_align), ESP_ELFSYM_EXPORT(lv_obj_set_x), ESP_ELFSYM_EXPORT(lv_obj_set_y), ESP_ELFSYM_EXPORT(lv_obj_set_size), ESP_ELFSYM_EXPORT(lv_obj_set_width), ESP_ELFSYM_EXPORT(lv_obj_set_height), ESP_ELFSYM_EXPORT(lv_theme_get_color_primary), ESP_ELFSYM_EXPORT(lv_theme_get_color_secondary), // lv_button ESP_ELFSYM_EXPORT(lv_button_create), // lv_buttonmatrix ESP_ELFSYM_EXPORT(lv_buttonmatrix_create), ESP_ELFSYM_EXPORT(lv_buttonmatrix_get_button_text), ESP_ELFSYM_EXPORT(lv_buttonmatrix_get_map), ESP_ELFSYM_EXPORT(lv_buttonmatrix_get_one_checked), ESP_ELFSYM_EXPORT(lv_buttonmatrix_get_selected_button), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_button_ctrl), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_button_ctrl_all), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_ctrl_map), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_map), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_one_checked), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_button_width), ESP_ELFSYM_EXPORT(lv_buttonmatrix_set_selected_button), // lv_label ESP_ELFSYM_EXPORT(lv_label_create), ESP_ELFSYM_EXPORT(lv_label_cut_text), ESP_ELFSYM_EXPORT(lv_label_get_long_mode), ESP_ELFSYM_EXPORT(lv_label_set_long_mode), ESP_ELFSYM_EXPORT(lv_label_get_text), ESP_ELFSYM_EXPORT(lv_label_set_text), ESP_ELFSYM_EXPORT(lv_label_set_text_fmt), // lv_switch ESP_ELFSYM_EXPORT(lv_switch_create), // lv_checkbox ESP_ELFSYM_EXPORT(lv_checkbox_create), ESP_ELFSYM_EXPORT(lv_checkbox_set_text), ESP_ELFSYM_EXPORT(lv_checkbox_get_text), ESP_ELFSYM_EXPORT(lv_checkbox_set_text_static), // lv_bar ESP_ELFSYM_EXPORT(lv_bar_create), ESP_ELFSYM_EXPORT(lv_bar_get_max_value), ESP_ELFSYM_EXPORT(lv_bar_get_min_value), ESP_ELFSYM_EXPORT(lv_bar_get_mode), ESP_ELFSYM_EXPORT(lv_bar_get_start_value), ESP_ELFSYM_EXPORT(lv_bar_get_value), ESP_ELFSYM_EXPORT(lv_bar_set_mode), ESP_ELFSYM_EXPORT(lv_bar_set_range), ESP_ELFSYM_EXPORT(lv_bar_set_start_value), ESP_ELFSYM_EXPORT(lv_bar_set_value), ESP_ELFSYM_EXPORT(lv_bar_is_symmetrical), // lv_dropdown ESP_ELFSYM_EXPORT(lv_dropdown_create), ESP_ELFSYM_EXPORT(lv_dropdown_add_option), ESP_ELFSYM_EXPORT(lv_dropdown_clear_options), ESP_ELFSYM_EXPORT(lv_dropdown_close), ESP_ELFSYM_EXPORT(lv_dropdown_get_dir), ESP_ELFSYM_EXPORT(lv_dropdown_get_list), ESP_ELFSYM_EXPORT(lv_dropdown_get_option_count), ESP_ELFSYM_EXPORT(lv_dropdown_get_option_index), ESP_ELFSYM_EXPORT(lv_dropdown_get_options), ESP_ELFSYM_EXPORT(lv_dropdown_set_dir), ESP_ELFSYM_EXPORT(lv_dropdown_set_options), ESP_ELFSYM_EXPORT(lv_dropdown_set_options_static), ESP_ELFSYM_EXPORT(lv_dropdown_set_selected), ESP_ELFSYM_EXPORT(lv_dropdown_set_selected_highlight), ESP_ELFSYM_EXPORT(lv_dropdown_set_symbol), ESP_ELFSYM_EXPORT(lv_dropdown_set_text), ESP_ELFSYM_EXPORT(lv_dropdown_open), // lv_list ESP_ELFSYM_EXPORT(lv_list_create), ESP_ELFSYM_EXPORT(lv_list_add_text), ESP_ELFSYM_EXPORT(lv_list_add_button), ESP_ELFSYM_EXPORT(lv_list_get_button_text), ESP_ELFSYM_EXPORT(lv_list_set_button_text), // lv_textarea ESP_ELFSYM_EXPORT(lv_textarea_create), ESP_ELFSYM_EXPORT(lv_textarea_get_accepted_chars), ESP_ELFSYM_EXPORT(lv_textarea_get_label), ESP_ELFSYM_EXPORT(lv_textarea_get_max_length), ESP_ELFSYM_EXPORT(lv_textarea_get_one_line), ESP_ELFSYM_EXPORT(lv_textarea_set_one_line), ESP_ELFSYM_EXPORT(lv_textarea_set_accepted_chars), ESP_ELFSYM_EXPORT(lv_textarea_set_align), ESP_ELFSYM_EXPORT(lv_textarea_set_password_bullet), ESP_ELFSYM_EXPORT(lv_textarea_set_password_mode), ESP_ELFSYM_EXPORT(lv_textarea_set_password_show_time), ESP_ELFSYM_EXPORT(lv_textarea_set_placeholder_text), ESP_ELFSYM_EXPORT(lv_textarea_set_text), ESP_ELFSYM_EXPORT(lv_textarea_set_text_selection), // lv_palette ESP_ELFSYM_EXPORT(lv_palette_main), ESP_ELFSYM_EXPORT(lv_palette_darken), ESP_ELFSYM_EXPORT(lv_palette_lighten), // lv_display ESP_ELFSYM_EXPORT(lv_display_get_horizontal_resolution), ESP_ELFSYM_EXPORT(lv_display_get_vertical_resolution), ESP_ELFSYM_EXPORT(lv_display_get_physical_horizontal_resolution), ESP_ELFSYM_EXPORT(lv_display_get_physical_vertical_resolution), // lv_pct ESP_ELFSYM_EXPORT(lv_pct), ESP_ELFSYM_EXPORT(lv_pct_to_px), // delimiter ESP_ELFSYM_END }; uintptr_t resolve_symbol(const esp_elfsym* source, const char* symbolName) { const esp_elfsym* symbol_iterator = source; while (symbol_iterator->name) { if (!strcmp(symbol_iterator->name, symbolName)) { return reinterpret_cast(symbol_iterator->sym); } symbol_iterator++; } return 0; } uintptr_t tt_symbol_resolver(const char* symbolName) { uintptr_t address = resolve_symbol(elf_symbols, symbolName); if (address != 0) { return address; } return resolve_symbol(gcc_soft_float_symbols, symbolName); } void tt_init_tactility_c() { elf_set_symbol_resolver(tt_symbol_resolver); } } #else // Simulator extern "C" { void tt_init_tactility_c() { } } #endif // ESP_PLATFORM