📄 mosaic.h
字号:
focus_data_t focus_data;
}mosaic_data_t;
typedef struct
{
mosaic_data_t *mosaic_data;
/*default_font_attribute_t default_font;*/
page_node_t *page_list;
}mosaic_node_t;
/*
*the structure of page layer data
*/
/*Multilingual_Texts_List_Descriptor;*/
struct tag_info_dis_area_data_t
{
uint8_t iso_639_language[3]; /*this code is 24 bits*/
uint8_t default_mask; /*the lowest bit is font, prev is the text_frame*/
text_frame_t text_frame;
font_attribute_t font_data;
info_dis_area_data_t *next;
};
typedef struct
{
uint8_t dis_type;
info_dis_area_data_t *data_list;
}info_dis_area_t;
struct tag_multilingual_picture_t
{
uint8_t iso_639_language[3];
uint16_t x,y,w,h;
uint8_t background_color;
uint8_t protocol_type;
union
{
private_locator_t private_data;
local_locator_t local_data;
}possible_protocol_type;
picture_t *next;
}; /*multilingual*/
typedef struct
{
uint8_t page_id;
uint8_t info_dis_area_num;
info_dis_area_t info_position[8];
multilingual_texts_list_t *page_texts_list;
uint8_t background_type;/*0x01 is picture, 0x02 is video*/
union
{
picture_t picture_tag;
stream_locator_t service_tag;
}possible_background_type;
}page_data_t;
struct tag_page_t
{
page_data_t *page_data;
cell_node_t *cell_list;
page_node_t *prev,*next;
};
/*
*the structure of cell layer data
*/
struct tag_nav_link_data_t
{
uint16_t possible_key_code;
uint8_t tag_page_id;
uint8_t tag_cell_id;
/*nav_link_data_t *prev,*next;*/
};
typedef struct
{
uint8_t common_directions_bitmap;
uint8_t n_page_id, n_cell_id;
uint8_t e_page_id, e_cell_id;
uint8_t s_page_id, s_cell_id;
uint8_t w_page_id, w_cell_id;
nav_link_data_t nav_link_data[4];
} cell_navigation_t;
struct tag_ms_offers_t
{
uint16_t opi;
uint8_t offers_map[8];
ms_offers_t *next;
};
typedef struct
{
uint8_t stream_to_cut;
ms_offers_t *offers_list;
}authorized_offers_t;
/*struct tag_conceal_zone_num
{
uint8_t conceal_zone_num;
conceal_zone_num_list_t *next;
}
struct tag_authorize_zone_num
{
uint8_t authorize_zone_num;
authorize_zone_num_list_t *next;
}*/
struct tag_geo_zones_t
{
uint16_t opi;
uint8_t list_mode_length;
union
{
uint8_t conceal_geo_bitmap[32];
uint8_t conceal_zone_num[32];
uint8_t authorize_zone_num[32];
/*conceal_zone_num_list_t *conceal_list;
authorize_zone_num_list_t *authorize_list;*/
}geo_info_data;
geo_zones_t *next;
};
struct tag_country_code_t
{
uint8_t country_code_info[3];
country_code_t *next;
};
typedef struct
{
uint8_t country_availability_flag; /*1 is intended, 0 is not intended*/
country_code_t *country_code_list;
}country_data_t;
typedef struct
{
uint8_t page_id;
uint8_t cell_id;
uint16_t x, y, w, h;
cell_navigation_t nav_data;
/*
*the following structure may be present or not,
*the activation_mask indicate the state
*/
uint8_t activation_mask; /*the lowest bit is action cell_link, then is link_audio, eit_data*/
action_data_t cell_possible_link; /*0x01*/
stream_locator_t link_audio_data; /*0x02*/
eit_filter_t eit_ifo_data; /*0x04*/
authorized_offers_t *offers_data;
geo_zones_t *geo_zones_data;
country_data_t *country_data;
}cell_data_t;
struct tag_cell_t
{
cell_data_t *cell_data;
cell_node_t *prev,*next;
};
/*
*the structure for idedtifier the node of mosaic、page or cell layer
*/
typedef struct
{
uint8_t page_id;
}page_node_ident_t;
typedef struct
{
uint8_t page_id;
uint8_t cell_id;
}cell_node_ident_t;
enum
{
MOSAIC_LAYER_DATA,
PAGE_LAYER_DATA,
CELL_LAYER_DATA,
DVB_DEFINE_DATA
};
typedef struct
{
uint16_t on_id;
uint16_t ts_id;
uint16_t service_id;
uint16_t mosaic_pmt_pid;
uint16_t mosaic_table_pid;
}ms_network_data_t;
typedef struct
{
int16_t version_number;
uint16_t event_id;
uint8_t event_name[ MS_MAX_EVENT_NAME_LENGTH/*30*/ + 1 ];
uint16_t start_year;
uint8_t start_month;
uint8_t start_day;
uint8_t start_time [ 3 ];
uint8_t end_time [ 3 ];
}ms_eitpf_event_t;
error_t mosaic_test(void);
error_t mosaic_app_exit(cell_data_t*);
int parse_mosaic_descriptor(uint8_t*,
uint8_t,
int16_t);
mosaic_node_t* mosaic_init_data_tree(void);
error_t mosaic_add_page_node(mosaic_node_t*,
page_data_t*);
error_t mosaic_add_cell_node(mosaic_node_t*,
cell_data_t*,
page_node_ident_t);
error_t mosaic_find_cell_node(mosaic_node_t*,
cell_node_ident_t,
cell_node_t**);
error_t mosaic_find_page_node(mosaic_node_t*,
page_node_ident_t,
page_node_t**);
error_t ms_find_multi_text(multilingual_text_t*,
multilingual_text_t**);
error_t ms_find_info_area(info_dis_area_data_t*,
info_dis_area_data_t**);
error_t ms_draw_focus(int16_t, int16_t, int16_t, int16_t);
error_t ms_delete_focus(int16_t, int16_t, int16_t, int16_t);
error_t ms_cell_nav(cell_data_t*,
uint8_t,
uint8_t,
cell_data_t**);
error_t ms_cell_nav_link(cell_data_t*,
uint8_t,
uint8_t,
uint8_t,
cell_data_t**);
error_t ms_enter_new_page(page_node_t*, cell_node_t*);
error_t ms_enter_cell_possible_link(cell_data_t*);
error_t ms_parse_nit(uint8_t*);
error_t ms_parse_pat(uint8_t*);
error_t ms_parse_pmt(uint8_t*);
error_t ms_parse_eitpf(uint8_t*);
error_t ms_display_current_cell_info(cell_data_t*);
error_t ms_event_info_display(cell_data_t*,
uint8_t);
error_t ms_get_event_info(cell_data_t*,
uint8_t);
error_t ms_play_cell_audio(cell_data_t*);
void ms_reset_version_number(void);
void ms_star_dialog(char*);
/*void ms_welcome_display(void);*/
void ms_error_dialog(char*);
error_t ms_get_service_cell_name(service_t, char**);
char* ms_parse_sdt_name(uint8_t*,
int16_t,
service_t);
uint8_t ms_get_display_alignment(uint8_t);
error_t ms_display_current_page_info(page_node_t*);
error_t ms_multi_texts_list_dis(page_node_t*);
error_t mosaic_check_page_mask(page_node_t*);
error_t mosaic_check_cell_status(cell_data_t*);
void mosaic_ui_clear_screen(void);
uint8_t mosaic_get_color_index(uint8_t);
void ms_STWTK_DynamicTextInRect(void *context_p, INT iXPos, INT iYPos, INT iWidth, INT iHeight,char * cpText,
INT iXPad, INT iYPad, INT iJustification, int jJustification,
INT iFcol, INT iBcol);
void ms_ui_clear_area(int32_t x, int32_t y, int32_t w, int32_t h);
uint32_t ms_locked_message(void);
error_t ms_locked_window(void);
/*add by xhw*/
typedef struct
{
uint8_t rgb[3];
}rgb_color;
#if 0
ui_logical_palette_t* mosaic_palette_create(void);
void mosaic_palette_delete(ui_logical_palette_t *palette);
#endif
/*****************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -