4.2 Data Structures
/* VMU address (port/slot) */
typedef struct {
uint8_t port; /* 0=A, 1=B, 2=C, 3=D */
uint8_t slot; /* 0=primary, 1=secondary */
} d3tui_vmu_addr_t;
/* VMU device information */
typedef struct {
d3tui_vmu_addr_t addr; /* Port and slot */
maple_device_t *dev; /* KOS device handle */
char product[17]; /* Product name */
char region[9]; /* Region code */
uint32_t version; /* Version info */
} d3tui_vmu_info_t;
/* VMU display state */
typedef struct {
d3tui_vmu_addr_t addr; /* Which VMU */
vmufb_t fb; /* KOS framebuffer */
bool enabled; /* Display enabled */
bool dirty; /* Needs update */
uint8_t scroll_y; /* Scroll offset */
uint8_t contrast; /* Display contrast (0-15) */
} d3tui_vmu_display_t;
/* VMU terminal state */
typedef struct {
d3tui_vmu_display_t display; /* Display state */
d3tui_terminal_t *terminal; /* Terminal instance (optional) */
bool has_terminal; /* Has dedicated terminal */
} d3tui_vmu_t;
/* VMU manager */
typedef struct {
d3tui_vmu_t *vmus; /* Array of VMUs */
size_t count; /* Number of VMUs */
size_t capacity; /* Maximum capacity */
bool auto_update; /* Auto-update displays */
} d3tui_vmu_manager_t;