#ifndef VIDEO_LAYOUT_COMPONENT_H #define VIDEO_LAYOUT_COMPONENT_H #include "internal.h" #include "component_attr.h" typedef enum comp_type { VIDEO_LAYOUT_C_UNKNOWN, VIDEO_LAYOUT_C_SCREEN, VIDEO_LAYOUT_C_RECT, VIDEO_LAYOUT_C_DISK, VIDEO_LAYOUT_C_IMAGE, VIDEO_LAYOUT_C_TEXT, VIDEO_LAYOUT_C_COUNTER, VIDEO_LAYOUT_C_DOTMATRIX_X1, VIDEO_LAYOUT_C_DOTMATRIX_H5, VIDEO_LAYOUT_C_DOTMATRIX_H8, VIDEO_LAYOUT_C_LED_7, VIDEO_LAYOUT_C_LED_8_GTS1, VIDEO_LAYOUT_C_LED_14, VIDEO_LAYOUT_C_LED_14_SC, VIDEO_LAYOUT_C_LED_16, VIDEO_LAYOUT_C_LED_16_SC, VIDEO_LAYOUT_C_REEL } comp_type_t; union comp_attr { c_attr_screen_t screen; c_attr_image_t image; c_attr_text_t text; c_attr_counter_t counter; }; typedef struct component { comp_type_t type; video_layout_bounds_t bounds; video_layout_bounds_t render_bounds; video_layout_orientation_t orientation; video_layout_color_t color; int enabled_state; union comp_attr attr; } component_t; void component_init (component_t *comp, comp_type_t type); void component_copy (component_t *comp, const component_t *src); void component_deinit (component_t *comp); #endif