#ifndef MENU_API_H #define MENU_API_H #include "../src/core/menu_types.h" #ifdef __cplusplus extern "C" { #endif // Initialization MenuErrCode menu_init(void); void menu_deinit(void); // Core Loop void menu_main_loop(uint32_t tick); // Node Registration MenuNodeId menu_register_node( MenuNodeId id, MenuNodeId parent_id, const char* name, MenuCallback enter_cb, MenuCallback exit_cb ); // Extended registration (Optimization) MenuNodeId menu_register_node_ex( MenuNodeId id, MenuNodeId parent_id, const char* name, MenuCallback enter_cb, MenuCallback exit_cb, MenuCallback render_cb, void* user_data ); // Event Handling MenuErrCode menu_post_event(MenuEventType type, uint32_t param); // Navigation MenuErrCode menu_enter(void); // Enter root MenuErrCode menu_back(void); // Parameter Binding MenuErrCode menu_node_bind_param(MenuNodeId node_id, uint16_t param_id); #ifdef __cplusplus } #endif #endif // MENU_API_H