5. API Specification
/* Lifecycle */
d3tui_vmu_manager_t *d3tui_vmu_create(size_t max_vmus);
void d3tui_vmu_destroy(d3tui_vmu_manager_t *mgr);
/* Detection */
size_t d3tui_vmu_detect(d3tui_vmu_manager_t *mgr);
d3tui_vmu_info_t *d3tui_vmu_get_info(const d3tui_vmu_manager_t *mgr,
d3tui_vmu_addr_t addr);
bool d3tui_vmu_exists(const d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr);
/* Display control */
void d3tui_vmu_enable(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr, bool enable);
void d3tui_vmu_set_contrast(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr,
uint8_t contrast);
void d3tui_vmu_clear(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr);
/* Rendering */
void d3tui_vmu_render_char(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr,
uint8_t x, uint8_t y, bool pixel);
void d3tui_vmu_render_text(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr,
uint8_t x, uint8_t y, const char *text);
void d3tui_vmu_render_bitmap(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr,
uint8_t x, uint8_t y, uint8_t w, uint8_t h,
const uint8_t *data);
/* Terminal integration */
void d3tui_vmu_attach_terminal(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr,
d3tui_terminal_t *term);
void d3tui_vmu_detach_terminal(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr);
void d3tui_vmu_update_terminal(d3tui_vmu_manager_t *mgr, d3tui_vmu_addr_t addr);
/* Update */
void d3tui_vmu_update(d3tui_vmu_manager_t *mgr);
void d3tui_vmu_update_all(d3tui_vmu_manager_t *mgr);